diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-06-20 16:44:41 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-06-27 20:50:49 +0200 |
commit | ba369198874a119a6e155067e03ad5de73a1a937 (patch) | |
tree | 2bd43f79132c694a59d746d6c36645dc05e14fee /examples | |
parent | 97ffb3431d58b7abe028b6ab6b2e3fd9ef03bdf8 (diff) |
simple-qml example updated
Updated to work with the latest versions.
Parameters are now used only for Uniforms. There is no longer a need to
specify the data type. That assumes on the otherhand that the shader uses the
correct type (QColor -> vec4 and not vec3).
StandardUniforms are specified by setting a StandardUniform enum as the
Parameter's value and setting a ParameterMapper with the StandardUniform binding type.
Attributes and now only defined by creating a ParameterMapper.
We could get rid of this level of configuration. However, I believe that we
can keep Material simples by using Parameter for used defined uniforms. Then
for standardUniforms we can define Parameters in Technique and/or Effect.
That way simple users will only touch Material and advanced users can have a
greater control with Effect, Technique, RenderPasses and ParameterBinder.
Note: This commit is part of a series of modifications that need to be merged
together but are committed separately to ease the reviewing process. This is
the last commit of the serie. Compiling and rendering should work from that
point on.
Change-Id: Ie2b3ae848e9c7e56fee685a0856bd58740bb0155
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/simple-qml/main.qml | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/examples/simple-qml/main.qml b/examples/simple-qml/main.qml index 1c6c83a46..1521fe11d 100644 --- a/examples/simple-qml/main.qml +++ b/examples/simple-qml/main.qml @@ -252,23 +252,23 @@ Node { parameters : [ // Maybe having a AttributeParameter, StandardUniformParameter, UniformParameter would be better - Parameter { name : "ambient"; datatype: Parameter.FloatVec3; value : Qt.vector3d(ballMaterial.ambientColor.r, ballMaterial.ambientColor.g, ballMaterial.ambientColor.b) }, - Parameter { name : "lightIntensity"; datatype: Parameter.FloatVec3; value : Qt.vector3d(0.5, 0.5, 0.5);} + Parameter { name : "ambient"; value : Qt.vector3d(ballMaterial.ambientColor.r, ballMaterial.ambientColor.g, ballMaterial.ambientColor.b) }, + Parameter { name : "lightIntensity"; value : Qt.vector3d(0.5, 0.5, 0.5);} ] // Custom properties go here effect : Effect { - parameters : [ - Parameter { name : "diffuse"; datatype: Parameter.FloatVec3; value : ballMaterial.diffuseColor;} - ] + parameters : [Parameter { name : "diffuse"; value : Qt.vector3d(ballMaterial.diffuseColor.r, ballMaterial.diffuseColor.g, ballMaterial.diffuseColor.b);}] techniques : [ Technique { criteria : [TechniqueCriterion { criterionType : TechniqueCriterion.RenderingStyle; criterionValue : "forward"}] parameters : [ - Parameter { name : "lightPos"; datatype: Parameter.FloatVec4; value : Qt.vector4d(10.0, 10.0, 0.0, 1.0);} - ] + Parameter { name : "lightPos"; value : Qt.vector4d(10.0, 10.0, 0.0, 1.0);}, + Parameter { name : "mVM"; value : Parameter.ModelView}, + Parameter { name : "mNM"; value : Parameter.ModelViewNormal}, + Parameter { name : "mVP"; value : Parameter.ModelViewProjection}] renderPasses : [ RenderPass { @@ -279,7 +279,10 @@ Node { ParameterMapper {parameterName: "ambient"; shaderVariableName: "ka"; bindingType: ParameterMapper.Uniform}, ParameterMapper {parameterName: "diffuse"; shaderVariableName: "kd"; bindingType: ParameterMapper.Uniform}, ParameterMapper {parameterName: "lightPos"; shaderVariableName: "lightPosition"; bindingType: ParameterMapper.Uniform}, - ParameterMapper {parameterName: "lightIntensity"; shaderVariableName: "lightIntensity"; bindingType: ParameterMapper.Uniform} + ParameterMapper {parameterName: "lightIntensity"; shaderVariableName: "lightIntensity"; bindingType: ParameterMapper.Uniform}, + ParameterMapper {parameterName: "mVM"; shaderVariableName: "modelViewMatrix"; bindingType: ParameterMapper.StandardUniform}, + ParameterMapper {parameterName: "mNM"; shaderVariableName: "normalMatrix"; bindingType: ParameterMapper.StandardUniform}, + ParameterMapper {parameterName: "mVP"; shaderVariableName: "mvp"; bindingType: ParameterMapper.StandardUniform} ] shaderProgram : ShaderProgram { id : diffuseShader |