From c4aa82e2fa52a807d1b1d90cc194c686c4b3a37b Mon Sep 17 00:00:00 2001 From: junjie020 Date: Sat, 29 Dec 2018 17:29:49 +0800 Subject: [PATCH 1/3] fix bump example tangent lighting wrong --- examples/06-bump/fs_bump.sc | 25 ++++++++++++------- examples/06-bump/vs_bump.sc | 35 ++++++++++++++++----------- examples/06-bump/vs_bump_instanced.sc | 17 ++++++------- 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/examples/06-bump/fs_bump.sc b/examples/06-bump/fs_bump.sc index 65154548b..b14028f96 100644 --- a/examples/06-bump/fs_bump.sc +++ b/examples/06-bump/fs_bump.sc @@ -1,4 +1,4 @@ -$input v_wpos, v_view, v_normal, v_tangent, v_bitangent, v_texcoord0 // in... +$input v_wpos, v_view, v_normal, v_tangent, v_bitangent, v_texcoord0// in... /* * Copyright 2011-2018 Branimir Karadzic. All rights reserved. @@ -15,7 +15,8 @@ uniform vec4 u_lightRgbInnerR[4]; vec2 blinn(vec3 _lightDir, vec3 _normal, vec3 _viewDir) { float ndotl = dot(_normal, _lightDir); - vec3 reflected = _lightDir - 2.0*ndotl*_normal; // reflect(_lightDir, _normal); + //vec3 reflected = _lightDir - 2.0*ndotl*_normal; // reflect(_lightDir, _normal); + vec3 reflected = 2.0*ndotl*_normal - _lightDir; float rdotv = dot(reflected, _viewDir); return vec2(ndotl, rdotv); } @@ -45,25 +46,31 @@ vec3 calcLight(int _idx, mat3 _tbn, vec3 _wpos, vec3 _normal, vec3 _view) { vec3 lp = u_lightPosRadius[_idx].xyz - _wpos; float attn = 1.0 - smoothstep(u_lightRgbInnerR[_idx].w, 1.0, length(lp) / u_lightPosRadius[_idx].w); - vec3 lightDir = mul(_tbn, normalize(lp) ); + vec3 lightDir = mul( normalize(lp), _tbn ); vec2 bln = blinn(lightDir, _normal, _view); vec4 lc = lit(bln.x, bln.y, 1.0); vec3 rgb = u_lightRgbInnerR[_idx].xyz * saturate(lc.y) * attn; return rgb; } +mat3 mtx3FromCols(vec3 c0, vec3 c1, vec3 c2) +{ +#ifdef BGFX_SHADER_LANGUAGE_GLSL + return mat3(c0, c1, c2); +#else + return transpose(mat3(c0, c1, c2)); +#endif +} + + void main() { - mat3 tbn = mat3( - normalize(v_tangent), - normalize(v_bitangent), - normalize(v_normal) - ); + mat3 tbn = mtx3FromCols(v_tangent, v_bitangent, v_normal); vec3 normal; normal.xy = texture2D(s_texNormal, v_texcoord0).xy * 2.0 - 1.0; normal.z = sqrt(1.0 - dot(normal.xy, normal.xy) ); - vec3 view = -normalize(v_view); + vec3 view = normalize(v_view); vec3 lightColor; lightColor = calcLight(0, tbn, v_wpos, normal, view); diff --git a/examples/06-bump/vs_bump.sc b/examples/06-bump/vs_bump.sc index d41f87fc2..26a4831b2 100644 --- a/examples/06-bump/vs_bump.sc +++ b/examples/06-bump/vs_bump.sc @@ -8,30 +8,37 @@ $output v_wpos, v_view, v_normal, v_tangent, v_bitangent, v_texcoord0 #include "../common/common.sh" +mat3 mtx3FromCols(vec3 c0, vec3 c1, vec3 c2) +{ +#ifdef BGFX_SHADER_LANGUAGE_GLSL + return mat3(c0, c1, c2); +#else + return transpose(mat3(c0, c1, c2)); +#endif +} + void main() { vec3 wpos = mul(u_model[0], vec4(a_position, 1.0) ).xyz; + v_wpos = wpos; + gl_Position = mul(u_viewProj, vec4(wpos, 1.0) ); vec4 normal = a_normal * 2.0 - 1.0; - vec3 wnormal = mul(u_model[0], vec4(normal.xyz, 0.0) ).xyz; - vec4 tangent = a_tangent * 2.0 - 1.0; + + vec3 wnormal = mul(u_model[0], vec4(normal.xyz, 0.0) ).xyz; vec3 wtangent = mul(u_model[0], vec4(tangent.xyz, 0.0) ).xyz; - vec3 viewNormal = normalize(mul(u_view, vec4(wnormal, 0.0) ).xyz); - vec3 viewTangent = normalize(mul(u_view, vec4(wtangent, 0.0) ).xyz); - vec3 viewBitangent = cross(viewNormal, viewTangent) * tangent.w; - mat3 tbn = mat3(viewTangent, viewBitangent, viewNormal); + v_normal = normalize(wnormal); + v_tangent = normalize(wtangent); + v_bitangent = cross(v_normal, v_tangent) * tangent.w; - v_wpos = wpos; - - vec3 view = mul(u_view, vec4(wpos, 0.0) ).xyz; - v_view = mul(view, tbn); - - v_normal = viewNormal; - v_tangent = viewTangent; - v_bitangent = viewBitangent; + mat3 tbn = mtx3FromCols(v_tangent, v_bitangent, v_normal); + // eye position in world space + vec3 weyepos = mul(vec4(0.0, 0.0, 0.0, 1.0), u_view).xyz; + // tangent space view dir + v_view = mul(weyepos - wpos, tbn); v_texcoord0 = a_texcoord0; } diff --git a/examples/06-bump/vs_bump_instanced.sc b/examples/06-bump/vs_bump_instanced.sc index 24c509732..addc850df 100644 --- a/examples/06-bump/vs_bump_instanced.sc +++ b/examples/06-bump/vs_bump_instanced.sc @@ -25,19 +25,16 @@ void main() vec4 tangent = a_tangent * 2.0 - 1.0; vec3 wtangent = instMul(model, vec4(tangent.xyz, 0.0) ).xyz; - vec3 viewNormal = normalize(mul(u_view, vec4(wnormal, 0.0) ).xyz); - vec3 viewTangent = normalize(mul(u_view, vec4(wtangent, 0.0) ).xyz); - vec3 viewBitangent = cross(viewNormal, viewTangent) * tangent.w; - mat3 tbn = mat3(viewTangent, viewBitangent, viewNormal); + v_normal = wnormal; + v_tangent = wtangent; + v_bitangent = cross(v_normal, v_tangent) * tangent.w; + + mat3 tbn = mat3(v_tangent, v_bitangent, v_normal); v_wpos = wpos; - vec3 view = mul(u_view, vec4(wpos, 0.0) ).xyz; - v_view = instMul(view, tbn); - - v_normal = viewNormal; - v_tangent = viewTangent; - v_bitangent = viewBitangent; + vec3 weyepos = mul(vec4(0.0, 0.0, 0.0, 1.0), u_view).xyz; + v_view = instMul(weyepos - wpos, tbn); v_texcoord0 = a_texcoord0; } From 9a39e66e2ba9ce8cb63317d3f8cc3e453fcebcf7 Mon Sep 17 00:00:00 2001 From: junjie020 Date: Sat, 29 Dec 2018 17:58:43 +0800 Subject: [PATCH 2/3] add compile shader --- examples/runtime/shaders/dx11/fs_bump.bin | Bin 3635 -> 3475 bytes examples/runtime/shaders/dx11/vs_bump.bin | Bin 2090 -> 1866 bytes .../shaders/dx11/vs_bump_instanced.bin | Bin 2172 -> 1796 bytes examples/runtime/shaders/dx9/fs_bump.bin | Bin 2268 -> 2268 bytes examples/runtime/shaders/dx9/vs_bump.bin | Bin 1083 -> 967 bytes .../runtime/shaders/dx9/vs_bump_instanced.bin | Bin 1077 -> 937 bytes examples/runtime/shaders/essl/fs_bump.bin | Bin 4783 -> 4751 bytes examples/runtime/shaders/essl/vs_bump.bin | Bin 1743 -> 1474 bytes .../shaders/essl/vs_bump_instanced.bin | Bin 1936 -> 1801 bytes examples/runtime/shaders/glsl/fs_bump.bin | Bin 4465 -> 4433 bytes examples/runtime/shaders/glsl/vs_bump.bin | Bin 1593 -> 1348 bytes .../shaders/glsl/vs_bump_instanced.bin | Bin 1756 -> 1627 bytes examples/runtime/shaders/metal/fs_bump.bin | Bin 5288 -> 5291 bytes examples/runtime/shaders/metal/vs_bump.bin | Bin 2130 -> 1856 bytes .../shaders/metal/vs_bump_instanced.bin | Bin 2350 -> 2111 bytes 15 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/runtime/shaders/dx11/fs_bump.bin b/examples/runtime/shaders/dx11/fs_bump.bin index c6f5a6f8318d0e6f416debba73094e0f091fd10a..5a9df80533a0501f36b2a60f0066ee71f583b5ce 100644 GIT binary patch delta 713 zcmdliGg+F)E!cz2^2EGH3_viEBUo04mw~}0!pXTj;@IEookBl_92IrulyY)00_Al! zRv0sK-Qi|nZ~*eYGfm#gIE|5Ivk#LobFKvg1A7sJ00R?HW*L_N14zA_5QH{jVBmzw zg|Q;!m_cfoAbLP*9s%`(^nK%p&}@SAx+9`xqFCcO&6i|VYxDt?M%q=2Yuu{g^ zVg5z-@66RnFWsXs>p5@(f(KyN1|NH@*V7<`1l-F=BDBQBuazHz(rklyA_UGNAvqZ4 zzd8|-2-$N&D1hsxAq0*HwTZk>#+>BC-t-(sV!f(5Tck$C08R?YGO`R_v6`0?wxvme-Z^;!yyLTqf#)5NiZl0CMVNarilMv zioE8uic@svacl?amHVpxHG#rKcV%MpCUT5T;PL4g&0}XK@CbqNBTUDhVM1Rx7szay fkUb=k3vo&?AsCX#u>~f;MG}UIWbBpG$nU6c7)(v@ diff --git a/examples/runtime/shaders/dx11/vs_bump.bin b/examples/runtime/shaders/dx11/vs_bump.bin index 8f0f9a6b85821355dca49792e29680390ab0983d..0db2911f3397ca33effc4ba373964aaf2e880625 100644 GIT binary patch delta 307 zcmZ1_aEgy3EZBpM0SG3t7|AlQGcdSBI61G*`Mw~-eex4K@l&tAvPsNg1S!}UJeiR* zfR%y4fq{`BWb%8)`HU=^`rNZ~PEFKq0t(E-d;%h8O|Wfb=r~*)V+|bAWs;xPiz9X<;#l mY4Ut_aTBmn3IYs3FQFI(awgPB20I3zXIYql1T)am1`Ytzk}0wP delta 362 zcmX@bw@QE|EZBo}B8QRe6Ltm$mk1~4HN4#skHr73ao0F~bY+HoBqIX@!;_8SlNmWp z*cccb7#JCPCx2#~&&axYGShj+$)A{I7#Sz?vxqY?Ojc)6XJp#!&%(_(`4x+dBuJ+b z0|QqPg8&0FknPr_03?B6vOFtDp*t%-W3B}Q0|!U}3s5|aRRAmxQ;2K;NFF8*Qp5(- z0|IVL5WO&qkkv5(<(F|Gshj+tO}qqXBRj}Om~N2MKsJMP0!`tB$$@MDn+CK2WD>|G j5CE%D5MW>hvO%W9)PP(IQ)9;f3?~*QAi)eYrGWzg2+b~~ diff --git a/examples/runtime/shaders/dx11/vs_bump_instanced.bin b/examples/runtime/shaders/dx11/vs_bump_instanced.bin index 1bb7658b7e914620db8ad34acce28acaed3680a0..f3c8e812a9d1b1e32ce6ac586098e93d7275430b 100644 GIT binary patch delta 218 zcmew((89+N7VN>s00a|RROAi-SuPPy&e;J^d>-#s44u@q$Unk((*Z`H`~kL&Zl4%A zH?S};I503W=xlamYG#_;z`A(yeYUmrKn0va3<3;5Sq3f!fd)q)4FXmT3Sb&aa4JF7 zNMTU}vIPh@ouF#8u&7}IDllVUU@cM*U;sJWjY$BcXEHwr>tr7eiOB*S7L!vrBmjK- BA{+n! delta 564 zcmZqS`y;>-7VN<~kwZn!hJ%5@CBn&hMta=Z_xW7!`;7jm7Dm=QVPs%nu;JL~^@)*F zhmC>3fq{{sd$TK3GgG|<0|Q49g8%~)P(>K408oN~!L3OFNHT!gMhpyGn}G6Q@eYVM zNRACA#sSd_QU@{zSwG0kWn54(W(Y07z`))FR0jfXOakT*4NMS87X}7an4}d{5zv9` zFoVDG!!%Al#Imv;>~LnFK_G{NEJJrVNFPWZCJtnR9S&9tv=bx;b2zeon8T6Pp*b9A zpE=kEV2klN9ApT>;XsE@PG#Mk3k!D^pe)GwAOLeFC=6lF0?EU~L25wZ4g$ciV*trv bQwMWCT;1eGHtESb*i0tRV3V2rhD`zhX>&V; diff --git a/examples/runtime/shaders/dx9/fs_bump.bin b/examples/runtime/shaders/dx9/fs_bump.bin index 8f2bf0494467ec84cb573a5980de2aa1f5c27d07..95e10ce29cd62217a69194b513c680f1cf5da02f 100644 GIT binary patch literal 2268 zcmd5-Jx>%-6uoa|mYo$8B^DMYQfi|RD+|9MF_@rHa1&!gP!LEK*X&|KId&#CV`6QF zglhK>7#l4u^dDH6DJ<-?kjC+xd*3j-N~qoNGWXuOpXc0p+*q6&x%BbPSHUlmBi*H~ z)$Q4KtKFG$B2GrtaJ${vTy9M{2g~tiORbHy^{qSY?!xlQ#=9`FnvA!s28^UaLi9 z7ta8P@o&BDquN+e92_- z?{Tg|{6Krd?DF~3*tO4}<}Y7(_wC9Vz)**iNIj(t>=NhY5y*j;Ymh?;)u$#diM$jot+qcnUD2FyZKOW;>dH(LLcCP z+_dE>eX!loiPLV1qjBuVVP5o}I{BH*Xxw-bQja;GM1h2e$yq;(rI|hOJ<*1v^=xM1 z)6|&*iBvXh0*yC(1lXL?ckHpm12}5Wrjyq^xvzCb)z_il2I?aiF%Gs~Qu7>9=Un6n z-x6fwDAd_1j+{iCOAq^{&e<)F{4uA57S~fh!_7D%maJ)gpU|4LRX)QUm3^@{^I@M& z#_eXn|?PGeBKFIM}F*VNF z$FF@%1-pSgfo&IgjThw4%KhdJ8-ICX*ikREp5?QhuCTOshGn&brgOeLB^QQEwS%_{&R^ z1ISG;N056jt^d02Vgq;Iu_`7pS!2AcF}kDpAEiC;8)a_0v&735WA=Yz8o-&kCDz_F Wx5QN)i7kfTg~Ty%>}5qEB7Xpicc8og literal 2268 zcmcIlJ!@Q75Iy(3x7w#jNQrQfA`lfR>?V?Vz$&zX5wE6IisjD;>cA7|#yoSD6QbA6?8 z?daKG89wN3>~23@&qJ!!cYDE z%9GL(FoCCL0S@_@@F@Pb+ID0%-3UCdZR1`r%rI?P*p&U9X^S!EeHRGEpD$wg zJ zDN@5U5Q?m}^PWEP*;28R17-3VP?El8(aVgmPs#-b;B@W*F^r zVb@j#hc+v?t4FwKyN*u2u7qne4o&|B-U?Q@nj_KJ}Pdjg@LE$GT=aDsJ07Q-)1( zSWNPM29sa$K48s0Kk4FE^GjSdoO1JC_TckN=~G^vCb6!2TxPzCIlZQo`Giyd%E?_J zxAOaJ0(;P%vPF#av-68}$?iPnhNo_viJJ-d%ygIQKBuwnvx&O*H)5~OWy(GBx?7&5eDq zM(w80Uh|sZY`h2G59tvvziN(ildgE>QV;(%H{s*lF82O^xFwJ8%x!XEXA+#>nFQx| zhQBoW9*{Hbjpmeao{>L)n*zVL&6+>b!krkHE_~G0H*m>(!aM(o>1X+icz|DM@fy=^ZIGi5oN^bJbw@{-l*Zy5N7 z&GJ5R24K%+)!eG(jPhX5d$YHcd0OSnIHqvfVrto9takoRSq~h0AR)wpaIE(?ZanLM^O>X4} zjydp?Z^2AjU|#(Fb=>ynEm3Z&336PivliF9#W`$h6qvb#%drrrc|)=1v@U71HYpl zS^K=+`O97^)v5xmF%JW#;yElTnDTB_fp427_&?jlYyRPt?c!b8_RP!f;KFuH{l0~v zr5hw1R^ehu@3@{7itUXdVOw5_L%b5lmRAf3lc7Mb9J7cn^?aqk=jn29bui3kp0!9b zFrPSac~6#aXCL1F!+6TqdWNNJAYWZs-*MFCNptQx$1)0#fH@yUP#p=X_wx+=0vWAs ACIA2c diff --git a/examples/runtime/shaders/dx9/vs_bump_instanced.bin b/examples/runtime/shaders/dx9/vs_bump_instanced.bin index 69858b9d19b50d4deda2626ddba971a9874caae9..c69ada5d2848d45e05515652afd6b6d1a77375e6 100644 GIT binary patch delta 256 zcmX|*Jqp4w9K~P$|MUX{L9jRrPEH=fT`C^K(aq!rm0rN1i`^VNgsUg$&?C4x)R$BY zWca<0&P9fBs|i$a59PjSCWZkP zcOUoe|KluHeglS ztj)pBjKu^?G!uFzzvM>NZDa)0t+?5Mr-unsw~-l|Zt=;V_(~@i^P`wx2{vID|5qje D-r{`x delta 433 zcmeBIU9ZaF7VN=ld1Bt9i9ErK{u>i!GbZNc7v(1AWLBkWl*N}M=B20Rm1tUXDJYcW z7L+9x#T!Q(#wyq_U?TSd}(&bFeexH^mZUN)OBgBO|B@LPo}#z+i$qIv!}70IT9=0iGTvyapPXL7a7o W5AG}@OPI5w`9aQ7+&qi_D-!@^fRF9~ diff --git a/examples/runtime/shaders/essl/vs_bump.bin b/examples/runtime/shaders/essl/vs_bump.bin index 73c4316837cb983e0c647ae350d95a576b8b7362..5f07769c6376873ff13fc525f16e78a4bd086b43 100644 GIT binary patch delta 470 zcmX@ldx)DOEZBpM0SG3t7%?@oZnRKlntX*-eR3{S&17e0BSlkdE(L{>+=8;iqIgri zas^uj13d#|vB`g#EGL&T>ob~6p3fp>YK|ml4pg0&UzD4elUbFjp-~#2o1c=J6KxQy zpanNlQ?H`3YH|XbIHUPwCKls*OeJPuC7K{}%i>EC^U_oEN`MAK-DCj~Ps&8dXlQ6a zCC&9Jt11wdS?E<&RB9^dDj?*60?6`}R#g?6ng|gSy>hU{8JX!B1q!)|CB`s&Es^|b z3G$NdWC0eDddp}-AQR|NxPwsC8G$5Wj)SN~`5U>Ap-_$R?;lnN~>s7J2rG!xO z`;L&jZ5#2pYYX};*3Vno6;BDxv#M^&e6#Qz?ik$L`iE#mT{#0}ew$b8qH3LfF8#&f zsjizgF?Yp9C4|OlRT_wIld$iy(Zxh=0 zdBi10VB9)Kjba(|2cWCPik7*ks2_MgJ!-m<(6-z{nHgJvdH5af>1WD9Xdkj2jwi6< z=^&hV$mJ-9L%gqdVi`Tqk3$d(LO_#|Xe~5(i~wSXkXWVyunt#z>rHmAcc!P5U6xHT zlyTsuOAuY6=pw7`MAP~Hu(p87!ziGiWQRrynIPnelm!TScWel^uqjHPI)qK_K1{B6 zbcT>-4y4&oqH9#iWrgQi&k^t(D(ufjoC+VNE=OS6KT|MQW{@JB)FCh(6F40a$gB;H z#wDf>iRV(8bstQP)7L9F509sVDV0Ux>2Q?$VFJKl1wcX&7|SHwqt?Lv8eV))jLR!J zufAO!Uoz~o^ztP~J~g&3lh2I-Q#_Z~$nZI`{vPcE0psOCcK!I}(!bsW7OOs+;u%-9 gclxVfBx#+)&Ah4`z2YXN9}{|o!DW38et91G5AJF*i2wiq diff --git a/examples/runtime/shaders/essl/vs_bump_instanced.bin b/examples/runtime/shaders/essl/vs_bump_instanced.bin index bfbc0fe8b97e8f4db12caa894d9a82166b87f010..85ee1e62ce3626609b5c3a6b497c1140bc5a49f2 100644 GIT binary patch delta 494 zcmbQh-^s@j7VN>s00a|RRG4nCZPeP&#Aq`46_d{7b*y3%Ce~aE3MIJ(Wr;=cCJMGN zrt#$a%uKPy@G1aT6tU@R=nVi6^&S*MWkwtv+Pi9^by>g(O0g4W@$p@G% zCtI-aPX5m%%4jxuEvvYM1(Jyt2-D2Lmfm0yn9RwdKUslQn*-`FORz*GtI%X7W+5g+ z1E3+AQBXNULy(g|2A0L=t12`#5h9k8mD$WDm$LC|8^!{SE{lhohU7a#<7gw0EYxU= z$rIT`Lcn2O7GIW`3JNZu#bv3>%xpN262&`VrZ;6 IIhS1-03w)`!vFvP literal 1936 zcmaJ?NsgO96s4n1N8%K}=(vur6+Hmw$_wrO`o1}uW{5alX4PtK8(Hg01?mS=pJT>(XCD?rOJl3`ie?7JZdFQ+L z1L=xQMp$0eP099a-=R)HeW-u(me-ZjK=`+;+7(sn)F(n;oHupdY-6WIMtHtuEt}TT zN#A5ro38ziH5Xp(Y~Cs9@>kw7cj`@DoXT<61fWsMPH)ku5mqOt_u4;J{0-Wo374$R zi0bHsN;DflYrZ8V;}r=)|CdiNL|Jc(eGauGM1MZVFXW5ufR$4#AJ`{W4pq1Isg*;$ zO;kByZFztqOcQp6PHwVD=C&lPC_!qbScrB6Ea1 z7qkFD59JWTO>BYO7Y<^JVIAh<6^8l=%PWMsg7nlf@@o<3`rFzs zCCo?zC>}8yJNSW6wfuIF783-iTnjxWlulEms*^*GeXbO*22Er$1C6|jF4wcomD1>X zzKH3t1|S$1fI}Es$virtxNu5rT)av&Rkxte2sHq7@*Wu7fN%ONZ-U_~+`3#`F~~y; zM=k=z%ShEW4%Y*Ox9ix+cTQGGt)k79X0l^QkjmUU{m5BLa=zeDtGCO_Ra?>HfK)PV OblgETc-?;czV{!`H*q5X diff --git a/examples/runtime/shaders/glsl/fs_bump.bin b/examples/runtime/shaders/glsl/fs_bump.bin index c914bb0e7000ec30187028ec0c7216c6bdbc0973..d629d17ac634002a220e6116f5e8f9767084a57f 100644 GIT binary patch delta 355 zcmeyUbWw@NE!cz2^2EGH3_viEBbe!}z{c1#Mu)QalEl39)VvaFE(L{>+=8;iqIlzI z!&n7dg|hghOl*=y5Xrp!qTIxs$tq0C1R%`Js#J}#__EB@^38Xdv>D|PqEK^9H5Ihr zc1%`dshga@E;9Kriy*gxE==5F@(Dhf%^z3}Gsfxl5QP@riIFyH|t{qG1~!iU!NgC-_z}0RShc Bc`yI~ delta 392 zcmcbp^ihe!E!czA^2EGH6M2G}1O+!HrZFbwLP1wyatn*<9;g~aQ;=>Gb~Ui> zCiV|Z_;p)qPM*jG*KK43(k;vl(VfU$f?v0hndam#ya?TvAl+qrYMWQ^tz-fK3crWU diff --git a/examples/runtime/shaders/glsl/vs_bump.bin b/examples/runtime/shaders/glsl/vs_bump.bin index c0b72c63d3ebb3f5db13e15329a236715de6a625..ac65b96dadb03d45f087efeb76a87252d5f5e1b8 100644 GIT binary patch delta 463 zcmdnVbA*c{EZBpM0SG3t7%{SLG{49=*_BmcvM^KGPG(iAhDK?8ZhlH?PP9R+ zf)-r6rd~y5l_p42Sv*87P!rT_^T`vKbtm((NYq0WlqBY*r{OK#gR5M|J$1#}87r2-K|QvL`=_gMxg(2WrYN~{_TY$;G=`BUU7IZw~ggA^T- zk~x&w?4PUv~MnUX`0`N(d!? zZwM*cwvms!wxnJ8l+q%v>SkMP7J=gs;CQKDWh?7y9F_~vc$`G^R`KC&eu6M3sujrX^>>rU%}i0^)YHt=oqFP9ZiX;s9*o&AkWY*h z&vVvsjv(hSk6CefDnn3Ik!%T`X@CosGlY0mW?*9sP>eB~ z?8Iz5c^xyaJT+M1Q`8X?oybGN8o=PxQ9uyDNYVrbUuir@nI^~^3c65J+2f5te9g&;Y{HZG Hv&jMgjNYKV literal 1756 zcmaJ?Np74#6vdI_1*fPbL<*uPdQvOtfx;0)}Wzz zE>T^zUB9n)>)0_6FuZm@DWhHMnRpDV+ilY_&r)zpb9(N&ev^B)647c?v-%p2ulN^N zaI%hvxK;L-b$n>)3kZq!H7k+SJqYq) zK#GoTz?HTrN#kEJl41L9)9flx0^a50WBwg|G0GVn8{F|P3=YZ}e`0V@4$0ZG{VNcx zgrk1Wj!+P1FeZdX>~y{WYHx(dK(vQQsk{kzCaQh(NqZD&21)$NrB$U2R4#cCBS5 diff --git a/examples/runtime/shaders/metal/fs_bump.bin b/examples/runtime/shaders/metal/fs_bump.bin index 2e42593fa722b888baea854470c28106ac2a1058..77cdc1e2e0d54bb26b4c6771bdd97dc00422bf47 100644 GIT binary patch delta 412 zcmZ3XxmuIgE!cz2^2EGH3_!p#kyBrVt2n+SwZb_+C%=e+kpYOf!2*8yMY)MN42+CG z5%-OjznDVfb4zmKGxf^iOA_VZ7qSa)Ud-abCxl%P-1J%*m`u)rik6$%)U@D~m5l%u7$r zE77#(Qcx(#EhtMYiZ_lnj8(8zz@j)Q6RUC~9LgakfQ<$-C+}cB!lbJ)xrRkz@kI4^)kzDa?dfoI;y-a0W5s*KMgeS(6v8+sFu}`y{Ur(0;kitb7}p@S0#`raAel S0Kx=IhzV+7-5UjeF#!NT{FC+o diff --git a/examples/runtime/shaders/metal/vs_bump.bin b/examples/runtime/shaders/metal/vs_bump.bin index dc9015d6296e26798e46ba1e3e30252470a75f1f..d744f1cf00b6dcfdfaa8557cf1f0dc1b66b513b7 100644 GIT binary patch delta 395 zcmca4aDa~^EZBpM0SG3t7%?%jZ?sTnp3KLtH942LZ*mNa>11yfK@q)j1zQCJJp*el z1%;B_g0jS-c+<)JEH;xTvKVWa=v7o!fn?Hh@)JvpVG7JaT97oDPyWj)KG~UBh|N?J zq+{}Wb~#4#$(pQIAVGFBu%PDTbL?`HIobIp|7Pd$*3i&^+Geg-SyiE+1vA@1ud1R_ zQ$be&ArBNlmIo@=)I7WQg1#v zpIyvD1MFiH4PeOVfPx1~80r~-td7qu$%!x3D~&J9Of3id4(MR0eMU%bv(%g{z~KY{ D2xfHN delta 567 zcmX@WcS(RHEZBo}B8L%^ILAgCb>_+S%yT9uvIsMpOfF@ynH<0(I9Zy-bn-?PV+~Wi zipnZ$E(L|OoczQR6NQr8g0jS-cyk3?1p|;Uj1SVzY7SC7*@{`7%|sK-jAFI2D9cPO zSI~kh1WRaQnrMk;q9xcwOPGn;W?+qQea0{Y4GqvV8X8QlWfiYSwbl~NT7-5(bnPGk z4Gj&b$1L3NAyVXoFaw zJy1&wk%JN_XNW9kh^o&hcJe`1iOD(4io%A*=x#R#$D-lnjm*-MSF>?z#pjmf#Fy%o s#-oOYp)oi(5Kc5SnrzJ~H~BOx-{f7af=s|5Ji{u<33Hv{rlmNyz i$U9)eO7%+PLF&Ol2@C~T;sAv#lAjF?H7CE}Z~_1Xpt~pl literal 2350 zcmai0%Z{5c6lJQmQuzw6Dj2m019>UxzFmwu(x}};5%MHX>WV-_3?UiySNc8uj($mP z;|B(!?sBiseVzLV-=99eS^W9^_m%UuN^648ukRe^&T(7eu`GVJio17?Q=Le@2RS<6 z(-CbjIADshrF)`fwV|NN5PhK8(+{-8<(K?eQSjmdu*(WW6M)jZC=VzDs}-WOB+nJa zUg)paONEIU=2)BvB}HzbU>C(bQIzj-PAyQ>1w|Z$n@v%a+t7l=U04E0x@562pnX~Yr;xmwA=nQ35P>zd2eBx+Vp zyNi{1+;hiePgV==6)N%r=22TGN}u$slaXW+Zpv^nUr|y^cF>)67Pf6zV6Ku$An}L6 zC%xbk5j?b*n8@H>>zoAoMBRfZ2z~I8Q+K1fX)gemJC4+avOEpbob|lSM$(+w98JgB zp7%V>M?B3{!Gj)7>?-vHEP7tK+@5iA#j@N=HpMh#F1(F&1%^F;FdRvfDch+S&f4ro zo)GpObH)ENg>8FHs=9L6-zA~&JWr15BDh=|Q!<3XwYl(-F#x8p0L;Mmjb<90J8>Hm zS!{s}1LO9rC{dgYCB!RnQ`nm-T7$X Rgq4_9WiEMR|5C2&`~%H4_a6WN From 75d1ffedad45e1463f666bfee1ac8511c7b951a2 Mon Sep 17 00:00:00 2001 From: junjie020 Date: Sat, 29 Dec 2018 17:58:53 +0800 Subject: [PATCH 3/3] fix shader mk --- scripts/shader.mk | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/shader.mk b/scripts/shader.mk index e8ca61d33..df8bfede1 100644 --- a/scripts/shader.mk +++ b/scripts/shader.mk @@ -121,17 +121,20 @@ BIN += $(CS_BIN) ASM += $(CS_ASM) endif -$(BUILD_INTERMEDIATE_DIR)/vs_%.bin : $(SHADERS_DIR)vs_%.sc +$(BUILD_INTERMEDIATE_DIR): + mkdir -p $@ + +$(BUILD_INTERMEDIATE_DIR)/vs_%.bin : $(SHADERS_DIR)vs_%.sc | $(BUILD_INTERMEDIATE_DIR) @echo [$(<)] $(SILENT) $(SHADERC) $(VS_FLAGS) --type vertex --depends -o $(@) -f $(<) --disasm $(SILENT) cp $(@) $(BUILD_OUTPUT_DIR)/$(@F) -$(BUILD_INTERMEDIATE_DIR)/fs_%.bin : $(SHADERS_DIR)fs_%.sc +$(BUILD_INTERMEDIATE_DIR)/fs_%.bin : $(SHADERS_DIR)fs_%.sc | $(BUILD_INTERMEDIATE_DIR) @echo [$(<)] $(SILENT) $(SHADERC) $(FS_FLAGS) --type fragment --depends -o $(@) -f $(<) --disasm $(SILENT) cp $(@) $(BUILD_OUTPUT_DIR)/$(@F) -$(BUILD_INTERMEDIATE_DIR)/cs_%.bin : $(SHADERS_DIR)cs_%.sc +$(BUILD_INTERMEDIATE_DIR)/cs_%.bin : $(SHADERS_DIR)cs_%.sc | $(BUILD_INTERMEDIATE_DIR) @echo [$(<)] $(SILENT) $(SHADERC) $(CS_FLAGS) --type compute --depends -o $(@) -f $(<) --disasm $(SILENT) cp $(@) $(BUILD_OUTPUT_DIR)/$(@F)