发布于: 2024-3-16最后更新: 2024-7-10字数 00 分钟

type
status
date
slug
summary
tags
category
icon
password
😀
本篇笔记主要介绍了在Unity引擎中实现遮罩纹理效果的基础实现方法。
 

📝 正文

基本思路

1. 准备两张图片,一张图片作为主纹理,另一张图片作为遮罩,通过两者的像素相乘运算实现叠加效果:
notion image
notion image
 
  1. 使用Panner(平移)节点,并添加UV坐标节点和Vector2节点,用其控制纹理的UV位移:
    1. notion image
以同样的方法也可以对遮罩纹理进行实时的偏移(具体实现原理在总结部分)
 
  1. 添加一个Color属性,控制最终输出的颜色值:
notion image
 
 
  1. 保存Shader,并应用到材质和模型上,在窗口中查看渲染效果:
notion image
notion image
 

最终节点图

notion image
 
其他注意点: 还需要在ASE编辑器中设置以下内容
notion image
notion image
 
 

总结

遮罩纹理涉及到的核心知识主要是数字图像处理中的【图像的代数运算】,在本例中就是用图像的乘法实现遮罩效果,即Multiply结点处的运算; 遮罩纹理中的透明像素(透明度等于0)和主纹理中对应位置的像素相乘后,相当于“0乘以任何一个数都等于0”的效果,因此这部分像素就好像被“遮住”了,因此出现了遮罩效果; 另外,Color节点也是利用像素乘法使得我们可以控制最终输出的颜色值,例如将Color设置为(1,1,1,1)即白色,那么进行像素乘法后的结果就相当于“1乘以任何一个数都等于它本身”,也就是仍然保持原本的图像输出。
 
第二点就是关于Panner平移节点的使用,它的主要功能如下:
notion image
虽然这是UE中的节点,但与ASE基本一致,在本例中我们就是传入模型的UV坐标,然后使用一个Vector2变量来控制UV坐标平移的方向和速度(注意,向量既包含大小也包含方向),这样就能让纹理的UV坐标发生偏移,得到想要的效果了。
 
 

🤗 总结归纳

在该案例中,主要涉及到对纹理像素以及UV坐标的处理,还有一些渲染管线的零散知识点,难度较低,适合前期快速上手尝试,了解Shader渲染的一些基本过程。
 
 

📎 参考文章

 
关于图像的代数运算,可以参考文章:
 
 
💡
有关UnityShader与图形渲染的相关问题,欢迎在底部评论区留言,一起交流~

Loading...
解决Blender导出FBX网格体至Unity的坑点

解决Blender导出FBX网格体至Unity的坑点

总结了Blender导出模型网格体至Unity的部分坑点


硬边溶解效果的简单实现

🗒️硬边溶解效果的简单实现

使用Unity Shader实现简单的硬边溶解


公告
🎉热烈欢迎🎉
-- 欢迎来到大咩的小屋 ---
 
**近期更新**
  • 更新了一些摄影作品
  • 修复了游戏作品集里的视频预览失败问题
  • 新增了若干篇有关图形渲染和特效相关的文章