Real-time Compositor: Feedback and discussion

Nice showcase for the new functionality!

You are correct that this is a consequence of the design of the UV Pass that we get from Cycles. In particular, the UV Pass that Cycles give us is a 2D vector with an Alpha channel, that is, XYA. The alpha channel is premultiplied to the sampled colors, so if it is zero, your output will be zero. The reason why Cycles write an Alpha is to achieve some sort of antialiased edges, because edges will have semi-transparent alpha.

So it is not a legacy thing. But we are aware about how unitutive it is, and we plan to introduce a dedicated node that samples images without such caveats.

Zero centered coordinates helps with textures and procedural context that are also zero centered. For instance, you can create a vignette by simply using a Gradient texture. Furthermore, scaling is also around the center, which I think is desirable. For other textures, they don’t really have a center, so having [-1, 1] range seems okay.

Why is that the case?

There is already a Vector2 data type internally in the compositor, and yes, we plan to extend the vector socket to support different dimensions, not just in the compositor but also in other node systems.

1 Like