瀏覽代碼

fix cylinder imposter cap normals

Alexander Rose 2 年之前
父節點
當前提交
4ff5ed3b5d
共有 1 個文件被更改,包括 6 次插入1 次删除
  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);