Kaynağa Gözat

fix cylinder imposter cap normals

Alexander Rose 2 yıl önce
ebeveyn
işleme
4ff5ed3b5d
1 değiştirilmiş dosya ile 6 ekleme ve 1 silme
  1. 6 1
      src/mol-gl/shader/cylinders.vert.ts

+ 6 - 1
src/mol-gl/shader/cylinders.vert.ts

@@ -55,7 +55,12 @@ void main() {
     vec3 camDir = -mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);
     vec3 dir = vEnd - vStart;
     // ensure cylinder 'dir' is pointing towards the camera
-    if(dot(camDir, dir) < 0.0) dir = -dir;
+    if(dot(camDir, dir) < 0.0) {
+        dir = -dir;
+        vec3 tmp = vStart;
+        vStart = vEnd;
+        vEnd = tmp;
+    }
 
     vec3 left = cross(camDir, dir);
     vec3 up = cross(left, dir);