开发地球科学过程的图形模型

时间:2016-03-26 01:44:16

标签: unity3d graphics modeling unreal-engine4

我是编程新手,我对几种语言的经验很少,比如MATLAB,Python& C ++,具体而言,但我不能做任何特别的事情。

然而,我想尝试使用3D图形来建模一些地球科学过程,如山体侵蚀,断层,我甚至想到地球的形成。

我希望它看起来尽可能逼真,所以3D是必须的,我几乎想到了视频游戏的电影过场动画质量。

无论如何,我想知道是否有人能够让我深入了解哪种编程语言可以最好地完成这类项目。

我一直在关注虚幻引擎,Unity和World Machine的地形生成,但我从来没有做过这类任何事情,所以任何帮助都会受到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

语言并不重要......重要的是你的地球将如何存储和渲染。 3D引擎,框架和物理包通常很容易"如果你想要科学等级的数据,你可以使用但经常限制你不能做你想做的事情。看看现代游戏,看看它们都是如此糟糕。特别是基于Unity的那些。对游戏来说没问题但是对于物理模拟或照片般逼真的渲染,它在大多数情况下都无法使用。

  1. 您需要确定什么是更重要的视觉外观或科学相关性

    一些科学的物理数据不一定输出视觉上令人愉悦的内容。那么你想看到令人敬畏的地球或相关数据?这是第一件要做的事情,所以你可以继续......

  2. 决定如何存储/表示您的模型。

    这主要取决于您想要建模的内容以及您想要渲染的方式。例如:

    1. 基于分析/体素/体积的表示

      许多物理模拟需要(或更好/更简单/准确)体素空间和体积渲染,尤其是现场基础模拟,如流体热量流动,能量传递,照明效果,云,......这种表示需要<强大>大量记忆但通常模拟很简单,并提供最佳的视觉质量。对于常规形状,您还可以使用分析表示(方程式代替多边形或体素)。对于渲染通常使用(后退) - 射线跟踪技术。当前的HW不太适合这种渲染,所以忘记速度(除非你使用一些快捷方式)。

    2. BR边界表示

      现在标准3D可视化需要模型的 BR 边界表示。这意味着您的地球必须由覆盖您要渲染的任何图层的表面的多边形表示。这通常与您正在撰写的科学数据不一致除非您想将地球建模为动态构造板块或仅仅是地形表面效应。这适用于基于DEM(数字高程模型)的模拟(如雨水模拟和计算河流水位等)。要添加视觉细节,请使用凹凸贴图

    3. <强>混合

      这经常被用于地球的照片真实渲染。由于地球是坚实而巨大的,因此用BR多边形或解析方程表示。在本地查看区域的顶部由体素空间(或纹理阵列)表示,其中包含云,可伸缩分辨率的动态内容取决于视图缩放/距离)这样,您可以将BR渲染与(后)光线跟踪方法相结合在RT(实时)。例如,请参阅我的回答中的图片:

      这是混合表示的一个例子。体素空间不在内存中的地方以椭球数学方程的形式与指数场梯度相反(分析表示)。

    4. 此外,如果您想要高视觉质量,请参阅PBR (physically based rendering)

      如果您消化了上述所有文本并选择了您想要/需要的内容,那么您最终可以开始编码。我会选择基于 C ++ / GLSL 的应用程序,但这是因为我在这样的环境中完成了大部分工作。正如我之前提到的,语言并不重要,请使用您熟悉的或最喜欢的。图形API取决于您想要使用的平台和您需要的东西。例如,对于体素渲染,我将从 SW (仅 CPU )开始以小规模测试我的算法,然后在工作时移植到 GLSL ,因为在 gfx 卡上调试代码真是太难了,特别是如果你从未做过类似的事情。

      您可能想要谷歌的一些事情(用于想法或数据汇编):

      抱歉,因为您没有提供任何具体数据,所以不能更具体。