Transparency Issue 3D Object with Iteration

@alexmitchellmus Ok I understand what you mean better now.

I think the way I used “Align 3D objects in grid” up above works but when you want to manually do so I’m encountering the same thing as you.

Related to both/or “Build List” and “Enqueue”.

Don’t know if we are doing something wrong or if it is something like Martinus mentioned.

Let’s await some answer.

I’m uploading the composition here too.  

Iterate 3D Transparent.vuo (7.31 KB)

I created a feature request to make transparency behave more intuitively: Automatically sort sceneobject rendering, to better support transparent objects. That feature request would fix the transparency issue in @alexmitchellmus’s original composition, so I’m marking this bug report as merged with that feature request.

[magneson] the first object is what would be used for “world” in other 3d software
[alexmitchellmus] don’t use transparency in 1st layer objects? (ie: use a sacrificial object at scale 0,0,0)

No, there’s nothing special about the first object.

I think the problem with @alexmitchellmus’s original composition is that Build List is receiving extra events. It’s important that Build List and Process List only receive events fired from the Build Item/Process Item port, whereas that composition also has events coming in via Fire on Start and the window’s Requested Frame port. The extra events cause Build List to get out of sync, and the objects get added to the list in an unexpected order — the object that actually gets rendered first is the one in front (closer to the camera), and now that the depth buffer has been filled with those near pixels, some pixels in the objects behind it aren’t rendered.

But I think you can make a videocube in a simpler way (no need for Build List or Process List), by building an object with each frame, enqueuing the object, and using Arrange 3D Objects in Grid to position them. Composition attached.

videocube-smokris.vuo (3.73 KB)

Thanks @smokris !!

Fantastic explanation Steve, I have learned so much just from this issue!

@smokris

Well done that VideoCube composition. A bit like the way I did it up above, using Align 3D object in grid but without the use of “Process List”. Much easier the way you did it !

You say in @alexmitchellmus’s original composition “Build List” is receiving some extra events.
I tried to simplify something similar without “Build list” to focus on the problem but still the 1th object in the list stays opaque. So I more think its related to the way Vuo handles those 1th 3D objects (like you described).

If you could just look at this composition I’m attaching and confirm me that will be solved with that feature request you created.

Thanks ;)

Iterate 3D Transparent - 2.vuo (6.22 KB)

If you could just look at this composition I’m attaching and confirm me that will be solved with that feature request you created.

Yes, after we implement the “Automatically sort sceneobject rendering” feature request, that composition will always show both squiggles (instead of hiding one of them behind the other half the time).

In the meantime, for solid-color shading, you can use Shade Edges with Color to always see both squiggles (like in the attached composition) — that shader doesn’t write to the depth buffer, and thus it doesn’t matter which order the squiggles are rendered.

Iterate 3D Transparent - 2 - Edge.vuo (6.34 KB)