implemented basic shader expressions

This commit is contained in:
Dynamitos
2023-02-24 22:09:07 +01:00
parent 48fa098546
commit f46262b66e
67 changed files with 1390 additions and 852 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ VertexStageOutput vertexMain(PositionOnlyVertexShaderInput input)
VertexStageOutput output;
float3 worldPosition = input.getWorldPosition();
worldPosition += gMaterial.getWorldOffset();
//worldPosition += gMaterial.getWorldOffset();
float4 clipSpacePosition;
float4 viewSpacePosition = mul(gViewParams.viewMatrix, float4(worldPosition, 1));
+1 -1
View File
@@ -26,7 +26,7 @@ VertexStageOutput vertexMain(
VertexStageOutput output;
VertexValueCache cache = input.getVertexCache();
float3 worldPosition = input.getWorldPosition();
worldPosition += gMaterial.getWorldOffset();
//worldPosition += gMaterial.getWorldOffset();
float4 clipSpacePosition;
float3x3 tangentToLocal = cache.getTangentToLocal();
+20 -23
View File
@@ -35,27 +35,24 @@
"type": "SamplerState"
}
},
"code": {
"baseColor": [
"return diffuseTexture.Sample(textureSampler, input.texCoords[0] * uvScale).xyz;"
],
"metallic": [
"return metallic;"
],
"normal": [
"return normalTexture.Sample(textureSampler, input.texCoords[0] * uvScale).xyz;"
],
"specular": [
"return specularTexture.Sample(textureSampler, input.texCoords[0] * uvScale).x;"
],
"roughness": [
"return roughness;"
],
"sheen": [
"return sheen;"
],
"worldOffset": [
"return worldOffset;"
]
}
"code": [
{
"exp": "Sample",
"texture": "diffuseTexture",
"sampler": "textureSampler",
"coords": "input.texCoords[0]"
},
{
"exp": "Swizzle",
"target": 0,
"comp": [0, 1, 2]
},
{
"exp": "BRDF",
"profile": "BlinnPhong",
"values": {
"baseColor": 1
}
}
]
}
+1 -1
View File
@@ -20,7 +20,7 @@ struct BlinnPhong : IBRDF
float3 h = normalize(light + view);
float nDotH = saturate(dot(normal, h));
return baseColor * nDotL + lightColor * specular * pow(nDotH, sheen);
return baseColor;
}
};
-9
View File
@@ -6,15 +6,6 @@ interface IMaterial
{
associatedtype BRDF : IBRDF;
BRDF prepare(MaterialFragmentParameter input);
float3 getWorldOffset();
float3 getBaseColor(MaterialFragmentParameter input);
float getMetallic(MaterialFragmentParameter input);
float3 getNormal(MaterialFragmentParameter input);
float getSpecular(MaterialFragmentParameter input);
float getRoughness(MaterialFragmentParameter input);
float getSheen(MaterialFragmentParameter input);
};
layout(set = INDEX_MATERIAL, binding = 0, std430)