From ee9e10e6a9ea622f787291febb8ef3d06b3d6643 Mon Sep 17 00:00:00 2001 From: Shlomi Date: Sun, 12 Nov 2023 23:47:00 +0200 Subject: [PATCH] Update vs_node.webp Added port types --- tutorials/shaders/img/vs_boolean.webp | Bin 0 -> 1348 bytes tutorials/shaders/img/vs_node.webp | Bin 0 -> 14358 bytes tutorials/shaders/img/vs_sampler.webp | Bin 0 -> 6180 bytes tutorials/shaders/img/vs_scalar.webp | Bin 0 -> 1276 bytes tutorials/shaders/img/vs_transform.webp | Bin 0 -> 3138 bytes tutorials/shaders/img/vs_vector.webp | Bin 0 -> 1900 bytes tutorials/shaders/visual_shaders.rst | 50 ++++++++++++++++++++++++ 7 files changed, 50 insertions(+) create mode 100644 tutorials/shaders/img/vs_boolean.webp create mode 100644 tutorials/shaders/img/vs_node.webp create mode 100644 tutorials/shaders/img/vs_sampler.webp create mode 100644 tutorials/shaders/img/vs_scalar.webp create mode 100644 tutorials/shaders/img/vs_transform.webp create mode 100644 tutorials/shaders/img/vs_vector.webp diff --git a/tutorials/shaders/img/vs_boolean.webp b/tutorials/shaders/img/vs_boolean.webp new file mode 100644 index 0000000000000000000000000000000000000000..b87ed5d9c7dc7752d82866499d59e452fdf88f36 GIT binary patch literal 1348 zcmV-K1-trENk&FI1pok7MM6+kP&gnk1pol>9{`;JDz*Sq06vjOolB*pBB7-9*vPOF z327$+*a3r1;(i(S?fzGmu=}6Jctv&`R%FLDFWkNvkH)O>mn=kw}M{9fTd ztvzQ35;QoAU$t8~V=K0rUzygQvy;dOc%Y4R(zf2xx!xv2by_|_)zs<`v-+5tzd>S# zMJJs_Yi5-Yg&n!(P>keVZH7leuYdeoSo~!^;a4x&CTA>N2W``r38-b{;|bfETn<^! zlW(RRHy<{y+;(ZWjFToT*@1~msWouc5dsmTnVQur(9I6^;&a}>gXE8px6QqWVIRHH zhi>CIbwp-g}zV;Z8^t~wT#wk{nrEI|iCeMIaH;*lKejLA0C=%^5QRZ8(de)@i&cRnJiMFS2cE|qASgW$)S+904Cu91_*)CgP z)*uO<_Z|KD=`d?l^;RRnzM(R!|0&4m?a*dBm7uvYm(nX*)0S3GAvIWfQ#|ip4gVpJ zP%~ks`y}K;`ta2s*e?7TjMuu!t)Bnbfg3Par|Md2YlqI2r=QnO_}?5yMmVwbj`Ha| zTDJ)MsC+ZfVH5Swt1-+#-Y8Vl*{guIGFhKc@ha*ArXoUHLjcd9`orIiCW4 zYKqqXmU(Vh8rA8=I^CF*vBrcuXudctQ%|s1Pe%PX7(WhfQ1K#amMJ-u_++$k`$oE> zKaI`{*0{ETwZHi!+|HBRWAF!TZtths%U*V-g69k8*ZAJ|Z1HjXb5p{-5~!YjbNUGf z9r#R9@%78YClW;tosJ z&zt{+!o0c^d4i}rRJpwL9(hvgZ{01Nz-0i>*O!h-`z*>&&!Zhthj_s09Rg(r`FbbY zM}$X}>*XfFQ}b3)@t86JA+pjlD#0!wu@oyFi!l-uVS%Q8uys7z=B>>hlwMb1Es@gu zewnw~(l0I16p?*w@DMFXse+mhh(-XaO?Sg9m**hR&I{KA*XmsJK#-;#w(;Cf)RcKH zhCjhF%9SyHcORf!t7CNyei$(U@A={5zU@4)v0p+a@q*JYmFmE4D6Ws^hNP>-D=e1? zn6$UWJ2^AN`=9?xXU=l*DmqDlwRr9#U` zZ~8FY+}L_jCz57G{_wXOl$$4$vE7a%K${5i`bRME?<6EgvVvx-262$U{f|&O9TTom zLHZ~551o2AVwD!ZNgJLgVm(=$)BtM}m-m!$h^X8TS9WZn~Jn9J%8VGwW> G00020-LQZF literal 0 HcmV?d00001 diff --git a/tutorials/shaders/img/vs_node.webp b/tutorials/shaders/img/vs_node.webp new file mode 100644 index 0000000000000000000000000000000000000000..5ec24b6714126fc455cbfa5e3a0633d6874cda19 GIT binary patch literal 14358 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 literal 0 HcmV?d00001 diff --git a/tutorials/shaders/img/vs_transform.webp b/tutorials/shaders/img/vs_transform.webp new file mode 100644 index 0000000000000000000000000000000000000000..7c71d8b01b1ee42d4eb2cbdae504c2c59dfb30e7 GIT binary patch literal 3138 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 literal 0 HcmV?d00001 diff --git a/tutorials/shaders/img/vs_vector.webp b/tutorials/shaders/img/vs_vector.webp new file mode 100644 index 0000000000000000000000000000000000000000..8c2788c3b05b480e397e603a383eba466bd00180 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&go12LJ$&GXR|dDq8_;06vjMpi3pAqoJjCDG;y{ z328eA@EhO%I%pb#mN?p#7Y$L$nN zPS|VWS8}U-OgQD3zT~*SB#=1;xYSI|DGFJtgw#<>%ThM%FM6|9Z9kB%?1>4a~;CIe4s` zj7}}CEc=zgGI)^B*rsX<+0k0rwtB(Hv&}PmbbSi(W zw#7nX^&$rNK{wr-{`%fonH(9XKD3tD=81$<8UQR{0RHMSnYH4161zN0^nrD+(gfYI zHj!-n*S3pU-%)+5*zfXbk+@XKdA(DH$v$uHLJZ5s=Kkek%+|zJ*Q~UwaA}?oaT8Zo z&eL-YVROsh0%@`d_44hJ&H%7!b5-=nxssQPYwV$foK0!q_U2X&7N$whT`qMsx5-24 zVc!@NWva+Fd*UI0CHmctcR8?_xqJpE?|H8^)TZhacH;wD(Sv9&cm|h)SN63SH;R%P zAl+&=GjV2&TbNwB9>p;XRnU#K7)jBt%6Zx%-txQMmY4mnfUp7M8+pgfZDTzR&%Ev+ zFo5=g`qINoU=gp6$rs8WOu$m>ZQOkbGGf0H2IdC5n|13(Tm^?Z_{9V^xEwvJFu-pY;`^)yaHWn>ub%Q+S?TB5zU@oNt$4^d#_G z1QMtZ{mZn=&fmCW@KbE`fP*$Aqj78YzxV!@7A+OKy%>;Zxos5ep)}*~JP+C3q?8f| zO>E)|_lU}D*1jRr{*v%40z=jHb7ZH9^1A#%AwJ;8KjDd#YI1w~f@x9dn%^Y7eQ2$SrQ1ttwoA%Rb1TQl99oi@Skks|+rv*G0V}nFqtoN#!SI018SI{_G~W3SAdq zDUYQ$_)Pf7I}|N7YZn>kX}hnj2T{p5wEgkhW^)&C`NRNKzPo?`0u6Bf6O&Wm7F%@4 z001szdMPF=3-09vUqv&-<#+gLwXr98xvuJ1{87|n5li}HX3_y6-~A+cLnK;yYdOj{ zbh7FlIknB^6Fp$FLBL>ok^|$_Jr(|p`(#Tdv(by-G0uPU)HCqf!^U}o=nXsYsH_+> zQm*mtE*r``@qm}U822k%CT( zt0C2e^6zq&`nTyd88SG7sb3LAQo}BhlvTUpSo$CH=r}