simularium / simularium-viewer

NPM package to view Simularium trajectories in 3D
Apache License 2.0
2 stars 0 forks source link

Prototype transparency #256

Open blairlyons opened 2 years ago

blairlyons commented 2 years ago

Use Case

As a developer supporting users visualizing dense scenes, I would like a performant way to display objects that are transparent.

Acceptance Criteria

Development plan for implementing transparency.

Details

There are still open UX questions about when and how transparency should be controlled, i.e. does the user set it in the data and/or in real time? what are the controls like?

But first we need to figure out if transparency is feasible and how to maintain good performance in real time.

This scope does not include picking transparent objects, just rendering them for now.

toloudis commented 1 year ago

We had a quick meeting to discuss what to do here. To mark this ticket as done:

Implementation details: this will require a new "forward" render pass that reuses the depth buffer from the current render passes. Agents will have to be grouped and added to the new render pass and excluded from the others. Possibly a new fragment shader will have to be written for the new render pass, to do the alpha-based coloring with alpha blending. This will be an extra geometry pass so expect performance to drop.

Once this basic render pass is hooked up to everything, we will be able to build on it and investigate what other enhancements are possible.

In a separate ticket we should address single-agent settings. I think that is a bigger general concern beyond transparency.

toloudis commented 1 year ago

Status:

remaining TODOs of current first implementation: