- 博客(10)
- 收藏
- 关注
原创 OpenGL实现多层绘制(Layered Rendering)
多层绘制可以一次性渲染多张纹理,还能实现一些更为方便的功能,比如只调用一次shader就完成多个不同视口图像的绘制。实在是利器。要实现Layered Rendering,需要用到多层纹理Array Texture、帧缓存对象FBO、几何着色器Geometry Shader。
2016-01-26 21:47:03 13059
原创 用OpenGL的Image特性实现纹理数据的直接读写操作
纹理在glsl里是sampler,是只能读不能写的,以前要实现通用计算的数据输出,就得建一个FBO,绑定一张跟源纹理一样大的新纹理,把计算结果画上去。但是写入数据的位置却是不能任意指定的,只能是当前绘制的像素,在许多方面有其不便之处。Image的引入就使得事情变得比较简单了。Image绑定的纹理可以直接指定Image坐标写入,使得更为复杂的操作成为可能。
2016-01-06 16:26:33 10616 1
原创 用Quadro卡带Geforce卡实现非SLI多显卡多显示器协同绘制
核弹厂为了卖显卡真是无所不用其极。当然人家号称Geforce就是用来玩游戏的,Quadro才适合更高端的工作。可是如果我只是用来做三维场景绘制,你Quadro比起Geforce也没见得有很大优势,一块K4000顶得上三块GTX760的价格,直接吓得不省人事。幸好CAD&CG实验室有钱,让我借得一块K4000玩玩。之前就说过插了4块GTX却只有一块在跑的凄惨经历。多番打听之后基本确凿了一件事情:
2015-04-17 14:57:57 2855
原创 关于混合(Blend)和浮点纹理的一件小事
最近在写一个系统仿真程序,需要尽可能真实地模拟人眼因瞳孔而产生的聚焦效果。我不知道游戏里的景深效果一般是怎么做的,不过猜测应该是使用深度缓冲加模糊特效吧,但是我这里是不能这么用的。于是就打算在瞳孔上采样若干点,对应这些点产生若干相机,最后将图像叠加的做法。也就是glLookAt里前三个参数根据瞳孔采样位置改变;中间三个参数,也就是对焦点不变:gluLookAt(eye.x, eye.y,
2015-04-17 14:24:35 2176
原创 GLFW初步接触
计算机系的同学帮忙写的程序用的是freeglut。这是一个完全兼容于原来的glut库的开源库,不过我之前也没接触过glut,只知道是一个能用来创建窗口(后来大概知道还有些诸如“上下文”的专业名词)的库。但是这个库在实际使用当中有个非常严重的问题:没办法把窗口的边框和标题栏去掉。当时写的一个程序需要申请一个超过了32位系统允许的最大内存的空间,只能用64位程序实现,于是网上下了一个64位的源代码编译
2014-09-30 21:28:51 6110 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人