由OBJ提供的Xna绘图立方体
我从Blender生成了一个立方体到.obj文件。这样地: o Cube_Cube.001由OBJ提供的Xna绘图立方体,xna,draw,primitive,.obj,indexed,Xna,Draw,Primitive,.obj,Indexed,我从Blender生成了一个立方体到.obj文件。这样地: o Cube_Cube.001 v-1.000000-1.000000-1.000000 v1.000000-1.000000-1.000000 v1.000000-1.0000001.000000 v-1.000000-1.0000001.000000 v-1.0000001.000000-1.000000 v1.0000001.000000-1.000000 v1.0000001.0000001.000000 v-1.0000001
v-1.000000-1.000000-1.000000
v1.000000-1.000000-1.000000
v1.000000-1.0000001.000000
v-1.000000-1.0000001.000000
v-1.0000001.000000-1.000000
v1.0000001.000000-1.000000
v1.0000001.0000001.000000
v-1.0000001.0000001.000000
越南盾0.0000000.000000-1.000000
越南盾1.0000000.0000000.000000
越南盾0.0000000.0000001.000000
越南盾-1.0000000.0000000.000000
越南盾0.000000-1.0000000.000000
越南盾0.0000001.0000000.000000
使用MTL None
s关闭
f5//16//11//1
f 6//2 7//2 2//2
f7//38//33//3
f8//45//44//4
f 1//5 2//5 4//5
f8//67//65//6
f 6//12//11//1
f7//23//22//2
f8//34//33//3
f5//4 1//4//4
f 2//5 3//5 4//5
f 7//6//6 5//6
我加载顶点,因为它们是一行一行地存储在数组中。然后标记(我假设以“f”开头的行)存储到标记数组中,例如{4,5,0,6,7…}(由于数组中顶点的位置而减少1),然后创建数组VertexositionColor 但是当我画基本体的时候,立方体是扭曲变形的。 绘制方法:
GraphicsDevice.Clear(颜色:矢车菊蓝);
GraphicsDevice.DepthStencilState=DepthStencilState.Default;
效果:世界=世界;
效果。视图=视图;
效果。投影=投影;
effect.VertexColorEnabled=真;
光栅化状态rs=新光栅化状态();
rs.CullMode=CullMode.None;
rs.FillMode=FillMode.WireFrame;
GraphicsDevice.RasterizerState=rs;
foreach(EffectPass-in-effect.currentTechnology.passs)
{
pass.Apply();
GraphicsDevice.DrawUserIndexedPrimitions(PrimitiveType.TriangelList、model.VertExpositionColor、0、model.VertExpositionColor.Length、model.Indicies、0、model.Indicies.Length/3、model.VertexDeclarations);
}
输出
[解决方案]
检查导入算法生成的内容。我的索引因为糟糕的迭代而混乱。我的坏:)我建议使用FBX和标准XNA内容导入系统。这简化了流程,因此您甚至不必编写导入程序;您只需将XNA指向您的内容,就可以用非常少、非常简单的命令来绘制它。自己编写导入程序是一个很好的练习,但在XNA平台上没有必要这样做。我建议使用FBX和标准XNA内容导入系统。这简化了流程,因此您甚至不必编写导入程序;您只需将XNA指向您的内容,就可以用非常少、非常简单的命令来绘制它。自己编写一个导入程序是一个很好的练习,但在XNA平台上没有必要这样做