diff --git a/src/mol-geo/geometry/spheres/spheres.ts b/src/mol-geo/geometry/spheres/spheres.ts index 30aa207e32c84ae6fab089ca9f804b8ec7f3e2e4..0365b1fd0229c3f4169558b1dcbefc562670425c 100644 --- a/src/mol-geo/geometry/spheres/spheres.ts +++ b/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) { diff --git a/src/mol-gl/renderable/spheres.ts b/src/mol-gl/renderable/spheres.ts index cd78335a18f95e5c24867de8d5bea599b1644cdb..30b812954a241448a398f9e51c841ff25d56a0c1 100644 --- a/src/mol-gl/renderable/spheres.ts +++ b/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> diff --git a/src/mol-gl/shader/spheres.frag.ts b/src/mol-gl/shader/spheres.frag.ts index 8a74545981fc01e64f30291d2db27da0f63e497b..beea4dbec152ff5db80f207436fc0ad30615ec23 100644 --- a/src/mol-gl/shader/spheres.frag.ts +++ b/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