use*_*786 1 shader outline unity-game-engine
我想知道我是否能得到与编辑器中相同的大纲。 像这样
我尝试使用这个脚本https://github.com/michaelcurtiss/UnityOutlineFX
得到这个结果
我不确定您如何应用链接到的 Github 存储库中的脚本。看起来轮廓着色器仅应用于您发布的 3D 模型上的叶子材质,但我相信此轮廓效果旨在作为后处理或替换着色器运行。我认为当您应该将其附加到相机时,您正在附加脚本或对树叶的引用。
更新:我下载了存储库并更改了“UnityOutlineFX.cs”脚本以处理多种材质(问题是该脚本最初仅概述索引 0 中的材质)。修复是在RecreateCommandBuffer()函数中,我添加了以下代码(注意不同材料中的 for 循环):
// render selected objects into a mask buffer, with different colors for visible vs occluded ones
float id = 0f;
foreach (var collection in _objectRenderers)
{
id += 0.25f;
_commandBuffer.SetGlobalFloat("_ObjectId", id);
foreach (var render in collection)
{
for(var i=0; i<render.sharedMaterials.Length; i++) {
_commandBuffer.DrawRenderer(render, _outlineMaterial, i, 1);
_commandBuffer.DrawRenderer(render, _outlineMaterial, i, 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
最初的问题(仅概述了一种材质,图中的蓝色和橙色物体是一个网格的一部分)
具有三个子网格和两种不同材质的网格(橙色和蓝色网格)上的轮廓。
| 归档时间: |
|
| 查看次数: |
4704 次 |
| 最近记录: |