【发布时间】:2018-04-24 21:19:49
【问题描述】:
我开始着手我的毕业设计,它是关于 CFD 和搜索算法的。我的目标是随机创建 3d 模型,并使用我自己的 CFD 程序中的数据,使用搜索算法自动优化它们以创建优化的汽车模型。当我和我的教授谈论我的项目时,他告诉我使用 C++。我将使用 c++ 编写 CFD 程序,因此我需要有关如何执行此操作的指南。我对一个将使用其他 3d 引擎的 c++ 程序有想法(例如创建一个模型并显示它以及它的统一流畅的运动),但我不知道如何去做。
问题
如何仅使用代码创建 3d 模型。(就像给它一样 坐标,它将创建模型)
如何使用 C++ 显示它。当我运行我的程序时,我想看看 3d 模型和流体的运动
任何想法/建议都会很棒。
【问题讨论】:
-
这是一个非常先进的话题。如果您尝试仅从纯 C++ 创建模型,那将是一项艰巨的任务。您可以使用 DirectX、OpenGL、Vulcan 等 API 来简化该过程,但这仍然是一个令人生畏的过程。使用 3D 模型,您将拥有某种原始格式的所有顶点,例如可以为您的模型创建网格的三角形条带。这仍然是不够的信息,因为您可能需要纹理坐标并且必须适当地映射它们。然后是照明的法线。 Unity 是一个好的开始,我建议阅读他们的文档。
-
等等,你不懂C++?编写任何像样的源代码通常需要大约 10 年的时间和几个 C++ 项目的经验。如果这是您的第一个 C++ 项目,那么它很可能只适用于
rm -rf <project_dir>。由于 CFD 是一个足够复杂的主题,如果您精通背后的数学,也许您应该与一些优秀的 C++ 程序员合作。但是当您询问 3D 模型生成时,看起来您甚至对数学知识都没有那么深入,所以......让我想知道,您想在这个项目上花费多少年,5+ 是有道理的。跨度> -
我建议您在互联网上搜索 3D 库。我建议您尝试绘制一个线框立方体作为您的第一个或第二个项目。专注于让所有工具正常工作。一旦工具正常工作,项目的其余部分就会变得更容易。
-
用 C++ 编写 CFD 代码不需要 10 年的编程经验。如果他们这样做了,没有人会毕业。但是您有一些主要的在线开源 CFD 软件,例如 OpenFOAM。您还拥有主要的开源 2D 和 3D 网格/网格生成软件。关键是,只要您不研究尚未编码的特定方法,您就应该主要依赖已经存在、开发和完善的东西。 CFD 比编码问题更多,使用他人的优秀作品可以让您有更多时间专注于其他 100 个问题。
标签: c++ genetic-algorithm fluid-dynamics