英文:
Line renderer it's overlapping with itself [URP][Unity 2020.3.24f1]
问题
我的目标是将贝塞尔曲线和LineRenderer曲线结合起来,以展示气流。出现的问题是:LineRenderer在自身重叠,但不在其他部分重叠。我已尝试修改LineRenderer材质的ShaderGraph。我还查看了LineRenderer提供的选项,但未获得期望的结果。
LineRenderer如下所示:
使用的ShaderGraph如下:
我不知道问题是在ShaderGraph、LineRenderer还是URP设置中。有什么线索可以解决这个问题吗?
URP版本:10.7.0
Unity版本:2020.3.24f1
英文:
My goal is to combine Bezier and LineRenderer curves to illustrate air flows. The problem that has come up is the following: The LineRenderer overlaps on itself, but not on the rest of LineRenderer. I have tried to modify the ShaderGraph of the material that the LineRenderer has. I have also consulted the options offered by LineRenderer but have not achieved the desired result.
The LineRenderer looks like this:
The ShaderGraph used is as follows:
I don't know if the problem is in the ShaderGraph, in the LineRenderer or in the URP settings. Any clue that could solve the problem?
URP Version: 10.7.0
Unity Version: 2020.3.24f1
答案1
得分: 0
根据您的截图,您遇到了材质透明的问题。LineRenderer 创建一个单独的网格。在渲染透明对象时,通常不会写入深度缓冲区。因此,在渲染组成LineRenderer的三角形时(这不一定是从前到后发生的),从您的角度看,背面的三角形可能会绘制在之前已经渲染过的三角形之上。
在您的情况下,鉴于箭头本身是不透明的,您可能只需使用带有Alpha切割的不透明材质。这应该可以正常渲染。
英文:
Judging from your screenshot, you're running into issues with your material being transparent. The Linerenderer creates a single mesh. When rendering transparent objects, depth is usually not written to the depth buffer. So when rendering the triangles making up your Linerenderer (which doesn't necessarily happen back to front), your triangles at the back from your point of view may be drawn over the triangles which have already been rendered before.
In your case, given that the arrow itself is opaque, you might simply want to use an opaque material with an alpha cutout. This should render fine.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论