gpt4 book ai didi

java - 如何减少在 OpenGL 中渲染大型表面数据的时间

转载 作者:行者123 更新时间:2023-11-30 02:58:27 24 4
gpt4 key购买 nike

我目前正在开展一个项目,该项目使用 OpenGL ES 2.0 将大型油井和地下数据渲染到 Android 平板电脑上。

数据来自客户端(平板电脑)对服务器的静态调用。我需要呈现两种类型的数据。一个是一组顶点,我只是连接所有顶点(Well 渲染),另一个是次表面渲染,其中每个表面都有与之关联的巨大三角形数据。

我能够通过近似下一个点并构建要发送给客户端的数据来减小井的大小。但这不能对表面数据完成,因为每个三角形对于连接三角形和形成表面都很重要。

如果你们建议一种方法来减少来自服务器的数据或减少有效呈现如此庞大的数据所花费的时间,我将不胜感激。

最佳答案

您处理此类复杂网格的方式实际上取决于您的项目范围。不幸的是,根据提供的输入,我们无话可说,而且 Activity 本身也不是一件容易的事。

通常当网格非常复杂时,加快渲染过程的典型方法是采用动态细节级别(编程术语 LOD)。

想法是用非常低的 LOD 渲染“远距离”网格(因此要渲染的顶点数量要少得多),并且每次相机接近网格的细节时都用更高分辨率替换网格。

这是一种在计算机游戏中非常常用的技术,例如,当需要渲染地形时。当玩家处于 map 的特定区域时,该区域的网格处于高细节级别,其他区域处于低细节级别。一旦玩家移动,不同的区域就会变成“高分辨率”(请允许我使用这个术语)。

这不是一种简单的方法,但它适用于许多情况。

在这篇 gamasutra 文章中,有大量关于此技术如何工作的信息:

http://www.gamasutra.com/view/feature/131596/realtime_dynamic_level_of_detail_.php?print=1

在您的情况下,我们的想法是采用网络服务提供的网格并将其作为网格的高清版本进行处理。然后(特别是如果网格由不同的对象组成),应用三角网格简化算法来创建相同对象的 LD 网格。此处详细描述了您可以继续进行的方式的示例:

http://herakles.zcu.cz/~skala/PUBL/PUBL_2002/2002_Mesh-Simplification-ICCS2002.pdf

我希望能以某种方式提供帮助。

干杯毛里齐奥

关于java - 如何减少在 OpenGL 中渲染大型表面数据的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924174/

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