gpt4 book ai didi

opengl - gpu 上的随机体素地形(dc vs. cms)

转载 作者:行者123 更新时间:2023-12-02 01:29:58 25 4
gpt4 key购买 nike

我想在 gpu 上创建一个随机分形地形(使用计算着色器)。我已经开始实现行进立方体:Generating Complex Procedural Terrains Using the GPU ,而且效果非常好:marching cubes on the gpu .但是,行进立方体无法提取清晰的特征或使用自适应分辨率。

所以我找了一个先进的等值面提取算法,发现Dual Contouring of Hermite Data .所以我用 Java 实现了 dc 来测试这个算法,它看起来很棒:dc on the cpu . (网格中有一些洞,没有明显的特征,但我懒得实现/修复这个,因为它只是一个原型(prototype)。)

但我注意到一些负面的方面:

  • 依赖于细胞间。 (我不知道如何将它移植到 gpu:我发现的唯一资源是 Dual Contouring with OpenCL。)
  • 我不知道如何创建 block 系统,因为没有“清晰”的边界 /image/62dy6.png .

  • 于是我继续寻找更好的算法,发现 Cubical Marching Squares: Adaptive Feature Preserving Surface Extraction from Volume Data .这对我来说似乎是完美的算法:独立于小区间、自适应、清晰的特征、原始结构甚至流形。不幸的是,除了这个 Cubical Marching Squares Implementation 之外,没有关于如何实现该算法的资源。 .我想我了解算法的两个部分:为每个单元格创建一个网格:
  • 分割直到达到最大深度或没有必要这样做。
  • 将每个单元格分成 6 个面,提取它们的表面并将它们缝合在一起。

  • 但我不知道如何连接这两个部分(尤其是带有过渡面的部分,第 38 页)。

    那么有人知道如何将 dc 实现为着色器,如何实现 cms 或更好的算法(可能是双行进立方体,我认为它与 dc 有相同的问题,但我还没有测试过)?

    最佳答案

    正如您已经提到的 GPU,您不需要单元间依赖项......我相信人们已经在 DC 上提出了解决方法,但 CMS 应该是您需要的所有这些东西的最佳解决方案之一,即单元间-独立(根据定义),保留清晰的特征,创建流形几何,并支持自适应分辨率。

    就 CMS 的资源而言,我同意它们非常有限。

    原论文:http://graphics.csie.ntu.edu.tw/CMS/

    Matt Keeter 的这个项目有一个“C”CMS 实现(https://www.mattkeeter.com/projects/kokopelli/)
    https://github.com/mkeeter/kokopelli <-- 代码

    我使用 Matt Keeter 的实现作为我的 的引用。部分 'C++' 实现(你链接的论文),如果你没有找到它,这里是它的代码:
    https://bitbucket.org/GRassovsky/cubical-marching-squares

    但是请记住,它确实是部分的,也就是说它具有主要的算法工作(自适应和流形),但我还没有时间来实现锐化特征保留、2D 和 3D 消歧等。它是目前也是一个基本的 CPU 实现......我有很好的意图来实现所有这些东西并进行 GPU 实现,但现在没有时间。

    “但我不知道如何将这两个部分联系起来”——这只能说明我的论文写得多么糟糕,因为我试图解释我是如何做到这一点的:D(请注意,我不确定这到底是怎么回事是在原始论文中完成的......我们应该说那里有些事情不是很清楚,你必须发挥你的想象力:))

    关于opengl - gpu 上的随机体素地形(dc vs. cms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856184/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com