C++ 三维模型文件&;从中创建三角形网格

C++ 三维模型文件&;从中创建三角形网格,c++,model,3d,geometry,mesh,C++,Model,3d,Geometry,Mesh,我是新来的。我正在学习C++,所以我对事物没有太多的了解(我有很多编程经验,但我也知道如何使用计算机XD)。我决定开始开发一个游戏引擎。我知道这并不容易,但这也是我想做的原因之一——尝试/获得经验是我学习的最好方式 所以,我从渲染器开始,但我不知道我如何制作一个3D模型文件,它在名称中有3D模型,它可以被加载到C++引擎中的三角形网格中,我可以用Direct3D来使用它。我不想让你做任何事,除了给我一个如何开始的想法 如果您决定阅读此帮助,非常感谢。四处搜索。如果您想让您的引擎基于DirectX

我是新来的。我正在学习C++,所以我对事物没有太多的了解(我有很多编程经验,但我也知道如何使用计算机XD)。我决定开始开发一个游戏引擎。我知道这并不容易,但这也是我想做的原因之一——尝试/获得经验是我学习的最好方式

所以,我从渲染器开始,但我不知道我如何制作一个3D模型文件,它在名称中有3D模型,它可以被加载到C++引擎中的三角形网格中,我可以用Direct3D来使用它。我不想让你做任何事,除了给我一个如何开始的想法


如果您决定阅读此帮助,非常感谢。

四处搜索。如果您想让您的引擎基于DirectX,我相信SDK附带了一些代码示例来解释基本原理,比如加载网格


<>如果你只是学习C++,我建议你从一个简单的项目开始,比如用一个引擎来制造一个简单游戏,但是这取决于你。

< P>我想你需要一些类似的东西。你可以在网上找到免费的文件来玩。如果你想自己生成,我想你需要一些3D渲染软件。您还可以搜索如何解析它们并将其内容加载到您的程序中。

三维模型文件格式可能非常复杂,主要是在它们可以包含的各种类型(网格、基本体、曲面、材质、照明等)中。这也意味着你很难想出自己的格式。因此,这里实际上有两种选择:找到现成的库来处理模型的加载;或者,选择预先存在的格式并编写自己的代码来加载这些文件(并使用标准编辑器来创建它们)

使用现成库加载模型的主要问题通常是,这些库通常与特定渲染器紧密关联,并且在加载文件时生成的(可能的)数据结构中通常非常复杂。因此,只有当您准备采用此模型加载库所属或所绑定的渲染器时,这通常是一个更好的解决方案。有Irrlicht、Ogre3D、Coin3D等选项,它们在加载相当标准的三维模型文件格式时都具有合理的功能


如果要选择预先存在的文件格式并自己创建加载代码(从而绑定到自己的渲染器),那么应该仔细选择。3ds文件格式使用非常广泛,其内部结构美观且相当简单,其优点是您可以轻松跳过尚不支持的元素(这在以增量方式编写渲染代码时非常有用)。大多数其他格式具有类似的特性(向前和向后兼容性,以及跳过“不受支持”的元素的能力)。还有一些重要的开放标准格式,vrml和x3d,您可能想看看。此外,还有一些与一些开源3D编辑器相关联的更简单的格式,如。重要的是要有一个好的3D编辑器,可以以您可以加载的文件格式输出。这就是为什么你不应该创建自己的文件格式,因为你将有很多额外的工作要做,无论是为一些3D编辑器创建自定义“导出”脚本(或插件),还是创建自己的编辑器(一项艰巨的任务)。

这是一个伟大的问题,听起来非常正确,因为你与我3年前所处的位置完全相同。我研究了各种可以用来生成3D内容的应用程序。我不想花时间学习各种应用程序,因为我想编写我的游戏引擎。我找不到足够快的速度来学习如何让它值得我花时间(那是免费的),所以最后我把一些脚本放在一起创建3D模型(顶点阵列)。这些开发成一个GUI驱动的界面,该界面开发成我自己的功能齐全的3D建模工具。现在,3年过去了,我的游戏引擎被搁置了,而MeshCreator(签出)现在是我正在进行的项目

您需要一种加载顶点数组的方法。OBJ文件(波前)是基于文本的,非常容易阅读。MeshCreator的输出也是基于ASCII的,网站上有关于如何解释文件格式的详细信息

MeshCreator的文件输出设计用于轻松导入任何3D项目。您还可以查看.OBJ文件,因为大多数3D应用程序(包括我的)都支持它们。不过,OBJ文件可能会变得有点复杂


简而言之,您需要一个易于使用的工具。我花了3年的时间写了我自己的,所以我不会推荐它。试试MeshCreator,Milkshape3D,也许还有Google Shetchup。另外,有很多网站都有免版税的3D内容,你可以在项目中使用,还有很多是OBJ格式的。

我本来想从一个简单的游戏开始,但这对我来说并不有趣。RenderWare DFF/RWX模型怎么样,我可以用它作为我自己模型文件的基础。正如我上面已经问过的,使用RenderWare的DFF/RWX模型作为我自己的模型文件类型的基础怎么样?@user1807624三维模型有很多文件格式。正如我所说的,不要创建自己的(这样做没有意义),选择一个标准的、容易创建的(即,使用好的3D编辑器,或者可以在在线模型目录中找到),并且具有您想要的功能。许多编辑器还可以为您执行导入导出/转换工作,因此您真正需要的是能够加载一种格式。DFF/RWX是一种选择(我不知道有多好),但是考虑更多的标准格式,比如VRML、X3D、OBJ、3DS或混合。看看Blender3D导出的文件格式,我不知道哪种格式更好:3DS还是DFF(RWX)?(我没有考虑。obj因为某种原因我不喜欢它)。我想我要做的是赋予加载这两个的能力。@user1807624-ho