From fb45d1f741fa5ad40aa68a96dda39b1f6fdef68e Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 24 Jan 2020 10:04:31 +0100 Subject: [PATCH] Divide direction by w-component Fixes #616 --- data/shaders/nv_ray_tracing_basic/raygen.rgen | 2 +- .../nv_ray_tracing_basic/raygen.rgen.spv | Bin 2932 -> 3028 bytes .../nv_ray_tracing_reflections/raygen.rgen | 2 +- .../raygen.rgen.spv | Bin 4544 -> 4640 bytes .../nv_ray_tracing_shadows/raygen.rgen | 2 +- .../nv_ray_tracing_shadows/raygen.rgen.spv | Bin 2980 -> 3076 bytes 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/shaders/nv_ray_tracing_basic/raygen.rgen b/data/shaders/nv_ray_tracing_basic/raygen.rgen index c11ca526..5b183d9a 100644 --- a/data/shaders/nv_ray_tracing_basic/raygen.rgen +++ b/data/shaders/nv_ray_tracing_basic/raygen.rgen @@ -19,7 +19,7 @@ void main() vec4 origin = cam.viewInverse * vec4(0,0,0,1); vec4 target = cam.projInverse * vec4(d.x, d.y, 1, 1) ; - vec4 direction = cam.viewInverse*vec4(normalize(target.xyz), 0) ; + vec4 direction = cam.viewInverse*vec4(normalize(target.xyz / target.w), 0) ; uint rayFlags = gl_RayFlagsOpaqueNV; uint cullMask = 0xff; diff --git a/data/shaders/nv_ray_tracing_basic/raygen.rgen.spv b/data/shaders/nv_ray_tracing_basic/raygen.rgen.spv index e388213f913388cbc8667348a0ba62ea9d0dd1a1..bd277cc85ac08d36dd83621785f905bbe4112e52 100644 GIT binary patch delta 1164 zcmZ9L&1w`;5QVFI(othZh>ixqg)z7>3nAbS3I2?jiBaQBbc{*-OFJgxB-2JS3JO9m zTqwAbc>*6n@*r;9D7bLp8@LnE^L5`FhTP^*bxzf-u3NYJ_o1)D#X>l`%Pg?ndODwr zAA*@VGuw<`SK4v2BiAB5H)R_y+wIx7vz}{xR+sZ4X+8CPKI8GLoJY3Q{TUn>S`}?2 zadSnMN=Y{gzm%86j*+M}ZG8qG$ymK{_UPK+=>@5RQu1WObrU z_wife{{(oy>}_FV|Jw=A?}*#QBb6Ve&=%xUXAw;cKIu4ZvJTrGdu-NCqmd~N#uCr+ z;Izvc*1k2_6GA9Zw=Mgr;O-Ov{=q z;fgRWFpzU9!C|Kb^qLqiz2Y=<@Lqe-XN1cF@j;h+RX#JP9`QNlQuCTXj3q72#Ooq{ zgHN1w8mF(R^HJFw0tLt?ep2|T!o;dVSs>@U?(~Aw@R`ko)0qpmie9%gzfuTaA=k<2 zxw^Xo*9ISuy(dt}^ZW8C2B(1s!f~Oh|ADDIbQ(H~X>b_wnZ&YC*Za2%#Paj5^8$~= z(Ew{_frd1i{#F{ynx#RSI^6@BSQe;7{+K`md~;19U3J1<*(X9#sA}B%WLr){XVJhL zZC;aI7l>1g)ABPXg1^2Er^#$<&zwdbmshsuPGmIxo;T%FfDOdC=Z0QH$Gn*MU$t{q F_z%x?W&r>I delta 1083 zcmZ9K&rTCj6vod?JAgt-&}w7iLL_cv;R-bv|6ptp0ih~T0mZRuTWQf)O&}rZf`toL zrVrpV5FUgL8%S924zMBwzTfl?X}ps!=X~eiJ?Ea;$sAryCH#R-GtWA$%T_j1f4s2? zGy4&)<*H$+F4Y2klaj?>)#_weUvAlwHYMd}t+EpHe8j`m77uKudEi~{3q>onu=H7y zO66wYZ;#A~-6T+F)RG48k64S7)$WJm_XOh0TUQdtUgL(;ahWuMT@(hzkuQZ)$2%ma zg>RQOhVjE+3HIcAZa?kYYpK+EgG~qiz;W8*T(b+dBuOqUxYPU>^kqLdf}cEi=xiBr z2EQ%%0{4_8_tIuhC5eZZn@7R#AtvGRnFbG>hmZL^={$Nn&u?vZl>A1ITBBfAph4s_ zA+Hyw>727koZCj7jrch3xwFyiv@RNu923YV9{(NTuj=A^A&i(cqM%2Xu*c4b&Md7PY9q*Pb z3MpYq&)qBe$=R@TXkcBr{6}8|{M2II6`?GAkN5Z0870nly6kKeisP!z*1qSOY~&M< SpFJ0K5e;)O{u8xxUpNE(R9)Es diff --git a/data/shaders/nv_ray_tracing_reflections/raygen.rgen b/data/shaders/nv_ray_tracing_reflections/raygen.rgen index 1d51a742..61fbd0d8 100644 --- a/data/shaders/nv_ray_tracing_reflections/raygen.rgen +++ b/data/shaders/nv_ray_tracing_reflections/raygen.rgen @@ -31,7 +31,7 @@ void main() vec4 origin = cam.viewInverse * vec4(0,0,0,1); vec4 target = cam.projInverse * vec4(d.x, d.y, 1, 1) ; - vec4 direction = cam.viewInverse*vec4(normalize(target.xyz), 0); + vec4 direction = cam.viewInverse*vec4(normalize(target.xyz / target.w), 0); uint rayFlags = gl_RayFlagsOpaqueNV; uint cullMask = 0xff; diff --git a/data/shaders/nv_ray_tracing_reflections/raygen.rgen.spv b/data/shaders/nv_ray_tracing_reflections/raygen.rgen.spv index 4127505ebd9ccbaaf287d3613ff83c57e14d99ce..5dc3472db3a0250a844ab91e66f1f710232c148b 100644 GIT binary patch literal 4640 zcmZve>vx=06^Gv@ne++>ZMi7alv0pV3l^x{+Y)G6P1}$(x>JtzU*%svTRK@m`#iwojP=Ms+BKIwOe_$)|kn%weTwl9T}Y%-LcS~ z-f`2-H#qbBtiMd4?}BV)_7*t?(C6}6L&tgG641}TKIGd34v=eP^gT;t6+GQ@D=@2> zGhaJd)Q5{kyJ*1-mN{qYQ=|EbMs@bUJ%^4GO|25dd`CQS;$6C$#qSdYy3s9^&So+i#YsC`>8jD41p*Y98|M^z) zv0mOi*K0Gg?XhN=$Mvs;tLAfM%{$TCd26OiJB{ zQOU;Pswe98gZaYas6-89N09BgPT#d{M0+kj8U6=Rs?B<{g|v=i$XclnW>w_Dy$?){ z-#a`xK5^jip^~p;v&eRHezaID>U$?T^*DdF)*eo&${H{uuXp-wthcLG9Iw-mRCgsiA=kB*dp!e3O=Xw0&tli+ z@);Kx!S)`m1%KjxYI`@d|BSsK+jDnRz<&OQy`^OTpIZs{fikW$&;4}I({|n-5V_?3 zH?Nc5{TjCnM%bxq%2}UxerpYC{V z(s=VBi+v+Fkb&{zDRs=WP2{(=llmyo$or^@hTqzu@9wj4uYB+Nou}=0A*X*a>CVw!O1ArQf7bO3h<<6m0Q$gX{8GJw zGNBtBDYqBD zZ^uW$wZJ#UwXR0)0P@chvjzFF#NB{2hj&0Oa@>S&jvGPbxEWpE7|;0@;M%)@G2ZiA zfqcZ=j&6)^OvK!QEsSOJo%x7sPist*EPmEy_<4T=N|Olz3zpRcRlkD1Lqy) z>$n?vPvYbqD?lHJn)jg_@4FW@kD$wsr8jFox?I3BH}?Txe*NoG>?hD&!+iShBi3Gh z66kXTH;Nwd!5vJTHAc@4p*!Dr{l1&gv%~22z!-bx_baFFx9eG`k0U3Negrw0biY^M zY-1ioK9uxhNbl6Ubn6kM?~d{x^mz*TC~)Y{k@}VPa2xW|z#Ol!|7m2AxGM5r#AtsC zn9I59&OMH-f!SoQK|TiDi+=6Lf&0i1|(QPTx9r zW*%EkIC|%Q2F||yWy89%R_n7Szm0%3xQ@Aux0l|zMdTCUMB=Q$yL2+~o*+u_%~C3pHAHM$bXXKb4Z81*7sR(8rW;~Soibjt{3()y7%A|d9CXdSO&($ z9g*|gI`8QInUrO8%(ptZabXcptXTi^awW^!PbN&kOoWuSq zy5|;ae+|92PtU>0`|g_K>%e*P?osX=z}))WkKYFJ)}j5K#7!ctL+-o4-1=he@1b|@_Uf|M?_$>{?O_p20e*tWwj`aWl literal 4544 zcmZve>vx=06^Gv@nH1VmE-hEFq=a%U1q&1ep)G-?)ifEJ-V`vtOkUD~NhVCDrA3yc zlp=Cd6uf}KQto$Hiw}I|lYa0Y&?Wx{ifgg(dEPl2#?jOD%ijBU_St)%ea?HP{e8nr zvusJWG&>>tAnS}%v%c&ftFvrbHkeIT_fC!PooeMrrrNE%R-c>6vgPnga2*|+9NVza zp5AcvHCMWFW!7H?aPDLxenN}^^x3>V=fp|iOwiB2KIC6<93a-{*#D%+D$I1Rt-zef zn)&+SqA^m;wTl+aU>S3!F*TMSoU0w!am)B#d|Z1vvOc#*v-C6XSALWA2MRnZ)NwBS zbm=pYtwT0j^%<+JQ2#~PBl&F6%B!vBe9>yxiv=jM4wiH3hw8=sJLV1*t%c$%-u=(F zn)meb?zvH)Inb^)%Q)u01g@6PmNjogZ|ALEHI z7W1s7rhcUQ8EAvZA#f(~+>5qzL)a%E<;3aO%SxU<4E^o3obmKufi#!=4axS52<~YZ8n# z(eJ0x`@q@!GQEt{cM0eo z&c~g4B~9pS4cdNd4$t6Cq4&*z}|)JZ(g_UZ(GA-Z9Bav~Lf%C8?3J9c^*;m1MXs~ZeJ>){+30e@(VgoY zZ08?KxxRsJJb80@4swy}o9J>+C;#)%<$RB-iCc?4lyEF@=VR;ZoN+x*xvk9mR$LA) z0lp#Tx)8Ym$UlS6F!Ec8yAo*(?|@vyxEkFUSAmFe4Z6HOp7V9U+?#+t-t%t*`S7^` zT_4|+@c9n9e3gz{%Zn8X*Zbsgc zIC;ks&<9qq1Lto|oKoN0*spur2IL&UjiQHtaN84S%-G`&bl2Ae~p* zH{Y8(fiXU0|5L~x0Xg5{f8(S5ePArts=GEvPJ>#qmmv$_UYysy8@Qi1qZ#ydAkOFj zx}0#t8R_p?)PX&S_4lCLw^)BKx}0$Iu5ZBEx4*4kQPygG*5q9dSc7?trN6!O-ra|6 zf%(K)gZE}3@t(tMvh{DH9|Zcx_v9W9CH~{o-}@8i-S{UljvyWO+PTBvC%|5-N8Sg} z%@_8M(Y*&piECXC0y+KSj>viLadyUyS{Ko+^&wzPYds1U!AGgqhZ8r1wAM$E4r_Jp z82CM~R(0bHBOe8xbJ#yc_uL})W9Yqo`Wc+O@1!vv2d{;_k0&njJc%tA z_v0yaIpK)=VI7|D&w+LLTW$>d_zNI!9oo+%u8On{xnBZfI~Tcsh3=jw_+_!yXMvo) z1E2!zaX+wjef5d;&!KnU?O$Wd2}f`3zk%zm{kL%PD|mCQ^LM~?qriC1N51FLJNY{G zzJM*~n*Ud?zWR8dya%4SXCHn01A6!Ud=b0*e!he)r(fJpx$gUETy4Jz<14jqPqxy0 zmm>cN_JKt@tNo|M`Ry6sIXTzwM;g!X!1XU9UjwfudpYuTa1x0B1H6$qd53*`khO0j z-vZ9Z-rq)dukqXP4!WEpxOdUzj1$~@iR(kgZ^--TuGimr--#M|t=GKHe?gS%z<&Ux CV}peN diff --git a/data/shaders/nv_ray_tracing_shadows/raygen.rgen b/data/shaders/nv_ray_tracing_shadows/raygen.rgen index f124524f..2f7f95e7 100644 --- a/data/shaders/nv_ray_tracing_shadows/raygen.rgen +++ b/data/shaders/nv_ray_tracing_shadows/raygen.rgen @@ -20,7 +20,7 @@ void main() vec4 origin = cam.viewInverse * vec4(0,0,0,1); vec4 target = cam.projInverse * vec4(d.x, d.y, 1, 1) ; - vec4 direction = cam.viewInverse*vec4(normalize(target.xyz), 0) ; + vec4 direction = cam.viewInverse*vec4(normalize(target.xyz / target.w), 0) ; uint rayFlags = gl_RayFlagsOpaqueNV; uint cullMask = 0xff; diff --git a/data/shaders/nv_ray_tracing_shadows/raygen.rgen.spv b/data/shaders/nv_ray_tracing_shadows/raygen.rgen.spv index dfe96bdf32b1e8dd65960c8962f4655a2610026e..7a5d5f503479a4f108c1047737e3e87c60c9be0b 100644 GIT binary patch delta 1164 zcmZ9LPfrt36vgjMZB?W$um(*u5s4dFn2?ADPD&V{i?-w z1$aUBfzTcLFzNY%xLrFj{ks&}Lv6{kh^7U<q@X4hrO3y*t83!lzYc~zi#JaER~`33D6K|i10`B7+vNuJ^H=TwKKI<&{E#ZcMf6&F=)}Ee|4}Vp$|7q+y@@S?gc7z1Cjm^xpU0WXvCIH}kCBI;?h)JomgzQ_*9l^aci?B$)jqi7V&JzgD*`Uw{`fzVJ81MUrDbva{}2))u51xmvvw~Khz5J6X`1NkJM!{Ku29YyDRxeJ| zbIvAlZJT#C;-k3d&PKD#x@b^xK_H)a{G-B|>f(DLq|NGK&{K=qlry3;%ea8f9Bc)h z8Q2IqzYyD))V#d>hQO=C+2p1`orrHqrxu(BwuK?xuc95{3+y-}4i3{X4GFx&Yk>x$ z0&k?#bd>*AIyS($ng32Un*N#U4x6RHE!}UAT0j$AL@^RZ1TNf_{2&C5cS+`iq_Cvt z?vdPcHtZZ4_^Mp~qkRECwODsaC<=$s{ysXR#Pv?g&PJgquHtO1d#=hxKJob3b50l0 NFc;(hr*@tQ{{hGuU9|uJ