09_UnityShader史莱姆(粘液怪)案例制作
AI-摘要
MaoXiang GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
本章目标:
学习史莱姆粘液怪的制作思路,进一步掌握UnityShader
使UnityShader案例丰富实战经验
配置环境:
VScode
Unity2022·····
Shader入门精要

1. 技术实现
1.1 粘液质感
使用MatCap技术实现粘液和果冻的质感

使用边缘光效果实现果冻边缘亮起和透光的效果

1.2 液体流动(质感)
使用MatCap技术实现视觉上的液体流动的效果,使用法线扰动的方法。

1.3 粘液运动(形变)
使用顶点动画的方式实现流动的效果
2. 遇见的问题以及解决方案
2.1 三平面映射替代贴图UV的方法_组合节点(Triplanar Sample)

三平面采样:(使用世界位置参数对图形UV进行采样,获得三个不同的面的数据)

三平面映射遮罩
2.2 解决模型UV接缝的问题
UV接缝问题的原因:UV的切线和负法线是不连续的,导致UV接缝的存在(两个方案,1、扰乱法线;2、三平面映射)


解决方案:使用SlinmeNoise扰动WorldNormal偏移掉存在的接缝问题

2.3 顶点动画导致部分面积形变
2.2.1 解决思路
控制顶点动画的部分面积权重,来达到控制局部的扭曲以及扭曲强度。
2.2.2 解决方案:
使用顶点着色的方式对需求控制的局部面积进行绘制
使用3ds Max解决

使用Blender解决
应用到实际案例:

2.3 进一步解决溶液物理效果(溶液物理下坠效果)
2.3.1 解决思路
使用world nomal添加系数的方式,使其顶点动画偏移值加大,Y轴向下偏移,达到基于世界法向的顶点动画的偏移值加大。
2.3.2 解决方案
对世界法线World nomal进行调整,添加一个三维向量(Y偏移)得到偏移值,world nomal Dot 三维向量锁定偏移值权重范围。

添加控制偏移流动的强度

优化操作,因为之前使用的是world nomal节点,所以把节点的顶点位置转为世界空间然后输出


本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 卯相