Unity3D:线渲染器被下方对象着色器隐藏

blmhpbnm  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(203)

在所附的图像中,有一个半径为6.4的地球物体和一个半径为6.8的国际空间站轨道。相机是正交的,近/远设置为1/3000。在第一张图像中,轨道线渲染得很好。在第二张图片中,轨道线被地球隐藏了,尽管它在行星的上方。对于这条线,我使用了Unity LineRenderer。对于地球,它是“是具有2种材质的球体网格:- 第一个材质使用表面明暗器,称为“自定义/EarthGround”-第二个材质使用vert+片段明暗器,称为“EPIC/Projector 2”。第一个图像仅使用第一个明暗器,而第二个图像(其中隐藏了线)使用这两个明暗器。
你认为我遗漏了什么,可能是在第二个着色器中,导致地球隐藏了线?
附加下面摘录的子材质球属性以及图像。
着色器#1,名为“自定义/地球地面”(摘录):

SubShader 
           {
             Tags
             {
                 "Queue"="Geometry"
                 "IgnoreProjector"="False"
                 "RenderType"="Opaque"
             }
             Cull Back
             ZWrite On
             ZTest LEqual
             ColorMask RGBA
             Fog{
             }

着色器#2,名为“EPICProjector”(摘录):

Subshader { 
         Tags {"Queue"="Geometry"}
                 Tags { "RenderType" = "Opaque" }
         Pass {
              Name "PROJECTOR"
             Blend SrcAlpha OneMinusSrcAlpha

仅着色器#1-线未隐藏:

着色器#1 + #2 -线隐藏

7qhs6swi

7qhs6swi1#

最后修正了这个问题。我发现在材质检查器中有一个渲染队列字段会覆盖着色器中的内容。所以将渲染队列设置为“几何”确实修正了这个问题!

相关问题