【问题标题】:Unity3D - Voxel Mesh - Wrong side rendering (C# code)Unity3D - 体素网格 - 错误的一面渲染(C# 代码)
【发布时间】:2015-07-30 03:08:49
【问题描述】:

我目前正在开发体素游戏(不是 Minecraft 的另一个副本),但渲染有问题。

Image 1+2(我没有足够的声誉来发布图片和超过 2 个链接)

我(用手)在我认为是边缘的地方画红线,因为我认为我可以看穿顶面​​。

在第二张图片上,水也有同样的问题(我认为是由同样的问题造成的)。

我使用了 AlexStv 的体素教程(由于声誉低,我无法发布链接)。我不能向他/她寻求帮助,因为我目前只使用了教程的一小部分代码。

我已经上传了我的代码here,但是请不要在其他任何地方使用它。 我尽可能简单地编写代码,所以我相信每个 Unity3D C# 程序员/编码员都可以阅读它。

我今天在水方面发现了这个问题(然后我从第一张图片中发现了问题)。

最后我不得不说我在互联网上的某个地方找到了着色器(我根据自己的使用对其进行了修改,但我不懂着色器的语言)。

PS:我没有尝试 Unity Answers,因为我用过一次,但他们没有帮助我(并将我的问题标记为重复)。

【问题讨论】:

  • 在此处发布代码的相关部分,而不是链接到它。
  • @JohanShogun 但我不知道要发布哪个代码。着色器?块的网格构建器脚本? Mesh Renderer的配置器?
  • @AbitDeveloper 你能贴一张显示线框的截图吗?我认为它与代码的网格生成器部分有关,但我目前无法下载。
  • @AndrewGriffin 我的块中有一个线框:link

标签: c# unity3d shader voxel


【解决方案1】:

您的问题似乎是由于对不透明的地形块使用透明着色器造成的。

当透明网格渲染在其他透明对象或自身之上时,这经常发生在 Unity(和大多数引擎)中。您需要做的是将水拆分到自己的网格渲染器中,并确保不透明的地形块使用不透明的着色器。这也将提高性能,因为透明着色器的成本可能很高。如果水不平坦,您可能仍会在水(或使用透明着色器的其他块)上遇到重叠问题。我建议您查看this article,这可能会有所帮助。但是,这是透明着色器的常见问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2019-11-12
    • 2016-04-30
    • 2016-06-15
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多