From 7041bac8cac8f00509a406aff50ff96758e273dc Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sun, 8 Dec 2019 00:22:29 -0800 Subject: [PATCH] add ignore-light support to spheres shader --- src/mol-geo/geometry/spheres/spheres.ts | 3 +++ src/mol-gl/renderable/spheres.ts | 1 + src/mol-gl/shader/spheres.frag.ts | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mol-geo/geometry/spheres/spheres.ts b/src/mol-geo/geometry/spheres/spheres.ts index 30aa207e3..0365b1fd0 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 cd78335a1..30b812954 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 8a7454598..beea4dbec 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 -- GitLab