有时直接创建OpenGL形式不适合,或者干脆不同意然后创建一个表单,正如我现在这个项目,创建窗体不显示,它仅限于主框架.而我只是ActiveX里做一些相关工作,那仅仅能用到OpenGL的离屏渲染技术了~即不直接绘制到窗体上,而是绘制到一张位图上.然后再次调用这张位图实现兴许的工作. 以下就总结怎么使用所谓的"离屏渲染". const int WIDTH = 500; const int HEIGHT = 500; // Create a memory DC compatible wit…
最近写论文需要用到离屏渲染(主要是因为模型太大普通窗口绘制根本做不了),于是翻阅了红宝书查了下相关api和用法.中文版的红宝书可读性有点差,很多地方翻译地晦涩,但好歹读起来比较快,主要相关章节为第8章和第10章(可以连带把第9章读完以后写GLSL会顺利成章).貌似superbible可读性更强,但红宝书讲得也差不多了就没再继续看. 由于红宝书过于学术,想动手还是最好查查网上的资料,于是把一些还可以的资料列一下. 关于FBO: OpenGL中的FBO对象(含源码) OpenGL的帧缓冲对象和浮点纹…
Android进阶(十九)AndroidAPP开发问题汇总(三) Java解析XML的几种方式: http://inotgaoshou.iteye.com/blog/1012188 从线程返回数据的两种方法: http://www.blogjava.net/nokiaguy/archive/2009/03/19/260745.html 一般来说获取服务端数据流程是这样的: 1,跟服务端开发人员确定服务端接口使用的协议,是http请求还是webservice.根据协议不同你要在手机端使用不同的方式…
openGL初学函数解释汇总 1.GLUT工具包提供的函数 //GLUT工具包所提供的函数 glutInit(&argc, argv);//对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次. glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);//初始化显示模式,(颜色使用RGB,单缓冲GLUT_SINGLE\GLUT_DOUBLE双缓冲) glutSwapBuffers();//交换缓冲区 glutInitWindowPosition(,…
具体过程参考的是这篇BLOG: http://wiki.woodpecker.org.cn/moin/lilin/swig-glBmpContext 这一片BLOG的代码有个 BOOL SaveBmp(HBITMAP hBitmap, string FileName) 的函数,功能为保存成BMP格式的图片,我的代码中也就省去了这部分,用opencv来处理,这样使得熟悉opencv的人也能比较好了解吧,毕竟Windows的API一些结构体确实看起来比较生涩难懂. #include <windows…
通常情况下,我们使用openGL将渲染好的图片绘制到屏幕上,但有时候我们不想显示处理结果,这时候就需要使用离屏渲染了. 正常情况下,我们将屏幕,也就是一个CAEAGLLayer对象作为渲染目标,离屏渲染就是重定位渲染目标,将内存开辟的一块空间作为渲染目标,然后再从内存中获取图片. 在离屏渲染过程中需要使用到FBO,不熟悉的朋友可以先查阅FBO相关资料 http://blog.csdn.net/dreamcs/article/details/7691690 下面让我们来一起看看如何进行离屏渲染:…
通常在Android上使用OpenGL ES,都是希望把渲染后的结果显示在屏幕上,例如图片处理.模型显示等.这种情况下,只需要使用Android API中提供的GLSurfaceView类和Renderer类,在这两个类提供的初始化.回调函数中设置/编写相应的代码即可.不过,如果不希望把渲染结果显示在屏幕上,也就是所说的离屏渲染(offscreen render),这两个类就帮不上忙了.在此介绍一下如何在Android系统上做OpenGL ES 的离屏渲染. 1.基础知识 要想使用OpenGL…
离屏渲染学习笔记 一.概念理解 OpenGL中,GPU屏幕渲染有以下两种方式: On-Screen Rendering 意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行. Off-Screen Rendering 意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作. 二.离屏渲染的是是非非 相比于当前屏幕渲染,离屏渲染的代价是很高的,主要体现在两个方面: 创建新缓冲区 要想进行离屏渲染,首先要创建一个新的缓冲区. 上下文切换 离屏渲染的整个过程,…
重开一个环境(内存.资源.上下文)来完成(部分)图片的绘制 指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作 意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作. 红色代表GPU需要做额外的工作来渲染View,绿色代表GPU无需做额外的工作来处理bitmap. UIView和CALayer关系 UIView继承自UIResponder,可以处理系统传递过来的事件,如:UIApplication.UIViewController.UIView,以及所有从UIVi…
地址: http://wiki.woodpecker.org.cn/moin/lilin/swig-glBmpContext 呵呵,有了第一次的经验,我们就要开始我们的GL离屏渲染的绑定了. 关 于OpenGL的离屏渲染,前面已经有一些涉及了.再说一下吧,OpenGL有两种渲染方式:一种是通过操作系统打开窗口进行渲染,然后可以直接在屏幕上 显示,这种渲染方式叫做屏幕渲染.一种通过在内存中一块位图区域内渲染,这种渲染方式在没有通过SwapBuffer方式前不可以在屏幕上显示,所以这种 方法叫离屏渲…