通用 3D 纹理加载方法

Posted

技术标签:

【中文标题】通用 3D 纹理加载方法【英文标题】:Generic 3D texture loading method 【发布时间】:2013-08-24 10:38:43 【问题描述】:

有没有使用 C# 和 XNA 来创建一个可以调用的方法并让它加载一个 3D 模型并显示它? (换句话说,一个通用的 3D Tmodel 加载方法和一个通用的 3D 模型显示方法)。而不是为每个 3D 模型使用长代码?例如,不是所有长代码都有一个带有加载代码的方法,该方法需要两个参数(3DModelName,fileLocation),然后有一个包含所有 3D 绘图代码的方法,它需要两个参数(3DModelName,位置)。这可能吗?提前致谢。

【问题讨论】:

是的,抱歉,我将其更改为模型。 3D 模型 【参考方案1】:

不确定我是否完全理解您的要求,但以下是非常标准的 Xna,它尽可能简短和简单。

文件位置在 Xna 中实际上是无关紧要的。您只需将文件(fbx 或 x)添加到解决方案资源管理器中的内容项目,您无需关心代码中的文件位置。

//in the fields section of some class
Model myModel;

//in an initialization or loadContent method of the same class
myModel = LoadMyModel(name, Content);

//load & draw methods that can be called any time as long as they are in scope
Model LoadMyModel(string name, ContentManager content)

  return content.Load<Model>(name);


void DrawModel(Model myModel, Matrix worldTransform, Matrix view, Matrix projection)

   myModel.Draw(worldTransform, view, projection);

【讨论】:

以上是关于通用 3D 纹理加载方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenGL 进行纹理映射后的奇怪结果

在通用 iOS 应用程序中打包多个分辨率

ARKit学习之SCNGeometrySource加顶点法线纹理及索引时贴图不正确

游戏开发框架自制Unity通用游戏框架UnityXFramework,详细教程(Unity3D技能树 | tolua | 框架 | 热更新)

游戏开发框架自制Unity通用游戏框架UnityXFramework,详细教程(Unity3D技能树 | tolua | 框架 | 热更新)

通用三角形网格的简单纹理映射