Parameter QML Type

Provides storage for a name and value pair. This maps to a shader uniform. More...

Import Statement: import Qt3D.Render 2.0
Instantiates: QParameter


Detailed Description

A Parameter can be referenced by a RenderPass, Technique, Effect, Material, TechniqueFilter, RenderPassFilter. At runtime, depending on which shader is selected for a given step of the rendering, the value contained in a Parameter will be converted and uploaded if the shader contains a uniform with a name matching that of the Parameter.

Parameter {
    name: "diffuseColor"
    value: "blue"

// Works with the following GLSL uniform shader declarations
// uniform vec4 diffuseColor;
// uniform vec3 diffuseColor;
// uniform vec2 diffuseColor;
// uniform float diffuseColor;

Note: some care must be taken to ensure the value wrapped by a Parameter can actually be converted to what the real uniform expect. Giving a value stored as an int where the actual shader uniform is of type float could result in undefined behaviors.

Note: when the targeted uniform is an array, the name should be the name of the uniform with [0] appended to it.

Parameter {
    name: "diffuseValues[0]"
    value: [0.0, 1.0. 2.0, 3.0, 4.0, 883.0, 1340.0, 1584.0]

// Matching GLSL shader uniform  declaration
// uniform float diffuseValues[8];

When it comes to texture support, the Parameter value should be set to the appropriate texture subclass that matches the sampler type of the shader uniform.

Parameter {
    name: "diffuseTexture"
    value: Texture2D { ... }

// Works with the following GLSL uniform shader declaration
// uniform sampler2D diffuseTexture

See also Qt3DRender::QAbstractTexture.

Property Documentation

name : QString

Specifies the name of the parameter

value : QVariant

Specifies the value of the parameter

© 2018 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.