From 707e1729b2dbcb4f4f2e9aeec3af9bd6945a7c5f Mon Sep 17 00:00:00 2001 From: ManifoldFR Date: Thu, 26 Feb 2026 18:59:55 +0100 Subject: [PATCH 1/2] shaders/PbrTransparent : fix how accumulation and revealage computed in fragment shader + weight applies to accum.a, not to revealage (account for change in blend formula) --- shaders/compiled/PbrTransparent.frag.msl | 4 ++-- shaders/compiled/PbrTransparent.frag.spv | Bin 5628 -> 5608 bytes shaders/src/PbrTransparent.frag.slang | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shaders/compiled/PbrTransparent.frag.msl b/shaders/compiled/PbrTransparent.frag.msl index 39687ca8..1f02873b 100644 --- a/shaders/compiled/PbrTransparent.frag.msl +++ b/shaders/compiled/PbrTransparent.frag.msl @@ -192,7 +192,7 @@ struct KernelContext_0 float weight_0 = clamp((alpha_0 * 10.0 + 0.00999999977648258) * (1.0 - fragCoord_0.z * 0.30000001192092896), 0.00999999977648258, 1000.0); thread FSOutput_0 output_0; - (&output_0)->accum_0 = float4(pow(uncharted2ToneMapping_0(float3(0.02999999932944775) * mat_0.baseColor_0.xyz * float3(mat_0.ao_0) + Lo_0), float3(0.45454543828964233) ) * float3(alpha_0) * float3(weight_0) , alpha_0); - (&output_0)->reveal_0 = 1.0 - alpha_0 * weight_0; + (&output_0)->accum_0 = float4(pow(uncharted2ToneMapping_0(float3(0.02999999932944775) * mat_0.baseColor_0.xyz * float3(mat_0.ao_0) + Lo_0), float3(0.45454543828964233) ) * float3(alpha_0) * float3(weight_0) , alpha_0 * weight_0); + (&output_0)->reveal_0 = alpha_0; return output_0; } diff --git a/shaders/compiled/PbrTransparent.frag.spv b/shaders/compiled/PbrTransparent.frag.spv index 5b8c2d139cae89c8e7f61e9dfaab1d5ab2b8c9de..f011686a633d57f93e5891466bcae4ef2f69dc2a 100644 GIT binary patch delta 1890 zcmYk7+e?&D6vfXsYHB)&7qWuHK?G|;P-;png(NC6wTo$#g=KbwN(#C&nHf=O*q1_d zA+6pEiCz;gMNhp%*FPYL9;9B3f_`h}+c3i7TYIf_&e>;s#J|z+(QsO*EYoFp&bbQr zZ7AHFQ4Np1=sXqjs{Ie4GA}kh7kcI8OD-X$pA9bE#l|Pn)6(;+kkgRDpcHwf{~>GN zTB%wfr&cOF7Szk#JeQ3=L4AX-!SqSLC%bsj6s}8wxzqk=c5!?LCo=_6&d6fHN3^1` zntDrrqLyZ`+-Ed?>a6}k-8VN@XY0OFOEbh=MxvQeVwoFXHNVR9CdQBCq=hPL$+e@G zgWTY5YtSOp>w)}cy3?KOJ-?}Nf&V<5RkIGc3dxWgL>hvnm3S8tOPo`-pB8k*PJcFB z7~hZ58Q^Z<9H1^Gp~G`sW+L4MkDyfm`5LzEbdXxU&=>5{4cFcSDY-+`%F63a=Hl)! zg^bkT5$Yip%Ckd`!lg^Q9vpHEu0!Nm^T*+(tW8ca+58E#2%4IgujZ3^-qlIJD!*_^ zPfFxu5D9v8XZ(r0!uVO#GXborbJWuH4D9CT;kt}G%Uyu033;~bMYwe3>_V5|%E`0b zW%vr`{5N^wcrRSFV0&MIOHb{gk6Jy*v)omIesG((*NF4MuPF2K9Ts4Sa1_H{ohj>-2E-FmJ&le4{|V_E09*?MwbT z2ZF$2M1^1T9SjZ`)B>Q4ZmENB!*!@UYko7l6i>~Y)~J^d-+~iC)fJR#1U82z_*-;k zY=+Hn>F>}j*Ft>^Xl~ZoR=7Hm*Ao1BZ-Z;Sf!{%8qUG&~TA+Z^{tPZX2UuVMtWbv@5>Klh%sZ>hhjL|&|_&=myExf=Ji zFVRv^4^Kbcc_J3nhwo!mL3(&R_B<$&Jd>1uR=Rwb9)6jhmtQguIS(lTDv=k2?~6Jb zq-uej#ZuvEU(az9Trv6x^>w}m(_e+1#TC;=aa{!Fz77YAD>7p^g%PAUqlg6`(8`Av zEw%JVYH0?`eL~}>(dy6C-Qz=zw(bkHG{XW{kZmTGUFL?<6YGLtWcc8uyjblLa_#8V zAnxzhfR?0Q0pz#Po$kCW2-lWP37;g27A;4vLo&pDq{%O>#p}v0aZcIGw4f{Q3V$Zb zGP_ZBdED{N9_mUGIy~+Qv+2F?Bw7uSuVLFx`>5p$-F}b#aP8d_$sM3pR^EkNF5?bT z$cP3HQTMS>o*i-+E?wF+f5;KI4v}ZgAB9)4HaEpw^T*JVXlh=*n$P8VSDj&9N!g6! zkw~YH_#WM<@a5#P%xTn99@f+uYUz3gcJnT{E+fx!XW?o>p6z-LE?qgh(0RCW@+@}& zKHs@;Y;q!VQM!li-Aye$+QTJk^&ro3m*KjlJlp$zd~H}a;c8Ut^lfqaO9V*Y7UjwhiQ}d=Z>m_8?;v`XZ1*MvS&9DXj23;AO zVJlqvTXf5C(d<1q#KU~?n;Xrvs&>uc4 x|Gur2eG}|E8+{g-3Y6D7pX=*tzV`d9h3l=$YvjLPJzuRA*Z)2F|6Je}g8%eL&!zwX diff --git a/shaders/src/PbrTransparent.frag.slang b/shaders/src/PbrTransparent.frag.slang index 9fe8cb1e..9179e99a 100644 --- a/shaders/src/PbrTransparent.frag.slang +++ b/shaders/src/PbrTransparent.frag.slang @@ -41,7 +41,7 @@ FSOutput main([vk::location(0)] float3 fragViewPos, float weight = clamp(w1 * (1.0 - z * 0.3), 1e-2, 1e3); FSOutput output; - output.accum = float4(color * alpha * weight, alpha); - output.reveal = 1.0 - alpha * weight; + output.accum = float4(color * alpha * weight, alpha * weight); + output.reveal = alpha; return output; } From 542d2f761fa0ac9bfe91dccf9b5c190eddf3f13b Mon Sep 17 00:00:00 2001 From: ManifoldFR Date: Thu, 26 Feb 2026 19:07:05 +0100 Subject: [PATCH 2/2] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index af7b7fcf..49c08670 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed visual effects with SSAO + MSAA. Have SSAO sample from resolved multisampled depth texture (https://github.com/Simple-Robotics/candlewick/pull/105) +- Fix WBOIT transparent shader formulas, fixing transparency visual appearance and alpha channel in PNG screenshots (https://github.com/Simple-Robotics/candlewick/pull/110) ## [0.10.1] - 2026-01-19