浏览代码

logic cleanup. discount doubleups on normal generation if we've already got one calculated on out.

AzaezelX 6 年之前
父节点
当前提交
3cf332e514
共有 1 个文件被更改,包括 9 次插入10 次删除
  1. 9 10
      Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp

+ 9 - 10
Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp

@@ -858,16 +858,15 @@ Var* ShaderFeatureHLSL::getSurface(Vector<ShaderComponent*>& componentList, Mult
    {
    {
       normal = new Var("normal", "float3");
       normal = new Var("normal", "float3");
       meta->addStatement(new GenOp("  @;\r\n\n", new DecOp(normal)));
       meta->addStatement(new GenOp("  @;\r\n\n", new DecOp(normal)));
-      
-   }
-   if (!fd.features[MFT_NormalMap])
-   {
-      Var* worldToTangent = getInWorldToTangent(componentList);
-      meta->addStatement(new GenOp("  @ = normalize(mul(@,float3(0,0,1.0f)));\r\n\n", normal, worldToTangent));
-   }
-   else
-   {
-      meta->addStatement(new GenOp("   @ = normalize( half3( @ ) );\r\n", normal, wsNormal));
+      if (!fd.features[MFT_NormalMap])
+      {
+         Var* worldToTangent = getInWorldToTangent(componentList);
+         meta->addStatement(new GenOp("  @ = normalize(mul(@,float3(0,0,1.0f)));\r\n\n", normal, worldToTangent));
+      }
+      else
+      {
+         meta->addStatement(new GenOp("   @ = normalize( half3( @ ) );\r\n", normal, wsNormal));
+      }      
    }
    }
 
 
    Var* wsEyePos = (Var*)LangElement::find("eyePosWorld");
    Var* wsEyePos = (Var*)LangElement::find("eyePosWorld");