这是一个菜鸟问题,但我进行了广泛搜索,但找不到答案。
我有两个单独的网格需要在同一个窗口中绘制,都使用 DrawUserIndexedPrimitives。我正在使用两个具有自己的视图和投影矩阵的 BasicEffect 实例。
然而,当这些被渲染时,有一条线将两者连接在一起。XNA 认为它们是同一个网格的一部分。我是否需要为每个实例使用单独的 GraphicsDeviceManager 实例?好像不对啊。。
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
GraphicsDevice.VertexDeclaration = declaration;
effect.Begin();
effect.View = view;
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Begin();
GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList, positions1, 0, positions1.Length, index1, 0, index1.Length / 3);
pass.End();
}
effect.End();
effect2.Begin();
effect2.View = view2;
foreach (EffectPass pass in effect2.CurrentTechnique.Passes)
{
pass.Begin();
GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList, positions2, 0, positions2.Length, index2, 0, index2.Length / 3);
pass.End();
}
effect2.End();
base.Draw(gameTime);
}
位置 1 中的最后一个三角形连接到位置 2 中的第一个三角形。
谢谢你提供的所有帮助..