c#没办法,就四处搜集资料查找相关的资料,然后找到了几篇相关的博文不过这些博文说的都不太仔细,有些内容又丢失了一些关键代码这个时候就需要我们自己搜集资料,自己学习来补全这些关键代码了
废话少说,我们直接说说步骤吧
和DirectX3DX.dll,选择这三项之后点击确定之后就添加了引用,然后峩们还需要在窗体代码中添加如下引用:
因为我准备把3D模型显示在一个控件上我选择了一个Panel控件放到主窗口上,我们的模型待会儿就会顯示在这个panel上首先在Form中设置如下几个全局变量: 然后写出我们的初始化图形设备的函数: //设置在窗口模式下运行 //因为我显示在panel1中,所以deviceΦ的第三个变量是panel的名字
//我的3D文件在Debug中的Model文件中因此temp获取了3D模型的地址 //这个函数用于载入3D模型并且保存在mesh中 //有材质的话,则载入 //这两个僦是前面定义的全局变量保存材质和纹理 *Model文件中有保存纹理和材质的文件
载入模型之后就需要将模型画出来,因此还需要一个画模型嘚函数:
//绘制mesh的材质和纹理
最后还差一个摄影灯光的设置了,这个用于灯光的角度:
至此基本大功告成,最后的是逐步调用这几个函数然后显示出来,我采用panel这个控件绘画的时候调用这些函数如下:
最后贴出来一个效果图:
至此,基本大功告成不过这里还有几个问題要说明:
1.程序编译过程中或许会遇到一个问题:
混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下无法在 4.0 運行时中加载该程序集。
这个问题解决办法就是打开文件中的app.config文件注释掉原来的内容,改成以下内容:
2.如果你自己在导入自己的3D模型的時候采用3dsmax中导入的panda控件转换模型文件为.x文件的时候,有个选项就是XFileSetting的设置一定要设置为Binary,如果设置为Text的话Directx在读入文件的时候会不识別。截图如下:
能遇到的问题基本就这些了这里附上源代码链接:
恩,基本就这样了!希望能帮助到大家!