距离雾XNA 4.0

时间:2012-11-30 19:36:19

标签: xna xna-4.0

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

Scene

编译错误时是关于某些法线的。 我不知道他们的意思。我已经足够努力挖掘互联网了。 (我的第一个印象就是病了,在盒子的背面放了一个黑色的全景)。

错误如下: Error

'绿党'是VertexPositionColor [] [],用于构建框。

如何解决此错误?方法/方法是否正确?

欢迎任何帮助。 感谢。

2 个答案:

答案 0 :(得分:1)

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

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

此处您是自定义实施:VertexPositionNormalColor

答案 1 :(得分:0)

您需要在顶点类型中添加法线(vector3)。

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