快速业务通道

Commons Collections僥楼永芝?匯? - 園殻秘壇利

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
每一帧画 500 个任意大小的球,每一种平台得到的速度如下:

整个动画的估计时间 每帧的估计时间
GLCanvas 39285ms=39.285s 78.57ms=.07857s
GLJPanel 42325ms=42.325s 84.65ms=.08465s
GLPbuffer 50945ms=50.945s 101.89ms=.10189s
整个动画的估计时间 每帧的估计时间
GLCanvas 48795ms=48.795s 97.59ms=.09759s
GLJPanel 53161ms=53.161s 106.322ms=.106322s
GLPbuffer 82221ms=82.221s 164.442ms=.164442s
整个动画的估计时间 每帧的估计时间
GLCanvas 50813ms=50.813s 101.626ms=.101626s
GLJPanel 67704ms=67.704s 135.408ms=.135.408s
GLPbuffer 70703ms = 70.703s 141.406ms=.141406s

这些表显示了使用 GLPbuffer 消耗的时间并不长,在 Mac 平台上表现得比其他平台更显著。因此我们决定使用 pbuffer 来试着集成,利 用它的试验特性来碰碰运气。用于生成这些表的程序代码可从 示例代码 下载。其中还有一个交互式程序,用于以交互方式比较这两种技术。

集成GLPbuffer和Java Graphics2D(2)

时间:2011-07-20 Thaddeus Keenan Simo

Pbuffer

从 pbuffer 获得一个 BufferedImage 后,再与现有数学可视化框架集成就变得非常简单了。剩下的只是设置一个 OpenGL 渲染程序来绘制 到 pbuffer,从缓冲区获得缓冲图像,然后将 BufferedImage 复制到屏幕上。下面说明操作方法。

要创建 pbuffer,使用如下代码,在绘制图片(宽和高是窗口的宽和高)之前调用 OpenGL 渲染程序。

if (buf == null || bufw != width || bufh != height){ if (buf != null) { // clean the old buffer context.destroy(); //context is type GLContext buf.destroy(); // buf is type GLPbuffer } GLDawableFactory fac = GLDrawableFactory.getFactory(); GLCapabilities glCap = new GLCapabilities(); // Without line below, there is an error on Windows. glCap.setDoubleBuffered(false); //makes a new buffer buf = fac.createGLPbuffer(glCap, null, width, height, null); //save size for later use in getting image bufw = width; bufh = height; //required for drawing to the buffer context = buf.createContext(null); }

context 是一个渲染到任何 OpenGL 可绘制区域所需的抽象。JOGL 事件驱动绘制框架自动处理上下文,但它们需要在该框架外部绘制,即 本例中使用 pbuffer 的情况。手动控制上下文需要从可绘制对象获取上下文,并使它在渲染到时成为当前的。

我们发现还需要一个缓冲区清除检查,如下所示:

if (buf != null) { context.destroy(); buf.destroy(); }

我们发现,为避免创建太多 pbuffer 而使速度变慢和发生冲突,这一个检查很重要。destroy() 方法释放被上下文和 pbuffer 占用的资源 。这在 JOGL 中显然不会自动完成。

还应该在程序开头做一个检查,以确保能创建一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号