Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由OBJ提供的Xna绘图立方体_Xna_Draw_Primitive_.obj_Indexed - Fatal编程技术网

由OBJ提供的Xna绘图立方体

由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

我从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.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平台上没有必要这样做