我一直致力于一个有助于在笔记本电脑和/或台式机上创建虚拟现实体验的项目。我在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;
编译错误时是关于某些法线的。 我不知道他们的意思。我已经足够努力挖掘互联网了。 (我的第一个印象就是病了,在盒子的背面放了一个黑色的全景)。
错误如下:
'绿党'是VertexPositionColor [] [],用于构建框。
如何解决此错误?方法/方法是否正确?
欢迎任何帮助。 感谢。
答案 0 :(得分:1)
你的顶点有位置和颜色通道,但没有法线......所以你必须提供顶点才有它。
如果您不需要颜色,可以使用VertexPostionNormalTexture,或者构建一个提供正常的自定义结构......
此处您是自定义实施:VertexPositionNormalColor
答案 1 :(得分:0)
您需要在顶点类型中添加法线(vector3)。
此外,如果您想要距离雾,则必须编写自己的着色器,因为BasicEffect仅实现深度雾(虽然看起来不那么好但是更快)