Transparency on 3D objects

A “Make Radial Gradient Image” node with the external border color set to 0% alpha connected to a “Make 3D object with Image” is something I cannot get transparent on the borders no matter what blending mode I use.

Am I doing something wrong or should I make a feature request (or is there already one concerning this that I have overseen ) ?

Vuo3DTransparancy.vuo (4.32 KB)

@bodysoulspirit, it depends on both the order the objects appear in the list(*), and the Z values of the objects. Vuo currently renders objects in the order they appear in the object list.

Check out the attached composition — it creates a list of 10 radial gradient image-objects. On the left they’re rendered back-to-front; on the right they’re rendered front-to-back using Reverse List:

On the right side, the frontmost object is rendered first, so its pixels fill the color buffer and depth buffer. Then, it renders the object behind it. Since the depth buffer already contains some pixels closer to the camera than the second image-object, OpenGL thinks it doesn’t need to render some of its pixels — which is what makes the front object appear opaque. (Even though the images are square, the opaque area appears circular because Vuo discards pixels that are fully transparent / 0% alpha.)

I’ve also attached a modified version of your composition. I just changed the Z values in Copy 3D Object, so the objects are drawn back-to-front.

(*) Ideally Vuo should automatically render transparent objects in back-to-front order, so you don’t need to worry about this issue. That would make a good feature request.

object-order.vuo (6.02 KB)

Vuo3DTransparancy.vuo (4.32 KB)

object-order.png

I created a feature request: Automatically sort sceneobject rendering, to better support transparent objects

Hey @smokris, did you ever have a chance to check my issue that was in the bug tracker that inspired this discussion?

For some reason a still image worked correctly with transparency- while with an enqueued movie there was an opaque front frame.

@alexmitchellmus, yes, I also replied to that bug report this afternoon.

@smokris

Yes. The problem when changing the z-values like you did in my composition is that the objects appear bigger or smaller and that you have to change their sizes too then.

So yes much better when objects are rendered back to front, thanks for the nice sample composition !
But actually my composition was a simplified composition of feeding such “Make radial image” into “Make 3D object from Image” that are copied into Satoshi’s Particle System.

As particles are random and have different speeds "newer particles may come nearer to camera then older ones, will that feature request you created be able to check that in realtime ? Will that not be heavy ?

Sorry, I don’t understand much in those OpenGl technical stuff.

Composition Attached

stv.GenParticleEmitterL.vuonode (49.5 KB)

Particles 3D transparent.vuo (6.27 KB)

@smokris and will it besides particles be able to calculate in realtime and show your modified composition joined below ?

Smokris Sample Object-order - 2.vuo (7.88 KB)

The problem when changing the z-values like you did in my composition is that the objects appear bigger or smaller

If you use the orthographic camera, the apparent size of the object won’t change depending on the distance from the camera.

will that feature request you created be able to check that in realtime ? Will that not be heavy ?

The feature request will sort each object, but it won’t affect the order that vertices within each object are rendered.

Satoshi’s particle emitter outputs a list of positions, which you’re feeding into Copy 3D Object. Each particle is its own object, so the feature request should make that composition render without sharp edges.

However, for a very large number of particles, it would probably be more efficient for a (hypothetical) particle system to produce a single object with many vertices (rendered as points, like Make Point Mesh does). The feature request wouldn’t help with that; in that case the only solution I know of is to disable depth writing (like our Shade Edges with Color does).

will it […] be able to calculate in realtime and show your modified composition joined below ?

Yes, I expect the feature request to fix the sharp edges in that composition.

@smokris thanks for checking. Great to hear ! And nice tip to use Shade Edges with color until then ;)

Vuo 2.0 beta includes improved rendering of semitransparent 3D objects (transparent objects are now blended in back-to-front order).

1 Like