1

我一直在从事一个有助于在笔记本电脑和/或台式机上创建虚拟现实体验的项目。我在 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 [][]。

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

欢迎任何帮助。谢谢。

4

2 回答 2

1

你的 Vertex 有 Position 和 Color 通道,但是没有法线......所以你必须提供 vertex 有它。

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

这是您的自定义实现:VertexPositionNormalColor

于 2012-11-30T20:10:45.477 回答
0

您需要将法线(vector3)添加到您的顶点类型。

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

于 2012-12-14T06:36:53.530 回答