Fix transparent surfaces occlusion (Issue #34)#38
Conversation
|
@schwicke Thank you for the test images. The issue was exactly a buffer visibility problem caused by Because my previous implementation wrapped each pass inside
I have pushed a new commit to this PR that fixes this by pulling This preserves the buffer between rendering passes while maintaining state consistency. Could you kindly compile this updated branch and re-run your |
…odels and per-vertex alpha




This PR completely overhauls how order-independent transparency is handled in the rendering pipeline, specifically resolving Issue #34. Previously, a hack toggled the depth mask on a per-polygon basis inside the tessellator, which failed when opaque tracks were drawn before the transparent detector boundaries but failed the depth test.
To resolve this properly, this implements a Multi-Pass rendering strategy:
Changes include:
wsb.c: Refactoredphg_wsb_traverse_all_postingsinto a two-pass architecture.wsgl.c&wsgl_attr.c: Added globalwsgl_current_transparency_passtracking and strict depth mask enforcement.wsgl_tess.c,wsgl_line.c,wsgl_marker.c,wsgl_text.c: Implemented pass-checking skip logic dynamically based onGL_CURRENT_COLORor vertex colors.@schwicke could you please compile and test this patch on your end with the scene from Issue #34 to verify the occlusion is resolved properly?