Rendering artefacts

Hello Gavin

Thanx, I am not talking about volumetric rendering, I have other software for such rendering.

Volumetric renderer works on (x,y,z, d) 4D vector in R^4 which d is density e.g. tissue density.

The closure of a sheets of surfaces into a solid is something else. There we still have polygons which are basically triangles with (x,y,z) coordinates in R^3.

The problem I am noted here is a minor issue with the depth queuing or normals for some triangles. It is a minor issue to resolve, but I do not know who wrote this code that you fellows use in three.js so I could seek help to fix it.

I will post some related topics on volumetric rendering later on.


Gavin here is some volumetric rendering

I use these samples for my webinars training profs and students in volumetric rendering.

I see. I do believe the issue that you are having with transparency is an issue with non-volumetric rendering in general though, as determining what is behind a transparent triangle, behind another transparent triangle, is mathematically challenging. A google search for “three.js transparency bug” reveals a lot of confused users who assume that transparency should work as reliably as it does in Photoshop, which by my experience isn’t possible (without shaders) due to z-buffer limitations. That being said, particle systems handle gradient transparency very well, so maybe it is more of an implementation issue and it can be solved for three.js. Good luck!


Thank you.

Clearly a rendering problem with three.js and clearly no idea who to call to report it as a bug or suggest a fix.

Appreciate your effort


Hey I know this is old, but I’ve learned a little in the meantime that may be of use to you. Apparently the transparency issue with webgl / OpenGL is not unavoidable but is due to the particular z-sorting algorithm, which has a few slightly different methods that perform well. Humus has an DX11 demo ( ) which uses a BSP tree style implementation that correctly orders transparent planes, and it is quite impressive. The code (C++) is available too. I am looking to implement a similar solution using my octree structure in the future, but that’s a long way off.

Thanx Gavin

Look forward to your new code