2

我正在组装一个小型 3D 引擎作为学习练习。我打算使用 XNA 游戏工作室让我开始。

DirectX SDK 似乎使用的是新.sdkmesh格式而不是旧格式,.x但我找不到有关该格式的太多信息,并且sdkmesh.h包含以下内容:

//--------------------------------------------------------------------------------------
// File: SDKMesh.h
//
// Disclaimer:  
//   The SDK Mesh format (.sdkmesh) is not a recommended file format for shipping titles.  
//   It was designed to meet the specific needs of the SDK samples.  Any real-world 
//   applications should avoid this file format in favor of a destination format that 
//   meets the specific needs of the application.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------

所以,问题是:我应该使用什么格式?我唯一的选择是使用尚未准备好生产的格式还是从头开始编写我自己的格式?

其他小型开发商如何解决这个问题?我可能遗漏了一些东西,但我仍处于事实调查阶段。

4

1 回答 1

1

您引用的免责声明几乎说明了一切,它基本上说这不是商业级组件。但是,出于您的需要,我不明白为什么使用它会有问题;它具有一些非常全面的功能,并提供用于简化快速演示等的模型。您不需要生产就绪格式来学习。

我认为公平地说,您不会在 SDK 本身之外找到很多关于 .sdkmesh 的信息。.x 更受欢迎(它也直接或通过许多 3D 编辑器中的插件得到支持)。

小型开发人员可能仍会寻求创建自己的库,或向他人扩展/学习。

当然,开发自己的模型导入器本身就是一种很好的学习体验,这取决于您是否认为自己会从中获得想要的体验(如果您对着色器比场景优化/合成更感兴趣,那么可能不会)。

创建自己的 .obj 导入器是一个很好的学习起点,不过它只适用于静态模型;网上有很多参考资料。

我发现这些人在与 COLLADA(在这些圈子中很受欢迎)合作方面所做的努力是一项很好的工作:http ://thecansin.com/category/collada/

一般来说,如果你想处理这个问题,那么对于后期的优化,这个参考是必须阅读的:http: //home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html

希望有帮助。

于 2012-05-04T13:27:12.833 回答