Unity URP shader之镭射效果实现
镭射公式分享如下:
1 // 此公式来源于:https://zhuanlan.zhihu.com/p/487204843 2 // HSV -> RGB 3 half3 HUEToRGB(half h) 4 { 5 half3 color; 6 color.r = abs(h*6-3) - 1; 7 color.g = 2 - abs(h*6-2); 8 color.b = 2 - abs(h*6-4); 9 color = saturate(color); 10 return color; 11 } 12 13 // HSV -> RGB 14 half3 HSVToRGB(half3 hsv) 15 { 16 half3 rgb = HUEToRGB(hsv.x); 17 half3 color = ((rgb-1)*hsv.y + 1) * hsv.z; 18 return color; 19 } 20 21 // 计算镭射颜色 22 half3 CalcLaserColor(half fresnel, half4 param) 23 { 24 half hueValue = fresnel * param.x + param.y; 25 half3 hsvValue = half3(hueValue, param.z, param.w); 26 half3 color = HSVToRGB(hsvValue); 27 color = Pow2(color); 28 return color; 29 }
此公式生成的颜色如上:
如何在衣服上增加镭射效果?
调用代码参考如下:
1 // 镭射 2 half2 uv_laserNoise = input.uv * _LaserNoiseMap_ST; 3 uv_laserNoise += V.xy * _LaserNoiseSpeed; 4 half4 laserNoiseMap = SAMPLE_TEXTURE2D(_LaserNoiseMap, sampler_LaserNoiseMap, uv_laserNoise); 5 half fresnel = 1 - NoV + laserNoiseMap.r * _LaserNoiseScale; 6 half3 laserColor = CalcLaserColor(fresnel, _LaserParam);
shader面板如下:
这里使用了一张noise图做扰动。
效果如下:
转载请注明出处:https://www.cnblogs.com/jietian331/p/17262618.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本