【问题标题】:Distance Fog XNA 4.0距离雾 XNA 4.0
【发布时间】:2012-11-30 19:36:19
【问题描述】:

我一直致力于帮助在笔记本电脑和/或台式机上创建虚拟现实体验的项目。我在 Visual Studio 2010 上使用 XNA 4.0。当前场景如下所示。我已经通过 kinect 连接了一个人头部的运动。因此,如果该人的头部相对于笔记本电脑向右移动,则图像中看到的场景会向左旋转,从而产生虚拟旅行的效果,或者就像透过窗户观看一样。

为了增强视觉吸引力,我想在背板上添加暗色。就像盒子看起来好像是一个隧道。

盒子是用三角条制成的。用于盒子平面的 BasicEffect 称为效果。

effect.VertexColorEnabled = true;
        effect.EnableDefaultLighting();
        effect.FogEnabled = true;
        effect.FogStart = 35.0f;
        effect.FogEnd = 100.0f;
        effect.FogColor = new Vector3(0.0f, 0.0f, 0.0f);
        effect.World = world;
        effect.View = cam.view;
        effect.Projection = cam.projection;

编译错误是关于一些法线的。 我不知道他们是什么意思。我已经足够努力地挖掘互联网了。 (我最初的印象是在盒子的背面放了一个黑色的泛光灯)。

错误附在下面:

'verts' 是用于构建盒子的 VertexPositionColor [][]。

我该如何解决这个错误?方法/方法是否正确?

欢迎任何帮助。 谢谢。

【问题讨论】:

    标签: xna xna-4.0


    【解决方案1】:

    您的顶点有位置和颜色通道,但没有法线...所以您必须提供顶点有它。

    如果您不需要颜色,您可以使用 VertexPostionNormalTexture,或者构建提供法线的自定义结构...

    这是一个自定义实现:VertexPositionNormalColor

    【讨论】:

      【解决方案2】:

      您需要为您的顶点类型添加一个法线 (vector3)。

      此外,如果您想要距离雾,则必须编写自己的着色器,因为 BasicEffect 仅实现深度雾(虽然看起来不太好但速度更快)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-09
        • 2011-09-13
        • 1970-01-01
        • 2011-03-29
        • 2013-08-10
        相关资源
        最近更新 更多