Browse Source

remove transparency variant

- keep only single layer screndoor transparency
- fallback if wboit is not available
Alexander Rose 4 years ago
parent
commit
26acb37098

+ 0 - 3
src/mol-geo/geometry/transparency-data.ts

@@ -12,7 +12,6 @@ export type TransparencyData = {
     tTransparency: ValueCell<TextureImage<Uint8Array>>
     uTransparencyTexDim: ValueCell<Vec2>
     dTransparency: ValueCell<boolean>,
-    dTransparencyVariant: ValueCell<string>,
     transparencyAverage: ValueCell<number>,
 }
 
@@ -48,7 +47,6 @@ export function createTransparency(count: number, transparencyData?: Transparenc
             tTransparency: ValueCell.create(transparency),
             uTransparencyTexDim: ValueCell.create(Vec2.create(transparency.width, transparency.height)),
             dTransparency: ValueCell.create(count > 0),
-            dTransparencyVariant: ValueCell.create('single'),
             transparencyAverage: ValueCell.create(0),
         };
     }
@@ -65,7 +63,6 @@ export function createEmptyTransparency(transparencyData?: TransparencyData): Tr
             tTransparency: ValueCell.create(emptyTransparencyTexture),
             uTransparencyTexDim: ValueCell.create(Vec2.create(1, 1)),
             dTransparency: ValueCell.create(false),
-            dTransparencyVariant: ValueCell.create('single'),
             transparencyAverage: ValueCell.create(0),
         };
     }

+ 0 - 1
src/mol-gl/renderable/direct-volume.ts

@@ -27,7 +27,6 @@ export const DirectVolumeSchema = {
     uTransparencyTexDim: UniformSpec('v2'),
     tTransparency: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'),
     dTransparency: DefineSpec('boolean'),
-    dTransparencyVariant: DefineSpec('string', ['single', 'multi']),
     transparencyAverage: ValueSpec('number'),
 
     dClipObjectCount: DefineSpec('number'),

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

@@ -213,7 +213,6 @@ export const TransparencySchema = {
     uTransparencyTexDim: UniformSpec('v2'),
     tTransparency: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'),
     dTransparency: DefineSpec('boolean'),
-    dTransparencyVariant: DefineSpec('string', ['single', 'multi']),
     transparencyAverage: ValueSpec('number'),
 } as const;
 export type TransparencySchema = typeof TransparencySchema

+ 0 - 9
src/mol-gl/renderer.ts

@@ -17,7 +17,6 @@ import { GraphicsRenderVariant } from './webgl/render-item';
 import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { Clipping } from '../mol-theme/clipping';
 import { stringToWords } from '../mol-util/string';
-import { Transparency } from '../mol-theme/transparency';
 import { degToRad } from '../mol-math/misc';
 import { createNullTexture, Texture, Textures } from './webgl/texture';
 import { arrayMapUpsert } from '../mol-util/array';
@@ -68,7 +67,6 @@ export const RendererParams = {
 
     // the following are general 'material' parameters
     pickingAlphaThreshold: PD.Numeric(0.5, { min: 0.0, max: 1.0, step: 0.01 }, { description: 'The minimum opacity value needed for an object to be pickable.' }),
-    transparencyVariant: PD.Select('single', PD.arrayToOptions<Transparency.Variant>(['single', 'multi'])),
 
     interiorDarkening: PD.Numeric(0.5, { min: 0.0, max: 1.0, step: 0.01 }),
     interiorColorFlag: PD.Boolean(true, { label: 'Use Interior Color' }),
@@ -271,10 +269,6 @@ namespace Renderer {
                 ValueCell.update(r.values.dClipVariant, clip.variant);
                 definesNeedUpdate = true;
             }
-            if (r.values.dTransparencyVariant.ref.value !== p.transparencyVariant) {
-                ValueCell.update(r.values.dTransparencyVariant, p.transparencyVariant);
-                definesNeedUpdate = true;
-            }
             if (definesNeedUpdate) r.update();
 
             const program = r.getProgram(variant);
@@ -545,9 +539,6 @@ namespace Renderer {
                     p.pickingAlphaThreshold = props.pickingAlphaThreshold;
                     ValueCell.update(globalUniforms.uPickingAlphaThreshold, p.pickingAlphaThreshold);
                 }
-                if (props.transparencyVariant !== undefined && props.transparencyVariant !== p.transparencyVariant) {
-                    p.transparencyVariant = props.transparencyVariant;
-                }
 
                 if (props.interiorDarkening !== undefined && props.interiorDarkening !== p.interiorDarkening) {
                     p.interiorDarkening = props.interiorDarkening;

+ 7 - 11
src/mol-gl/shader/chunks/assign-material-color.glsl.ts

@@ -34,17 +34,13 @@ export default `
             // shift by view-offset during multi-sample rendering to allow for blending
             vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;
 
-            #if defined(dTransparencyVariant_single)
-                const mat4 thresholdMatrix = mat4(
-                    1.0 / 17.0,  9.0 / 17.0,  3.0 / 17.0, 11.0 / 17.0,
-                    13.0 / 17.0,  5.0 / 17.0, 15.0 / 17.0,  7.0 / 17.0,
-                    4.0 / 17.0, 12.0 / 17.0,  2.0 / 17.0, 10.0 / 17.0,
-                    16.0 / 17.0,  8.0 / 17.0, 14.0 / 17.0,  6.0 / 17.0
-                );
-                at = thresholdMatrix[int(intMod(coord.x, 4.0))][int(intMod(coord.y, 4.0))];
-            #elif defined(dTransparencyVariant_multi)
-                at = fract(dot(vec3(coord, vGroup + 0.5), vec3(2.0, 7.0, 23.0) / 17.0f));
-            #endif
+            const mat4 thresholdMatrix = mat4(
+                1.0 / 17.0,  9.0 / 17.0,  3.0 / 17.0, 11.0 / 17.0,
+                13.0 / 17.0,  5.0 / 17.0, 15.0 / 17.0,  7.0 / 17.0,
+                4.0 / 17.0, 12.0 / 17.0,  2.0 / 17.0, 10.0 / 17.0,
+                16.0 / 17.0,  8.0 / 17.0, 14.0 / 17.0,  6.0 / 17.0
+            );
+            at = thresholdMatrix[int(intMod(coord.x, 4.0))][int(intMod(coord.y, 4.0))];
 
             if (ta < 0.99 && (ta < 0.01 || ta < at)) {
                 discard;