Added emissive mapping support
Former-commit-id: f469b1bcada16f0f2350cc10e9dc25fcf3c24abe
This commit is contained in:
@@ -81,6 +81,9 @@ namespace
|
||||
if (flags & nzShaderFlags_DiffuseMapping)
|
||||
sourceCode += "uniform sampler2D MaterialDiffuseMap;\n";
|
||||
|
||||
if (flags & nzShaderFlags_EmissiveMapping)
|
||||
sourceCode += "uniform sampler2D MaterialEmissiveMap;\n";
|
||||
|
||||
if (flags & nzShaderFlags_Lighting)
|
||||
{
|
||||
if (flags & nzShaderFlags_NormalMapping)
|
||||
@@ -124,6 +127,14 @@ namespace
|
||||
sourceCode += "void main()\n"
|
||||
"{\n";
|
||||
|
||||
if (flags & nzShaderFlags_EmissiveMapping)
|
||||
{
|
||||
// Les emissive map court-circuitent l'éclairage
|
||||
sourceCode += "vec3 emissive = vec3(" + textureLookupKW + "(MaterialEmissiveMap, vTexCoord));\n"
|
||||
"if (emissive == vec3(0.0, 0.0, 0.0))\n"
|
||||
"{\n";
|
||||
}
|
||||
|
||||
if (flags & nzShaderFlags_Lighting)
|
||||
{
|
||||
sourceCode += "vec3 light = vec3(0.0, 0.0, 0.0);\n";
|
||||
@@ -282,6 +293,14 @@ namespace
|
||||
else
|
||||
sourceCode += fragmentColorKW + " = MaterialDiffuse;\n";
|
||||
|
||||
if (flags & nzShaderFlags_EmissiveMapping)
|
||||
{
|
||||
sourceCode += "}\n"
|
||||
"else\n"
|
||||
+ fragmentColorKW + " = vec4(emissive, MaterialDiffuse.a);\n";
|
||||
}
|
||||
|
||||
|
||||
sourceCode += "}\n";
|
||||
|
||||
return sourceCode;
|
||||
|
||||
Reference in New Issue
Block a user