From 96c24da077eb702a2e4d5be7e6d5f4a979760da3 Mon Sep 17 00:00:00 2001 From: Xiang Silian Date: Wed, 22 Oct 2025 18:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=8C=E7=BA=B9=E7=90=86?= =?UTF-8?q?=E9=87=87=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shaders/texture_loading/glsl/texture.frag | 20 ++++++++++++++---- shaders/texture_loading/glsl/texture.frag.spv | Bin 1144 -> 1508 bytes 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/shaders/texture_loading/glsl/texture.frag b/shaders/texture_loading/glsl/texture.frag index 6943e81..4b643fd 100644 --- a/shaders/texture_loading/glsl/texture.frag +++ b/shaders/texture_loading/glsl/texture.frag @@ -1,6 +1,7 @@ #version 450 layout (binding = 1) uniform sampler2D samplerColor; +layout (binding = 2) uniform sampler2D samplerColor_ex; layout (location = 0) in vec2 inUV; layout (location = 1) in vec3 inNormal; @@ -11,16 +12,27 @@ layout (location = 0) out vec4 outFragColor; void main() { vec4 color = texture(samplerColor, inUV); + vec4 color_ex = texture(samplerColor_ex, inUV); vec3 N = normalize(inNormal); vec4 textureColor = color; - if (textureColor.a < 0.1) { + + //if (textureColor.a < 0.1) + //{ //textureColor = vec4(0.2, 0.2, 0.2, 0.5); - discard; - } + // discard; + //} + + // 计算与 (0,0,1) 的点乘 + float ndot = dot(N, vec3(0.0, 0.0, -1.0)); + + // 保证结果 >= 0 + ndot = max(ndot, 0.0); - outFragColor = textureColor; + vec4 blendedColor = mix(color_ex, color, ndot); + + outFragColor = blendedColor; // outFragColor = vec4(1, 0, 0, 1); } \ No newline at end of file diff --git a/shaders/texture_loading/glsl/texture.frag.spv b/shaders/texture_loading/glsl/texture.frag.spv index dfcd42017eaac9658a8b5899a706db142cdecfd5..6bbc39db4e7864325193b710f078485bd09183db 100644 GIT binary patch literal 1508 zcmY+ETW`}q5QUfKLTJ+)g_csFP6HHZ3Acif5WJw0m#9TT&_^r8D`d&BBgaAIjUU1P zLE=~Og2egkELtp0XU~~4v$M0C))u-Kjk#c!%(6K$)wgaI#29hS()R}+2EAz!^^TrD zMzLaQr4Y@kX_>k_HXg<)fpytU*;Cn?w8XTDRy9>N=9d!dX3_KqVgK~BKR6CYlSw!& zz9lwH;?#ywoZC?mf3@gZo-R&D$t>~(4JrJ+!I!khC`+@!Y3eo|PtVXnxRd7(Y8xTd+Pg`Z2Pp>ynrKar8gS>yC1%g4h+OEFCo$QSm!nC14r zJ-g!5C@bVj-GTh)#HNvrJYBP#T{bJ;<-;%k_`Z7PEFBrMcX&^0J}|StRiX;hKYHd) z9PI1q9lfi^ow@uCWs%n@Z?3AbsdZCaAlp(s?iI`(1p3>Ohr_mY6N~c1sqcRd@2K9A z0_ezZ&qZ*r=9n|{vEQmZ_2>)znmo1O(Sw-*oXh9TeB^J-lg|q#|GIqDYlUwJlZ%dg zFf)Qf&+Ocp4}__8N5<#y-4cEOd8jCL_GM@=V$^vePY={$A273rd!d)X`Ispm+;1@r zd9=)!H|}!5yj_Pm6YtYu;(>=bL)XK^d57pt&u6%+HFt0b_T9dVVB>^R2BLCdNNo_9RAKYN2Oe?u)qF=b6@U#CS*GKgxb7`wLXqX^8*; delta 512 zcmXw#u}Z^G7=`~NZEdL;ij7sPHd+;9CntqcK}0$fx;r>HWDu%>P{GY7a44C42zTGX z`WC)}MHKvwBngNAoOA#C-*fM0eNpv2x4UHKSlxW<&HPb$&CH_N^=sd=Rp=O$`DNeU zkCXK7W&*{jSerVHAEys#e349&wD6_ua|3`RLtvS$KFb`i}Nv`51Qs$7p}>Nd6!PpWa%h-_D%w2 z(0z-QD!iT5N~0&GSO-e5Om687pfs02YiFFT-SP*_)s#(816tEdNuTp>9cl>VDYg3b z8ap5aZ}ced9>BXYUF3@)2ULCEY|!F9khkE1;y*+Zmsf;1g6klKh^W%P^qqn~{lhAg