Unity3D -体素网格-错误的一面渲染(c#代码)
本文关键字:代码 网格 错误 Unity3D | 更新日期: 2023-09-27 18:05:37
我目前正在制作体素游戏(不是Minecraft的另一个副本),但我有渲染问题。
图片1+2(我没有足够的信誉来发布图片和超过2个链接)
我在我认为是边缘的地方(用手)画了红线,因为我觉得我可以看穿上面的脸。
第二张图片是同样的问题与水(我认为它是由相同的问题)。
我使用AlexStv的体素教程(我不能发布链接,因为低声誉)。我不能问他/她的帮助,因为我目前只使用一小部分教程的代码。
我在这里上传了我的代码,但请不要在其他地方使用它。我尽可能简单地编写代码,所以我相信每个Unity3D c#程序员/编码员都能读懂。
我今天认识到水的这个问题(然后我从第一张图中找到了问题)。
最后我不得不说,我在互联网上的某个地方找到了着色器(我修改了它用于我的使用,但我不理解着色器的语言)。
PS:我没有尝试Unity答案,因为我使用过一次,他们没有帮助我(并标记我的问题为重复)。
看来你的问题是由使用透明着色器对你的不透明地形块造成的。
这在Unity(和大多数引擎)中经常发生,当透明网格渲染在其他透明对象或自身之上时。你需要做的是将水分离到它自己的网格渲染器,并确保非透明地形块使用非透明着色器。这也将提高性能,因为透明着色器可能是昂贵的。如果水不是平坦的,你可能仍然会遇到水(或其他使用透明着色器的块)上的重叠问题。我建议你看看这篇文章,它可能会有所帮助。然而,这是透明着色器的一个常见问题。