马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
虚幻 Niagara Module特效技术QQ交流群:967848896
1.精灵片和精灵片之间的半透明排序问题
问题描述:
同时使用两个 精灵片 粒子制作特效,想让一个精灵片固定显示在另一个上面
解决方案:
我们可以设置这个粒子sprite render的 sort order Hint,这个值越大,精灵片排序越在前面,越小越在后面
注意:
在项目中最好有限制,比如-10-10之间,因为所有的特效都遵循这个排序数,不同特效之间可能因为随意乱填而造成混乱,所以要由TA或者特效规划好
2.模型和精灵片之间的半透明排序问题
问题描述:
焦老师 我做了个这种的 我最外层的环绕物用的一个模型(一个球)做的 其他用的粒子做的 然后这个球不管是前面还是后面都会出现在其他粒子的前面 我怎么让这个球的前面挡住其他粒子 但球的背面被其他粒子挡住呢 (我给球的背面是个绿色 方便看)
解决方案:
通过材质球解决,把特效材质换成从半透明变成mask,然后把材质球连线也连到mask节点即可
3.特效模型半透明破面问题
问题描述:
当给一个模型半透明特效材质时,他的前后就会出现各种穿插破面的情况,是特效的一个老问题了
解决方案:
通过材质和模型写入深度,再通过材质球把深度检测后面的模型剔除掉,就可以避免前后穿插破面的问题了
1.使用两个关键节点:PixelDepth 和 SceneTexture。在 SceneTexture 节点中选择 Custom Depth(自定义深度)。
自定义深度的作用
当多个半透明面重叠时,Custom Depth 会返回距离摄像机最近的面的深度。 基于这个特性,我们可以设计一个简单的算法:
如果 PixelDepth = CustomDepth,说明像素在最前方 →输出 1(正常显示)。
如果 PixelDepth > CustomDepth,说明像素在后方 →输出 0(透明不可见)。
为了确保前方像素能正确显示,我们需要给 PixelDepth 一个微小偏差,比如减去 0.01。
最后,把这个结果乘上不透明度,就完成了材质的核心逻辑。
额外的三项设置
算法完成后,还需要额外三步,否则在场景中无法得到最终效果:
1.调整 Opacity Mask Clip Value(不透明蒙版剪切值):设定透明度判定阈值,精准切割透明与不透明区域。 值调小可以保证完全透明的效果。
2.打开 自定义深度写入。
3.在场景中开启该模型的 渲染自定义深度通道。
完成这些设置后,半透明排序问题就能彻底解决,材质会正确显示,后面的其他半透明材质也不会受到影响。
该方法的基本原理是通过 PixelDepth 和CustomDepth 的比较算法,再配合不透明蒙版和自定义深度设置,这样不仅能保证前后层级的正确显示,还能避免复杂场景中半透明材质互相干扰。
材质文件链接:
https://pan.baidu.com/s/1ny-N5M_FFlG4vmXadU07GA?pwd=4tdc 提取码: 4tdc
|