Quellcode durchsuchen

Calculate flat normals when normals are not present

Gary Hsu vor 8 Jahren
Ursprung
Commit
b41d878d5d
2 geänderte Dateien mit 1 neuen und 6 gelöschten Zeilen
  1. 0 5
      src/Materials/babylon.pbrMaterial.ts
  2. 1 1
      src/Shaders/pbr.fragment.fx

+ 0 - 5
src/Materials/babylon.pbrMaterial.ts

@@ -996,11 +996,6 @@
 
 
             // Attribs
             // Attribs
             if (mesh) {
             if (mesh) {
-                if (!mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
-                    mesh.createNormals(true);
-                    Tools.Warn("PBRMaterial: Normals have been created for the mesh: " + mesh.name);
-                }
-
                 if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
                 if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
                     this._defines.NORMAL = true;
                     this._defines.NORMAL = true;
                     if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {
                     if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {

+ 1 - 1
src/Shaders/pbr.fragment.fx

@@ -144,7 +144,7 @@ void main(void) {
 #ifdef NORMAL
 #ifdef NORMAL
 	vec3 normalW = normalize(vNormalW);
 	vec3 normalW = normalize(vNormalW);
 #else
 #else
-	vec3 normalW = vec3(1.0, 1.0, 1.0);
+	vec3 normalW = normalize(cross(dFdx(vPositionW), dFdy(vPositionW)));
 #endif
 #endif
 
 
 #include<bumpFragment>
 #include<bumpFragment>