【发布时间】:2014-10-31 22:50:48
【问题描述】:
我正在开发一个 CAD 软件,该软件需要显示包含超过 10M 二维多边形的电路蓝图。每个多边形都很简单,其中 95% 只是矩形,其他的只有不到 10 个顶点。
为了展示整个设计,我需要创建一个巨大的顶点缓冲区,这肯定会破坏图形内存的限制。但是,由于在该比例下无法清楚地看到大多数多边形,我正在考虑使用一些预筛选算法来最小化要绘制的多边形。但是如果我这样做,那么很多多边形(每个都不会大于一个像素)会消失,那么最终的图像就会出错。
另一个想法是将多边形分成组,每个组将紧密连接(接触),然后为每个组构造一个大多边形。可以使用某种程度的细节算法来缩小点而不改变形状。不确定这些算法的速度有多快,以及我是否需要针对不同的规模级别进行预先计算。
有没有标准的方法来处理这个问题?我很确定它已经解决了很多次......
为了澄清,我们需要在 OpenGL 2.1 上进行这项工作。
【问题讨论】:
-
查看实例化渲染。
-
@ColonelThirtyTwo 我不能真正使用实例化渲染,因为大多数矩形的大小不同。我们坚持使用不支持它的 opengl 2.1。
-
您可以通过实例化渲染更改顶点着色器中矩形的大小。
-
@CyberSnoopy:你认为这会爆发什么“图形内存限制”?甚至假设确实如此:您不需要将所有内容都放入 VBO 并通过一次调用进行绘制。在减少数据量的情况下使用更多的绘图调用也将起作用。
-
帧之间的内容有变化吗?还是用户只能平移和缩放的静态内容?