| { |
| "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": ["normalMap"], |
| "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": ["baseColorMap", "metalnessMap", "roughnessMap", "ambientOcclusionMap", "normalMap"], |
| "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", |
| "layers": ["baseColor"], |
| "parameters": { |
| "name": "baseColor", |
| "qualifier": { |
| "type": "QShaderLanguage::StorageQualifier", |
| "value": "QShaderLanguage::Uniform" |
| }, |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec4" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000007}", |
| "type": "sampleTexture", |
| "layers": ["baseColorMap"], |
| "parameters": { |
| "name": "baseColorMap" |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000008}", |
| "type": "input", |
| "layers": ["metalness"], |
| "parameters": { |
| "name": "metalness", |
| "qualifier": { |
| "type": "QShaderLanguage::StorageQualifier", |
| "value": "QShaderLanguage::Uniform" |
| }, |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000009}", |
| "layers": ["metalnessMap"], |
| "type": "sampleTexture", |
| "parameters": { |
| "name": "metalnessMap" |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000010}", |
| "type": "swizzle", |
| "layers": ["metalnessMap"], |
| "parameters": { |
| "fields": "r", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000011}", |
| "type": "input", |
| "layers": ["roughness"], |
| "parameters": { |
| "name": "roughness", |
| "qualifier": { |
| "type": "QShaderLanguage::StorageQualifier", |
| "value": "QShaderLanguage::Uniform" |
| }, |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000012}", |
| "type": "sampleTexture", |
| "layers": ["roughnessMap"], |
| "parameters": { |
| "name": "roughnessMap" |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000013}", |
| "type": "swizzle", |
| "layers": ["roughnessMap"], |
| "parameters": { |
| "fields": "r", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000014}", |
| "type": "constant", |
| "layers": ["ambientOcclusion"], |
| "parameters": { |
| "constant": "1.0", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000015}", |
| "type": "sampleTexture", |
| "layers": ["ambientOcclusionMap"], |
| "parameters": { |
| "name": "ambientOcclusionMap" |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000016}", |
| "type": "swizzle", |
| "layers": ["ambientOcclusionMap"], |
| "parameters": { |
| "fields": "r", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000017}", |
| "type": "sampleTexture", |
| "layers": ["normalMap"], |
| "parameters": { |
| "name": "normalMap" |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000018}", |
| "type": "swizzle", |
| "layers": ["normalMap"], |
| "parameters": { |
| "fields": "rgb", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000019}", |
| "type": "subtract", |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000020}", |
| "type": "normalize", |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000021}", |
| "type": "worldSpaceToTangentSpaceMatrix", |
| "layers": ["normalMap"] |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000022}", |
| "type": "transpose", |
| "layers": ["normalMap"], |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Mat3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000023}", |
| "type": "multiply", |
| "layers": ["normalMap"], |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000024}", |
| "type": "constant", |
| "layers": ["normalMap"], |
| "parameters": { |
| "constant": "2.0", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Float" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000025}", |
| "type": "multiply", |
| "layers": ["normalMap"], |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000026}", |
| "type": "constant", |
| "layers": ["normalMap"], |
| "parameters": { |
| "constant": "1.0", |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000027}", |
| "type": "subtract", |
| "layers": ["normalMap"], |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000028}", |
| "type": "normalize", |
| "parameters": { |
| "type": { |
| "type": "QShaderLanguage::VariableType", |
| "value": "QShaderLanguage::Vec3" |
| } |
| } |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000029}", |
| "type": "metalRoughFunction" |
| }, |
| { |
| "uuid": "{00000000-0000-0000-0000-000000000030}", |
| "type": "fragColor" |
| } |
| ], |
| "edges": [ |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000001}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "worldPosition" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000001}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000019}", |
| "targetPort": "subtrahend" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000002}", |
| "sourcePort": "eyePosition", |
| "targetUuid": "{00000000-0000-0000-0000-000000000019}", |
| "targetPort": "minuend" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000019}", |
| "sourcePort": "difference", |
| "targetUuid": "{00000000-0000-0000-0000-000000000020}", |
| "targetPort": "input" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000020}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "worldView" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000003}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000028}", |
| "targetPort": "input", |
| "layers": ["normal"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000003}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000021}", |
| "targetPort": "worldNormal", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000004}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000021}", |
| "targetPort": "worldTangent", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000021}", |
| "sourcePort": "matrix", |
| "targetUuid": "{00000000-0000-0000-0000-000000000022}", |
| "targetPort": "input", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000022}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000023}", |
| "targetPort": "first", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000005}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000017}", |
| "targetPort": "coord", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000017}", |
| "sourcePort": "color", |
| "targetUuid": "{00000000-0000-0000-0000-000000000018}", |
| "targetPort": "input", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000018}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000025}", |
| "targetPort": "first", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000024}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000025}", |
| "targetPort": "second", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000025}", |
| "sourcePort": "product", |
| "targetUuid": "{00000000-0000-0000-0000-000000000027}", |
| "targetPort": "minuend", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000026}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000027}", |
| "targetPort": "subtrahend", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000027}", |
| "sourcePort": "difference", |
| "targetUuid": "{00000000-0000-0000-0000-000000000023}", |
| "targetPort": "second", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000023}", |
| "sourcePort": "product", |
| "targetUuid": "{00000000-0000-0000-0000-000000000028}", |
| "targetPort": "input", |
| "layers": ["normalMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000028}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "worldNormal" |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000006}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "baseColor", |
| "layers": ["baseColor"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000005}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000007}", |
| "targetPort": "coord", |
| "layers": ["baseColorMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000007}", |
| "sourcePort": "color", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "baseColor", |
| "layers": ["baseColorMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000008}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "metalness", |
| "layers": ["metalness"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000005}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000009}", |
| "targetPort": "coord", |
| "layers": ["metalnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000009}", |
| "sourcePort": "color", |
| "targetUuid": "{00000000-0000-0000-0000-000000000010}", |
| "targetPort": "input", |
| "layers": ["metalnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000010}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "metalness", |
| "layers": ["metalnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000011}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "roughness", |
| "layers": ["roughness"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000005}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000012}", |
| "targetPort": "coord", |
| "layers": ["roughnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000012}", |
| "sourcePort": "color", |
| "targetUuid": "{00000000-0000-0000-0000-000000000013}", |
| "targetPort": "input", |
| "layers": ["roughnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000013}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "roughness", |
| "layers": ["roughnessMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000014}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "ambientOcclusion", |
| "layers": ["ambientOcclusion"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000005}", |
| "sourcePort": "value", |
| "targetUuid": "{00000000-0000-0000-0000-000000000015}", |
| "targetPort": "coord", |
| "layers": ["ambientOcclusionMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000015}", |
| "sourcePort": "color", |
| "targetUuid": "{00000000-0000-0000-0000-000000000016}", |
| "targetPort": "input", |
| "layers": ["ambientOcclusionMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000016}", |
| "sourcePort": "output", |
| "targetUuid": "{00000000-0000-0000-0000-000000000029}", |
| "targetPort": "ambientOcclusion", |
| "layers": ["ambientOcclusionMap"] |
| }, |
| { |
| "sourceUuid": "{00000000-0000-0000-0000-000000000029}", |
| "sourcePort": "outputColor", |
| "targetUuid": "{00000000-0000-0000-0000-000000000030}", |
| "targetPort": "fragColor" |
| } |
| ] |
| } |