diff --git a/src/mol-canvas3d/camera.ts b/src/mol-canvas3d/camera.ts index 4b8aa2d7f1b7cb2cead4d84f0941a58bbe54f7af..e5d765620890e19dfb6294c3b810f04fb640d4f5 100644 --- a/src/mol-canvas3d/camera.ts +++ b/src/mol-canvas3d/camera.ts @@ -269,6 +269,9 @@ function updateClip(camera: Camera) { // set at least to 5 to avoid slow sphere impostor rendering near = Math.max(5, near) far = Math.max(5, far) + } else { + near = Math.max(0, near) + far = Math.max(0, far) } camera.near = near; diff --git a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts index 0f24aca8e63a5a61309cd914147c46ddd5612809..54b00713f962bd11b7ac2b5a2703c30a9224b601 100644 --- a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts +++ b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts @@ -36,7 +36,7 @@ geometry.normal = normal; geometry.viewDir = normalize(vViewPosition); IncidentLight directLight; -directLight.direction = geometry.viewDir; +directLight.direction = vec3(0.0, 0.0, -1.0); directLight.color = vec3(uLightIntensity); RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight); diff --git a/src/mol-gl/shader/spheres.frag.ts b/src/mol-gl/shader/spheres.frag.ts index 2a584f7efd1565be7f294e6f071c264705518609..0d09dd6f0fee772b983a4efdff4f04ad5275e938 100644 --- a/src/mol-gl/shader/spheres.frag.ts +++ b/src/mol-gl/shader/spheres.frag.ts @@ -124,8 +124,8 @@ void main(void){ #elif defined(dColorType_depth) gl_FragColor = material; #else - vec3 normal = cameraNormal; - vec3 vViewPosition = -cameraPos; + vec3 normal = -cameraNormal; + vec3 vViewPosition = cameraPos; #include apply_light_color if (interior) {