summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2021-02-02 14:35:47 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-03-04 13:12:09 +0000
commitf26cfa9d614716434420b3fefdfe83bb6d3da688 (patch)
tree3600bbee73a5a2803895e86878512e9a0323660f
parente046a40b74ba9d25f1c73165b74eb805e330ff8f (diff)
Update phong and metalrough shader graphs
- RHI requires updates to existing prototypes, explicit locations for inputs and outputs and treats samplers, uniforms and other inputs differently Change-Id: I7f8c6bf0d2a4732b8badcb7fb426f3349da3d6c3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 9c9284ce7f0d4ea3dda6d6bc6b602f5d4d6016d4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/extras/CMakeLists.txt1
-rw-r--r--src/extras/extras.qrc1
-rw-r--r--src/extras/shaders/graphs/metalrough.frag.json250
-rw-r--r--src/extras/shaders/graphs/phong.frag.json182
-rw-r--r--src/extras/shaders/graphs/phong.graph466
-rw-r--r--src/render/materialsystem/prototypes/default.json375
6 files changed, 611 insertions, 664 deletions
diff --git a/src/extras/CMakeLists.txt b/src/extras/CMakeLists.txt
index 0901b61b1..6d40ce101 100644
--- a/src/extras/CMakeLists.txt
+++ b/src/extras/CMakeLists.txt
@@ -122,7 +122,6 @@ set(extras_resource_files
"shaders/gl3/unlittexture.vert"
"shaders/graphs/metalrough.frag.json"
"shaders/graphs/phong.frag.json"
- "shaders/graphs/phong.graph"
"shaders/rhi/coordinatesystems.inc"
"shaders/rhi/default_pos_norm.vert"
"shaders/rhi/default_pos_norm_tex.vert"
diff --git a/src/extras/extras.qrc b/src/extras/extras.qrc
index 79171aac8..e01104616 100644
--- a/src/extras/extras.qrc
+++ b/src/extras/extras.qrc
@@ -39,7 +39,6 @@
<file>shaders/es2/distancefieldtext.vert</file>
<file>shaders/gl3/morphphong.vert</file>
<file>shaders/es2/morphphong.vert</file>
- <file>shaders/graphs/phong.graph</file>
<file>shaders/rhi/unlittexture.vert</file>
<file>shaders/rhi/unlittexture.frag</file>
<file>shaders/rhi/skybox.vert</file>
diff --git a/src/extras/shaders/graphs/metalrough.frag.json b/src/extras/shaders/graphs/metalrough.frag.json
index b40044d1b..fd75e22fd 100644
--- a/src/extras/shaders/graphs/metalrough.frag.json
+++ b/src/extras/shaders/graphs/metalrough.frag.json
@@ -5,14 +5,11 @@
"type": "input",
"parameters": {
"name": "worldPosition",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec3"
- }
+ },
+ "location": "0"
}
},
{
@@ -24,58 +21,55 @@
"type": "input",
"parameters": {
"name": "worldNormal",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec3"
- }
+ },
+ "location": "1"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000004}",
"type": "input",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"name": "worldTangent",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
- }
+ },
+ "location": "2"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000005}",
"type": "input",
- "layers": ["baseColorMap", "metalnessMap", "roughnessMap", "ambientOcclusionMap", "normalMap"],
+ "layers": [
+ "baseColorMap",
+ "metalnessMap",
+ "roughnessMap",
+ "ambientOcclusionMap",
+ "normalMap"
+ ],
"parameters": {
"name": "texCoord",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec2"
- }
+ },
+ "location": "3"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000006}",
- "type": "input",
- "layers": ["baseColor"],
+ "type": "uniformInput",
+ "layers": [
+ "baseColor"
+ ],
"parameters": {
"name": "baseColor",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
@@ -85,21 +79,21 @@
{
"uuid": "{00000000-0000-0000-0000-000000000007}",
"type": "sampleTexture",
- "layers": ["baseColorMap"],
+ "layers": [
+ "baseColorMap"
+ ],
"parameters": {
"name": "baseColorMap"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000008}",
- "type": "input",
- "layers": ["metalness"],
+ "type": "uniformInput",
+ "layers": [
+ "metalness"
+ ],
"parameters": {
"name": "metalness",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Float"
@@ -108,7 +102,9 @@
},
{
"uuid": "{00000000-0000-0000-0000-000000000009}",
- "layers": ["metalnessMap"],
+ "layers": [
+ "metalnessMap"
+ ],
"type": "sampleTexture",
"parameters": {
"name": "metalnessMap"
@@ -117,7 +113,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000010}",
"type": "swizzle",
- "layers": ["metalnessMap"],
+ "layers": [
+ "metalnessMap"
+ ],
"parameters": {
"fields": "r",
"type": {
@@ -128,14 +126,12 @@
},
{
"uuid": "{00000000-0000-0000-0000-000000000011}",
- "type": "input",
- "layers": ["roughness"],
+ "type": "uniformInput",
+ "layers": [
+ "roughness"
+ ],
"parameters": {
"name": "roughness",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Float"
@@ -145,7 +141,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000012}",
"type": "sampleTexture",
- "layers": ["roughnessMap"],
+ "layers": [
+ "roughnessMap"
+ ],
"parameters": {
"name": "roughnessMap"
}
@@ -153,7 +151,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000013}",
"type": "swizzle",
- "layers": ["roughnessMap"],
+ "layers": [
+ "roughnessMap"
+ ],
"parameters": {
"fields": "r",
"type": {
@@ -165,7 +165,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000014}",
"type": "constant",
- "layers": ["ambientOcclusion"],
+ "layers": [
+ "ambientOcclusion"
+ ],
"parameters": {
"constant": "1.0",
"type": {
@@ -177,7 +179,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000015}",
"type": "sampleTexture",
- "layers": ["ambientOcclusionMap"],
+ "layers": [
+ "ambientOcclusionMap"
+ ],
"parameters": {
"name": "ambientOcclusionMap"
}
@@ -185,7 +189,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000016}",
"type": "swizzle",
- "layers": ["ambientOcclusionMap"],
+ "layers": [
+ "ambientOcclusionMap"
+ ],
"parameters": {
"fields": "r",
"type": {
@@ -197,7 +203,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000017}",
"type": "sampleTexture",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"name": "normalMap"
}
@@ -205,7 +213,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000018}",
"type": "swizzle",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"fields": "rgb",
"type": {
@@ -237,12 +247,16 @@
{
"uuid": "{00000000-0000-0000-0000-000000000021}",
"type": "worldSpaceToTangentSpaceMatrix",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"uuid": "{00000000-0000-0000-0000-000000000022}",
"type": "transpose",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -253,7 +267,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000023}",
"type": "multiply",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -264,7 +280,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000024}",
"type": "constant",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"constant": "2.0",
"type": {
@@ -276,7 +294,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000025}",
"type": "multiply",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -287,7 +307,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000026}",
"type": "constant",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"constant": "1.0",
"type": {
@@ -299,7 +321,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000027}",
"type": "subtract",
- "layers": ["normalMap"],
+ "layers": [
+ "normalMap"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -362,91 +386,117 @@
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000028}",
"targetPort": "input",
- "layers": ["normal"]
+ "layers": [
+ "normal"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000003}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000021}",
"targetPort": "worldNormal",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000004}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000021}",
"targetPort": "worldTangent",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000021}",
"sourcePort": "matrix",
"targetUuid": "{00000000-0000-0000-0000-000000000022}",
"targetPort": "input",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000022}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000023}",
"targetPort": "first",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000017}",
"targetPort": "coord",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000017}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000018}",
"targetPort": "input",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000018}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000025}",
"targetPort": "first",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000024}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000025}",
"targetPort": "second",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000025}",
"sourcePort": "product",
"targetUuid": "{00000000-0000-0000-0000-000000000027}",
"targetPort": "minuend",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000026}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000027}",
"targetPort": "subtrahend",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000027}",
"sourcePort": "difference",
"targetUuid": "{00000000-0000-0000-0000-000000000023}",
"targetPort": "second",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000023}",
"sourcePort": "product",
"targetUuid": "{00000000-0000-0000-0000-000000000028}",
"targetPort": "input",
- "layers": ["normalMap"]
+ "layers": [
+ "normalMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000028}",
@@ -459,105 +509,135 @@
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "baseColor",
- "layers": ["baseColor"]
+ "layers": [
+ "baseColor"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000007}",
"targetPort": "coord",
- "layers": ["baseColorMap"]
+ "layers": [
+ "baseColorMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000007}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "baseColor",
- "layers": ["baseColorMap"]
+ "layers": [
+ "baseColorMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000008}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "metalness",
- "layers": ["metalness"]
+ "layers": [
+ "metalness"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000009}",
"targetPort": "coord",
- "layers": ["metalnessMap"]
+ "layers": [
+ "metalnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000009}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000010}",
"targetPort": "input",
- "layers": ["metalnessMap"]
+ "layers": [
+ "metalnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000010}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "metalness",
- "layers": ["metalnessMap"]
+ "layers": [
+ "metalnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000011}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "roughness",
- "layers": ["roughness"]
+ "layers": [
+ "roughness"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000012}",
"targetPort": "coord",
- "layers": ["roughnessMap"]
+ "layers": [
+ "roughnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000012}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000013}",
"targetPort": "input",
- "layers": ["roughnessMap"]
+ "layers": [
+ "roughnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000013}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "roughness",
- "layers": ["roughnessMap"]
+ "layers": [
+ "roughnessMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000014}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "ambientOcclusion",
- "layers": ["ambientOcclusion"]
+ "layers": [
+ "ambientOcclusion"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000015}",
"targetPort": "coord",
- "layers": ["ambientOcclusionMap"]
+ "layers": [
+ "ambientOcclusionMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000015}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000016}",
"targetPort": "input",
- "layers": ["ambientOcclusionMap"]
+ "layers": [
+ "ambientOcclusionMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000016}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000029}",
"targetPort": "ambientOcclusion",
- "layers": ["ambientOcclusionMap"]
+ "layers": [
+ "ambientOcclusionMap"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000029}",
diff --git a/src/extras/shaders/graphs/phong.frag.json b/src/extras/shaders/graphs/phong.frag.json
index dedeb1067..f7d2606b2 100644
--- a/src/extras/shaders/graphs/phong.frag.json
+++ b/src/extras/shaders/graphs/phong.frag.json
@@ -5,14 +5,11 @@
"type": "input",
"parameters": {
"name": "worldPosition",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec3"
- }
+ },
+ "location": "0"
}
},
{
@@ -24,57 +21,50 @@
"type": "input",
"parameters": {
"name": "worldNormal",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec3"
- }
+ },
+ "location": "1"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000004}",
"type": "input",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"name": "worldTangent",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
- }
+ },
+ "location": "2"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000005}",
"type": "input",
- "layers": ["diffuseTexture", "specularTexture", "normalTexture"],
+ "layers": [
+ "diffuseTexture",
+ "specularTexture",
+ "normalTexture"
+ ],
"parameters": {
"name": "texCoord",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec2"
- }
+ },
+ "location": "3"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000006}",
- "type": "input",
+ "type": "uniformInput",
"parameters": {
"name": "ka",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
@@ -83,14 +73,12 @@
},
{
"uuid": "{00000000-0000-0000-0000-000000000007}",
- "type": "input",
- "layers": ["diffuse"],
+ "type": "uniformInput",
+ "layers": [
+ "diffuse"
+ ],
"parameters": {
"name": "kd",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
@@ -100,21 +88,21 @@
{
"uuid": "{00000000-0000-0000-0000-000000000008}",
"type": "sampleTexture",
- "layers": ["diffuseTexture"],
+ "layers": [
+ "diffuseTexture"
+ ],
"parameters": {
"name": "diffuseTexture"
}
},
{
"uuid": "{00000000-0000-0000-0000-000000000009}",
- "type": "input",
- "layers": ["specular"],
+ "type": "uniformInput",
+ "layers": [
+ "specular"
+ ],
"parameters": {
"name": "ks",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec4"
@@ -123,7 +111,9 @@
},
{
"uuid": "{00000000-0000-0000-0000-000000000010}",
- "layers": ["specularTexture"],
+ "layers": [
+ "specularTexture"
+ ],
"type": "sampleTexture",
"parameters": {
"name": "specularTexture"
@@ -131,13 +121,9 @@
},
{
"uuid": "{00000000-0000-0000-0000-000000000011}",
- "type": "input",
+ "type": "uniformInput",
"parameters": {
"name": "shininess",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Float"
@@ -177,12 +163,16 @@
{
"uuid": "{00000000-0000-0000-0000-000000000015}",
"type": "worldSpaceToTangentSpaceMatrix",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"uuid": "{00000000-0000-0000-0000-000000000016}",
"type": "transpose",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -193,7 +183,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000017}",
"type": "sampleTexture",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"name": "normalTexture"
}
@@ -201,7 +193,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000018}",
"type": "swizzle",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"fields": "rgb",
"type": {
@@ -213,7 +207,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000019}",
"type": "constant",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"constant": "2.0",
"type": {
@@ -225,7 +221,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000020}",
"type": "multiply",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"type": {
"type": "QShaderLanguage::VariableType",
@@ -236,7 +234,9 @@
{
"uuid": "{00000000-0000-0000-0000-000000000021}",
"type": "constant",
- "layers": ["normalTexture"],
+ "layers": [
+ "normalTexture"
+ ],
"parameters": {
"constant": "1.0",
"type": {
@@ -310,91 +310,117 @@
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000014}",
"targetPort": "input",
- "layers": ["normal"]
+ "layers": [
+ "normal"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000003}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000015}",
"targetPort": "worldNormal",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000004}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000015}",
"targetPort": "worldTangent",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000015}",
"sourcePort": "matrix",
"targetUuid": "{00000000-0000-0000-0000-000000000016}",
"targetPort": "input",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000016}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000023}",
"targetPort": "first",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000017}",
"targetPort": "coord",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000017}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000018}",
"targetPort": "input",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000018}",
"sourcePort": "output",
"targetUuid": "{00000000-0000-0000-0000-000000000020}",
"targetPort": "first",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000019}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000020}",
"targetPort": "second",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000020}",
"sourcePort": "product",
"targetUuid": "{00000000-0000-0000-0000-000000000022}",
"targetPort": "minuend",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000021}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000022}",
"targetPort": "subtrahend",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000022}",
"sourcePort": "difference",
"targetUuid": "{00000000-0000-0000-0000-000000000023}",
"targetPort": "second",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000023}",
"sourcePort": "product",
"targetUuid": "{00000000-0000-0000-0000-000000000014}",
"targetPort": "input",
- "layers": ["normalTexture"]
+ "layers": [
+ "normalTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000014}",
@@ -413,42 +439,54 @@
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000024}",
"targetPort": "diffuse",
- "layers": ["diffuse"]
+ "layers": [
+ "diffuse"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000008}",
"targetPort": "coord",
- "layers": ["diffuseTexture"]
+ "layers": [
+ "diffuseTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000008}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000024}",
"targetPort": "diffuse",
- "layers": ["diffuseTexture"]
+ "layers": [
+ "diffuseTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000009}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000024}",
"targetPort": "specular",
- "layers": ["specular"]
+ "layers": [
+ "specular"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000005}",
"sourcePort": "value",
"targetUuid": "{00000000-0000-0000-0000-000000000010}",
"targetPort": "coord",
- "layers": ["specularTexture"]
+ "layers": [
+ "specularTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000010}",
"sourcePort": "color",
"targetUuid": "{00000000-0000-0000-0000-000000000024}",
"targetPort": "specular",
- "layers": ["specularTexture"]
+ "layers": [
+ "specularTexture"
+ ]
},
{
"sourceUuid": "{00000000-0000-0000-0000-000000000011}",
diff --git a/src/extras/shaders/graphs/phong.graph b/src/extras/shaders/graphs/phong.graph
deleted file mode 100644
index dedeb1067..000000000
--- a/src/extras/shaders/graphs/phong.graph
+++ /dev/null
@@ -1,466 +0,0 @@
-{
- "nodes": [
- {
- "uuid": "{00000000-0000-0000-0000-000000000001}",
- "type": "input",
- "parameters": {
- "name": "worldPosition",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000002}",
- "type": "eyePosition"
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000003}",
- "type": "input",
- "parameters": {
- "name": "worldNormal",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000004}",
- "type": "input",
- "layers": ["normalTexture"],
- "parameters": {
- "name": "worldTangent",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec4"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000005}",
- "type": "input",
- "layers": ["diffuseTexture", "specularTexture", "normalTexture"],
- "parameters": {
- "name": "texCoord",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec2"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000006}",
- "type": "input",
- "parameters": {
- "name": "ka",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec4"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000007}",
- "type": "input",
- "layers": ["diffuse"],
- "parameters": {
- "name": "kd",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec4"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000008}",
- "type": "sampleTexture",
- "layers": ["diffuseTexture"],
- "parameters": {
- "name": "diffuseTexture"
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000009}",
- "type": "input",
- "layers": ["specular"],
- "parameters": {
- "name": "ks",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec4"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000010}",
- "layers": ["specularTexture"],
- "type": "sampleTexture",
- "parameters": {
- "name": "specularTexture"
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000011}",
- "type": "input",
- "parameters": {
- "name": "shininess",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Uniform"
- },
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Float"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000012}",
- "type": "subtract",
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000013}",
- "type": "normalize",
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000014}",
- "type": "normalize",
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000015}",
- "type": "worldSpaceToTangentSpaceMatrix",
- "layers": ["normalTexture"]
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000016}",
- "type": "transpose",
- "layers": ["normalTexture"],
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Mat3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000017}",
- "type": "sampleTexture",
- "layers": ["normalTexture"],
- "parameters": {
- "name": "normalTexture"
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000018}",
- "type": "swizzle",
- "layers": ["normalTexture"],
- "parameters": {
- "fields": "rgb",
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000019}",
- "type": "constant",
- "layers": ["normalTexture"],
- "parameters": {
- "constant": "2.0",
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Float"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000020}",
- "type": "multiply",
- "layers": ["normalTexture"],
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000021}",
- "type": "constant",
- "layers": ["normalTexture"],
- "parameters": {
- "constant": "1.0",
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000022}",
- "type": "subtract",
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000023}",
- "type": "multiply",
- "parameters": {
- "type": {
- "type": "QShaderLanguage::VariableType",
- "value": "QShaderLanguage::Vec3"
- }
- }
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000024}",
- "type": "phongFunction"
- },
- {
- "uuid": "{00000000-0000-0000-0000-000000000025}",
- "type": "fragColor"
- }
- ],
- "edges": [
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000001}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "worldPosition"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000001}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000012}",
- "targetPort": "subtrahend"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000002}",
- "sourcePort": "eyePosition",
- "targetUuid": "{00000000-0000-0000-0000-000000000012}",
- "targetPort": "minuend"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000012}",
- "sourcePort": "difference",
- "targetUuid": "{00000000-0000-0000-0000-000000000013}",
- "targetPort": "input"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000013}",
- "sourcePort": "output",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "worldView"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000003}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000014}",
- "targetPort": "input",
- "layers": ["normal"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000003}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000015}",
- "targetPort": "worldNormal",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000004}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000015}",
- "targetPort": "worldTangent",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000015}",
- "sourcePort": "matrix",
- "targetUuid": "{00000000-0000-0000-0000-000000000016}",
- "targetPort": "input",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000016}",
- "sourcePort": "output",
- "targetUuid": "{00000000-0000-0000-0000-000000000023}",
- "targetPort": "first",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000005}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000017}",
- "targetPort": "coord",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000017}",
- "sourcePort": "color",
- "targetUuid": "{00000000-0000-0000-0000-000000000018}",
- "targetPort": "input",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000018}",
- "sourcePort": "output",
- "targetUuid": "{00000000-0000-0000-0000-000000000020}",
- "targetPort": "first",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000019}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000020}",
- "targetPort": "second",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000020}",
- "sourcePort": "product",
- "targetUuid": "{00000000-0000-0000-0000-000000000022}",
- "targetPort": "minuend",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000021}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000022}",
- "targetPort": "subtrahend",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000022}",
- "sourcePort": "difference",
- "targetUuid": "{00000000-0000-0000-0000-000000000023}",
- "targetPort": "second",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000023}",
- "sourcePort": "product",
- "targetUuid": "{00000000-0000-0000-0000-000000000014}",
- "targetPort": "input",
- "layers": ["normalTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000014}",
- "sourcePort": "output",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "worldNormal"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000006}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "ambient"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000007}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "diffuse",
- "layers": ["diffuse"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000005}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000008}",
- "targetPort": "coord",
- "layers": ["diffuseTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000008}",
- "sourcePort": "color",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "diffuse",
- "layers": ["diffuseTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000009}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "specular",
- "layers": ["specular"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000005}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000010}",
- "targetPort": "coord",
- "layers": ["specularTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000010}",
- "sourcePort": "color",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "specular",
- "layers": ["specularTexture"]
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000011}",
- "sourcePort": "value",
- "targetUuid": "{00000000-0000-0000-0000-000000000024}",
- "targetPort": "shininess"
- },
- {
- "sourceUuid": "{00000000-0000-0000-0000-000000000024}",
- "sourcePort": "outputColor",
- "targetUuid": "{00000000-0000-0000-0000-000000000025}",
- "targetPort": "fragColor"
- }
- ]
-}
diff --git a/src/render/materialsystem/prototypes/default.json b/src/render/materialsystem/prototypes/default.json
index dfa51898f..16a3288ac 100644
--- a/src/render/materialsystem/prototypes/default.json
+++ b/src/render/materialsystem/prototypes/default.json
@@ -5,14 +5,11 @@
],
"parameters": {
"name": "defaultName",
- "qualifier": {
- "type": "QShaderLanguage::StorageQualifier",
- "value": "QShaderLanguage::Input"
- },
"type": {
"type": "QShaderLanguage::VariableType",
"value": "QShaderLanguage::Vec3"
- }
+ },
+ "location": "0"
},
"rules": [
{
@@ -21,8 +18,21 @@
"major": 2,
"minor": 0
},
- "substitution": "highp $type $value = $name;",
- "headerSnippets": [ "$qualifier highp $type $name;" ]
+ "headerSnippets": [
+ "attribute highp $type $name;"
+ ],
+ "substitution": "highp $type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "in highp $type $name;"
+ ],
+ "substitution": "highp $type $value = $name;"
},
{
"format": {
@@ -30,8 +40,10 @@
"major": 3,
"minor": 0
},
- "substitution": "$type $value = $name;",
- "headerSnippets": [ "$qualifier $type $name;" ]
+ "headerSnippets": [
+ "in $type $name;"
+ ],
+ "substitution": "$type $value = $name;"
},
{
"format": {
@@ -39,8 +51,10 @@
"major": 1,
"minor": 0
},
- "substitution": "$type $value = $name;",
- "headerSnippets": [ "add-input $qualifier $type $name" ]
+ "headerSnippets": [
+ "layout(location = $location) in $type $name;"
+ ],
+ "substitution": "$type $value = $name;"
}
]
},
@@ -99,8 +113,10 @@
"major": 2,
"minor": 0
},
- "substitution": "highp vec4 $color = texture2D($name, $coord);",
- "headerSnippets": [ "uniform sampler2D $name;" ]
+ "headerSnippets": [
+ "uniform sampler2D $name;"
+ ],
+ "substitution": "highp vec4 $color = texture2D($name, $coord);"
},
{
"format": {
@@ -108,8 +124,10 @@
"major": 3,
"minor": 0
},
- "substitution": "highp vec4 $color = texture($name, $coord);",
- "headerSnippets": [ "uniform sampler2D $name;" ]
+ "headerSnippets": [
+ "uniform sampler2D $name;"
+ ],
+ "substitution": "highp vec4 $color = texture($name, $coord);"
},
{
"format": {
@@ -117,8 +135,10 @@
"major": 3,
"minor": 0
},
- "substitution": "vec4 $color = texture($name, $coord);",
- "headerSnippets": [ "uniform sampler2D $name;" ]
+ "headerSnippets": [
+ "uniform sampler2D $name;"
+ ],
+ "substitution": "vec4 $color = texture($name, $coord);"
},
{
"format": {
@@ -126,8 +146,10 @@
"major": 1,
"minor": 0
},
- "substitution": "vec4 $color = texture($name, $coord);",
- "headerSnippets": [ "add-sampler sampler2D $name" ]
+ "headerSnippets": [
+ "add-sampler sampler2D $name"
+ ],
+ "substitution": "vec4 $color = texture($name, $coord);"
}
]
},
@@ -151,7 +173,9 @@
"minor": 0
},
"substitution": "fragColor = $fragColor;",
- "headerSnippets": [ "out highp vec4 fragColor;" ]
+ "headerSnippets": [
+ "out highp vec4 fragColor;"
+ ]
},
{
"format": {
@@ -160,7 +184,9 @@
"minor": 0
},
"substitution": "fragColor = $fragColor;",
- "headerSnippets": [ "out vec4 fragColor;" ]
+ "headerSnippets": [
+ "out vec4 fragColor;"
+ ]
},
{
"format": {
@@ -169,7 +195,9 @@
"minor": 0
},
"substitution": "fragColor = $fragColor;",
- "headerSnippets": [ "layout(location = 0) out vec4 fragColor;" ]
+ "headerSnippets": [
+ "layout(location = 0) out vec4 fragColor;"
+ ]
}
]
},
@@ -185,7 +213,9 @@
"minor": 0
},
"substitution": "highp vec3 $eyePosition = eyePosition;",
- "headerSnippets": [ "uniform highp vec3 eyePosition;" ]
+ "headerSnippets": [
+ "uniform highp vec3 eyePosition;"
+ ]
},
{
"format": {
@@ -194,7 +224,9 @@
"minor": 0
},
"substitution": "vec3 $eyePosition = eyePosition;",
- "headerSnippets": [ "uniform vec3 eyePosition;" ]
+ "headerSnippets": [
+ "uniform vec3 eyePosition;"
+ ]
},
{
"format": {
@@ -203,7 +235,7 @@
"minor": 0
},
"substitution": "vec3 $eyePosition = eyePosition;",
- "headerSnippets": [ ]
+ "headerSnippets": []
}
]
},
@@ -219,7 +251,9 @@
"minor": 0
},
"substitution": "highp float $time = time;",
- "headerSnippets": [ "uniform highp float time;" ]
+ "headerSnippets": [
+ "uniform highp float time;"
+ ]
},
{
"format": {
@@ -228,7 +262,9 @@
"minor": 0
},
"substitution": "float $time = time;",
- "headerSnippets": [ "uniform float time;" ]
+ "headerSnippets": [
+ "uniform float time;"
+ ]
},
{
"format": {
@@ -237,7 +273,9 @@
"minor": 0
},
"substitution": "float $time = time;",
- "headerSnippets": [ "add-uniform float time" ]
+ "headerSnippets": [
+ "add-uniform float time"
+ ]
}
]
},
@@ -501,7 +539,9 @@
"minor": 0
},
"substitution": "highp mat3 $matrix = calcWorldSpaceToTangentSpaceMatrix($worldNormal, $worldTangent);",
- "headerSnippets": [ "#pragma include :/shaders/es2/coordinatesystems.inc" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/es2/coordinatesystems.inc"
+ ]
},
{
"format": {
@@ -510,7 +550,9 @@
"minor": 0
},
"substitution": "highp mat3 $matrix = calcWorldSpaceToTangentSpaceMatrix($worldNormal, $worldTangent);",
- "headerSnippets": [ "#pragma include :/shaders/es3/coordinatesystems.inc" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/es3/coordinatesystems.inc"
+ ]
},
{
"format": {
@@ -519,7 +561,9 @@
"minor": 0
},
"substitution": "mat3 $matrix = calcWorldSpaceToTangentSpaceMatrix($worldNormal, $worldTangent);",
- "headerSnippets": [ "#pragma include :/shaders/gl3/coordinatesystems.inc" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/gl3/coordinatesystems.inc"
+ ]
},
{
"format": {
@@ -528,7 +572,9 @@
"minor": 0
},
"substitution": "mat3 $matrix = calcWorldSpaceToTangentSpaceMatrix($worldNormal, $worldTangent);",
- "headerSnippets": [ "#pragma include :/shaders/rhi/coordinatesystems.inc" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/rhi/coordinatesystems.inc"
+ ]
}
]
},
@@ -553,7 +599,9 @@
"minor": 0
},
"substitution": "highp vec4 $outputColor = phongFunction($ambient, $diffuse, $specular, $shininess, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/es2/phong.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/es2/phong.inc.frag"
+ ]
},
{
"format": {
@@ -562,7 +610,9 @@
"minor": 0
},
"substitution": "vec4 $outputColor = phongFunction($ambient, $diffuse, $specular, $shininess, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/gl3/phong.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/gl3/phong.inc.frag"
+ ]
},
{
"format": {
@@ -571,7 +621,9 @@
"minor": 0
},
"substitution": "vec4 $outputColor = phongFunction($ambient, $diffuse, $specular, $shininess, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/rhi/phong.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/rhi/phong.inc.frag"
+ ]
}
]
},
@@ -596,7 +648,9 @@
"minor": 0
},
"substitution": "highp vec4 $outputColor = metalRoughFunction($baseColor, $metalness, $roughness, $ambientOcclusion, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/es3/metalrough.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/es3/metalrough.inc.frag"
+ ]
},
{
"format": {
@@ -605,7 +659,9 @@
"minor": 1
},
"substitution": "vec4 $outputColor = metalRoughFunction($baseColor, $metalness, $roughness, $ambientOcclusion, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/gl3/metalrough.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/gl3/metalrough.inc.frag"
+ ]
},
{
"format": {
@@ -614,7 +670,9 @@
"minor": 0
},
"substitution": "vec4 $outputColor = metalRoughFunction($baseColor, $metalness, $roughness, $ambientOcclusion, $worldPosition, $worldView, $worldNormal);",
- "headerSnippets": [ "#pragma include :/shaders/rhi/metalrough.inc.frag" ]
+ "headerSnippets": [
+ "#pragma include :/shaders/rhi/metalrough.inc.frag"
+ ]
}
]
},
@@ -783,6 +841,245 @@
"substitution": "$type $output = $type($input);"
}
]
+ },
+ "builtinInput": {
+ "outputs": [
+ "value"
+ ],
+ "parameters": {
+ "name": "defaultName",
+ "type": {
+ "type": "QShaderLanguage::VariableType",
+ "value": "QShaderLanguage::Vec3"
+ }
+ },
+ "rules": [
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 2,
+ "minor": 0
+ },
+ "substitution": "highp $type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "OpenGLCoreProfile",
+ "major": 3,
+ "minor": 0
+ },
+ "substitution": "$type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "RHI",
+ "major": 1,
+ "minor": 0
+ },
+ "substitution": "$type $value = $name;"
+ }
+ ]
+ },
+ "uniformInput": {
+ "outputs": [
+ "value"
+ ],
+ "parameters": {
+ "name": "defaultName",
+ "type": {
+ "type": "QShaderLanguage::VariableType",
+ "value": "QShaderLanguage::Vec3"
+ },
+ "location": "0"
+ },
+ "rules": [
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 2,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform highp $type $name;"
+ ],
+ "substitution": "highp $type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "OpenGLCoreProfile",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform $type $name;"
+ ],
+ "substitution": "$type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "RHI",
+ "major": 1,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "add-uniform $type $name"
+ ],
+ "substitution": "$type $value = $name;"
+ }
+ ]
+ },
+ "uniformArrayInput": {
+ "outputs": [
+ "value"
+ ],
+ "parameters": {
+ "name": "defaultName",
+ "size": "1",
+ "type": {
+ "type": "QShaderLanguage::VariableType",
+ "value": "QShaderLanguage::Vec3"
+ },
+ "location": "0"
+ },
+ "rules": [
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 2,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform highp $type $name[$size];"
+ ],
+ "substitution": "highp $type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "OpenGLCoreProfile",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform $type $name[$size];"
+ ],
+ "substitution": "$type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "RHI",
+ "major": 1,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "add-uniform $type $name[$size]"
+ ],
+ "substitution": "$type $value = $name;"
+ }
+ ]
+ },
+ "textureInput": {
+ "outputs": [
+ "value"
+ ],
+ "parameters": {
+ "name": "defaultName",
+ "type": {
+ "type": "QShaderLanguage::VariableType",
+ "value": "QShaderLanguage::Vec3"
+ }
+ },
+ "rules": [
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 2,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform highp $type $name;"
+ ],
+ "substitution": "highp $type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "OpenGLCoreProfile",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "uniform $type $name;"
+ ],
+ "substitution": "$type $value = $name;"
+ },
+ {
+ "format": {
+ "api": "RHI",
+ "major": 1,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "add-sampler $type $name"
+ ],
+ "substitution": "$type $value = $name;"
+ }
+ ]
+ },
+ "output": {
+ "inputs": [
+ "value"
+ ],
+ "parameters": {
+ "name": "defaultName",
+ "type": {
+ "type": "QShaderLanguage::VariableType",
+ "value": "QShaderLanguage::Vec3"
+ }
+ },
+ "rules": [
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 2,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "varying highp $type $name;"
+ ],
+ "substitution": "$name = $value;"
+ },
+ {
+ "format": {
+ "api": "OpenGLES",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "out highp $type $name;"
+ ],
+ "substitution": "$name = $value;"
+ },
+ {
+ "format": {
+ "api": "OpenGLCoreProfile",
+ "major": 3,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "out $type $name;"
+ ],
+ "substitution": "$name = $value;"
+ },
+ {
+ "format": {
+ "api": "RHI",
+ "major": 1,
+ "minor": 0
+ },
+ "headerSnippets": [
+ "add-input out $type $name"
+ ],
+ "substitution": "$name = $value;"
+ }
+ ]
}
}
-