我正在尝试为我的"地形"。
创建网格叠加层目前我正在使用一个行列表来创建我目前拥有的网格线。
然而,为了阻止z深度战斗,我必须将depthBais设置为1.
正如您在第一张照片中看到的那样,网格线与相机之间的距离越远越不明显。然而,根据我的尝试,我的线条非常突出。
如何在更远的地方减少网格线的突出性?
期望的结果:
实际结果
答案 0 :(得分:0)
只是一个想法。您可能想要尝试的是简单地更改网格线的Alpha值,以减少它们从相机中拉出的距离。通过这样做,您应该看到正方形的颜色而不是线条。我不确定这是否会像你想要的那样,但你至少应该看到灰色和白色而不是红色。
如果您不知道,可以使用以下代码轻松修改具有浮动Alpha透明度的XNA颜色。
Color gridColor = Color.White * AlphaValue;
或者您可以使用基于浮动的color constructor。
public Color(float r, float g, float b, float a)
答案 1 :(得分:0)
我认为简单的方法是使用像素着色器,但如果您不想使用着色器,我认为该解决方案适用于屏幕空间。
如果您有一个线列表,则每条线在3D中都有两个顶点。
我会将线的每个顶点投影到屏幕空间(2D坐标),然后我有一条2D线。
现在是剪切线开始和结束在屏幕边缘或其边界内的时间。
然后根据高度计算alpha。
可能需要将线分为两部分,第一部分是可见的,第二部分是完全隐藏的。
然后使用2D相机设置绘制线条或将顶点取消投影到3D。