From 699d343b022e923712259a13ac6fa237ff714379 Mon Sep 17 00:00:00 2001 From: Paul Lemire Date: Tue, 2 Feb 2021 14:35:47 +0100 Subject: 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 Reviewed-by: Qt CI Bot (cherry picked from commit 9c9284ce7f0d4ea3dda6d6bc6b602f5d4d6016d4) Reviewed-by: Qt Cherry-pick Bot --- src/extras/CMakeLists.txt | 1 - src/extras/extras.qrc | 1 - src/extras/shaders/graphs/metalrough.frag.json | 250 ++++++++---- src/extras/shaders/graphs/phong.frag.json | 182 +++++---- src/extras/shaders/graphs/phong.graph | 466 ---------------------- src/render/materialsystem/prototypes/default.json | 375 +++++++++++++++-- 6 files changed, 611 insertions(+), 664 deletions(-) delete mode 100644 src/extras/shaders/graphs/phong.graph 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 @@ shaders/es2/distancefieldtext.vert shaders/gl3/morphphong.vert shaders/es2/morphphong.vert - shaders/graphs/phong.graph shaders/rhi/unlittexture.vert shaders/rhi/unlittexture.frag shaders/rhi/skybox.vert 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;" + } + ] } } - -- cgit v1.2.3