Java 如何在OpenGL中减少渲染大型曲面数据的时间

Java 如何在OpenGL中减少渲染大型曲面数据的时间,java,android,performance,opengl-es-2.0,visualization,Java,Android,Performance,Opengl Es 2.0,Visualization,我目前正在从事一个项目,该项目使用OpenGL ES 2.0将大型油井和地下数据渲染到android平板电脑上 数据来自客户端(平板电脑)对服务器的restful调用。我需要呈现两种类型的数据。一个是一组顶点,我在其中连接所有顶点(良好渲染),另一个是次表面渲染,其中每个曲面都有与其关联的巨大三角形数据 我能够通过近似下一个点并构造要发送给客户的数据来减小井的大小。但这不能对曲面数据执行,因为每个三角形对于连接三角形并形成曲面都很重要 如果你们能提出一种方法来减少来自服务器的数据,或者减少有效渲

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

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

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


如果你们能提出一种方法来减少来自服务器的数据,或者减少有效渲染如此庞大数据所需的时间,我将不胜感激。

处理如此复杂网格的方式实际上取决于您的项目范围。不幸的是,根据提供的输入,我们没有什么可说的,活动本身也不是一项容易的任务

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

其思想是以非常低的LOD(因此要渲染的顶点数量要少得多)渲染“遥远”的网格,并在每次摄影机接近网格细节时以更高的分辨率替换网格

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

这不是一个简单的方法,但它在许多情况下都有效

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

在您的例子中,我们的想法是将web服务提供的网格作为网格的HD版本处理。然后(特别是当网格由不同对象组成时),应用三角形网格简化算法创建相同对象的LD网格。下面详细介绍了一个您可以继续操作的示例:

我希望能在某种程度上有所帮助

干杯 毛里齐奥