Browse Source

add ignore-light support to spheres shader

Alexander Rose 5 years ago
parent
commit
7041bac8ca

+ 3 - 0
src/mol-geo/geometry/spheres/spheres.ts

@@ -58,6 +58,7 @@ export namespace Spheres {
         ...BaseGeometry.Params,
         sizeFactor: PD.Numeric(1, { min: 0, max: 10, step: 0.1 }),
         doubleSided: PD.Boolean(false),
+        ignoreLight: PD.Boolean(false),
     }
     export type Params = typeof Params
 
@@ -111,6 +112,7 @@ export namespace Spheres {
             ...BaseGeometry.createValues(props, counts),
             uSizeFactor: ValueCell.create(props.sizeFactor),
             dDoubleSided: ValueCell.create(props.doubleSided),
+            dIgnoreLight: ValueCell.create(props.ignoreLight),
         }
     }
 
@@ -124,6 +126,7 @@ export namespace Spheres {
         BaseGeometry.updateValues(values, props)
         ValueCell.updateIfChanged(values.uSizeFactor, props.sizeFactor)
         ValueCell.updateIfChanged(values.dDoubleSided, props.doubleSided)
+        ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight)
     }
 
     function updateBoundingSphere(values: SpheresValues, spheres: Spheres) {

+ 1 - 0
src/mol-gl/renderable/spheres.ts

@@ -20,6 +20,7 @@ export const SpheresSchema = {
 
     padding: ValueSpec('number'),
     dDoubleSided: DefineSpec('boolean'),
+    dIgnoreLight: DefineSpec('boolean'),
 }
 export type SpheresSchema = typeof SpheresSchema
 export type SpheresValues = Values<SpheresSchema>

+ 4 - 4
src/mol-gl/shader/spheres.frag.ts

@@ -123,13 +123,13 @@ void main(void){
     #elif defined(dColorType_depth)
         gl_FragColor = material;
     #else
+        #ifdef dIgnoreLight
+            gl_FragColor = material;
+        #else
         vec3 normal = -cameraNormal;
         vec3 vViewPosition = cameraPos;
         #include apply_light_color
-
-        if (interior) {
-            gl_FragColor.rgb = material.rgb * (1.0 - uInteriorDarkening);
-        }
+        #endif
 
         #include apply_marker_color
         #include apply_fog