Project Rembrandt: Difference between revisions

No edit summary
Line 54: Line 54:


=== Rendering of transparent surfaces ===
=== Rendering of transparent surfaces ===
[[Image:project_rembrandt_5.png|thumb|150px|Transparent surfaces drawn after opaque objects]]
{|
Transparent surfaces are detected by OSG loader plugins and their state set receive the TRANSPARENT_BIN rendering hint. In the culling pass, the cull visitor orders transparent surfaces in transparent bin. In a cull callback attached to the Geometry camera, after the scenegraph traversal, the transparent bins are removed from the render stage and saved in a temporary collection. In a cull callback attached to the Lighting camera, after the scenegraph traversal, the transparent bins saved at the previous stage, are added to the render stage of the Lighting camera with a high order num. That way, the transparent surface are drawn on top of the scene lighted from the Gbuffer.
|style="vertical-align:top"|Transparent surfaces are detected by OSG loader plugins and their state set receive the TRANSPARENT_BIN rendering hint. In the culling pass, the cull visitor orders transparent surfaces in transparent bin. In a cull callback attached to the Geometry camera, after the scenegraph traversal, the transparent bins are removed from the render stage and saved in a temporary collection. In a cull callback attached to the Lighting camera, after the scenegraph traversal, the transparent bins saved at the previous stage, are added to the render stage of the Lighting camera with a high order num. That way, the transparent surface are drawn on top of the scene lighted from the Gbuffer.
|[[Image:project_rembrandt_5.png|thumb|150px|Transparent surfaces drawn after opaque objects]]


== Guidelines for shader writers ==
== Guidelines for shader writers ==
269

edits