通过离屏渲染技术, 是有可能优化的 思路如下: 利用离屏渲染技术创建一个比窗口大上比如说4倍的表面, 把图元一次性渲染到这个表面上,形成一个大图片。 然后对图纸的放大缩小以及平移操作,就变成了对这个超大图片的简单缩放和移动察看了 只有当图元的内容发生变化的时候才重新渲染这个大图片 当图纸放大超过大图片的精度的时候,重新生成更高精度的大图片的时候,需要再次渲染 就相当于你有了一个最详细的地图(超大),然后对这个超大的地图来缩放和移动察看 针对这个超大的地图,也可以作出lod来 这个方法适合图元的内容变化不频繁,因为这个超大图生成的速度必然是慢的 当然,你也可以再次优化,如果图元只是部分内容变化,你只重新渲染超大图的局部
[quote=引用 4 楼 happy__888 的回复:] 通过离屏渲染技术, 是有可能优化的 思路如下: 利用离屏渲染技术创建一个比窗口大上比如说4倍的表面, 把图元一次性渲染到这个表面上,形成一个大图片。 然后对图纸的放大缩小以及平移操作,就变成了对这个超大图片的简单缩放和移动察看了 只有当图元的内容发生变化的时候才重新渲染这个大图片 当图纸放大超过大图片的精度的时候,重新生成更高精度的大图片的时候,需要再次渲染 就相当于你有了一个最详细的地图(超大),然后对这个超大的地图来缩放和移动察看 针对这个超大的地图,也可以作出lod来 这个方法适合图元的内容变化不频繁,因为这个超大图生成的速度必然是慢的 当然,你也可以再次优化,如果图元只是部分内容变化,你只重新渲染超大图的局部
[quote=引用 1 楼 ri_aje 的回复:] >> 有没有解决绘制效率的问题? 得看你现在程序慢的原因,说说你怎么画的吧。 >> OpenGL中有没有牛叉的技术不用绘制就搞定的? 没有,opengl 是 api,不是神。 >> 另外OpenGL有移动视口调整屏幕显示内容的方法,是否会一样要对每个图元进行绘制一次到后台缓存啊? 这个由窗口子系统决定,它要求刷新,opengl 就会重绘所有图元,除非你自己有额外的逻辑避免这种行为。
>> 有没有解决绘制效率的问题? 得看你现在程序慢的原因,说说你怎么画的吧。 >> OpenGL中有没有牛叉的技术不用绘制就搞定的? 没有,opengl 是 api,不是神。 >> 另外OpenGL有移动视口调整屏幕显示内容的方法,是否会一样要对每个图元进行绘制一次到后台缓存啊? 这个由窗口子系统决定,它要求刷新,opengl 就会重绘所有图元,除非你自己有额外的逻辑避免这种行为。
4,447
社区成员
15,336
社区内容
加载中
试试用AI创作助手写篇文章吧