
OpenGL
文章平均质量分 81
traceorigin
这个作者很懒,什么都没留下…
展开
-
VBO
1、什么是VBO?顶点缓冲区对象VBO(Vertex Buffer Object), 将顶点数组存储在高性能的显存中,提升的绘制的速度。2、why?顶点数组可以减少函数调用、去除冗余的共享顶点;但是顶点数组存在自身的缺点,顶点数组是在客户端,这样数组中的数据每次被访问的时候都要传输到服务器端。另外,显示列表是服务器端的函数,它没有数据传输耗费的问题。但是,每当显示列表被编译原创 2013-06-11 23:42:02 · 2338 阅读 · 0 评论 -
PBO
PBO(Pixel Buffer Object),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(Direct Memory Access)的技术,无需CPU介入2、 高效并不在于传输更快,而在于与硬件相关的异步调用方式,调用之后CPU即返回执行其它操作(使用DMA方式的传输、由OpenGL直接控制)3、在单个PBO情况下并不能得到很好的效果,毕原创 2013-06-12 14:01:41 · 5800 阅读 · 0 评论 -
shadow map
Shadow mapping 的原理: 一个物体之所以会处在阴影当中,是由于在它和光源之间存在着遮蔽物,或者说遮蔽物离光源的距离比物体要近,这就是 shadow mapping 算法的基本原理.Pass1: 以光源为视点,或者说在光源坐标系下面对整个场景进行渲染,目的是要得到一副所有物体相对于光源的 depth map (也就是我们所说的shadow map),也就是这副图像中每个象素的值原创 2013-07-03 21:08:25 · 2271 阅读 · 0 评论 -
FBO
简介:OpenGL默认的帧缓存包括:颜色缓存、深度缓存、模板缓存、累积缓存。OpenGL扩展帧缓存(即FBO)包括:颜色缓存、深度缓存、模板缓存。用途:1、渲染到纹理:将纹理图像关联到帧缓存,opengl执行渲染到纹理2、离线渲染:将renderbuffer关联到帧缓存,opengl执行离线渲染下面这幅图显示了帧缓存对象、纹理对象和渲染缓存对象之间的联系。多多个纹理原创 2013-06-12 15:59:53 · 4140 阅读 · 0 评论 -
cuda与opengl互操作之PBO
PBO(像素缓冲区对象)也可以映射到CUDA地址空间,CUDA的kernel函数可以讲计算结果直接写到PBO中,然后将 PBO的内容复制到texture,进行绘制。具体使用步骤:1、创建PBO // Generate a buffer ID called a PBO (Pixel Buffer Object) glGenBuffers(1,pbo); // Make this原创 2013-07-01 10:35:50 · 6845 阅读 · 0 评论 -
CUDA使用纹理内存
纹理内存位于设备端,global memory也位于设备端,但是texture memory的访问速度较global memory要快。因为纹理内存有cache, 只有当cache没有命中的时候才会去访问device memory,否则访问texture cache具有很小的延迟。另外,texture cache的2D定位已经进行了优化,对于同一线程束的线程访问位置临近的texture m原创 2013-07-01 14:17:37 · 10951 阅读 · 7 评论 -
cuda与opengl互操作之VBO
opengl的缓冲区可以映射到CUDA的地址空间,当做global memory被访问。这样做可以使计算得到的数据直接可视化,提升速度。因为数据存储在设备端,没有设备端到主机端的传输耗费,不论计算还是可是化都相当的快。具体使用步骤:1、创建VBOglGenBuffers(1, vbo);glBindBuffer(GL_ARRAY_BUFFER, *vbo);glBuff原创 2013-07-01 09:53:31 · 6732 阅读 · 1 评论 -
shadow projection
1、概述shadow projection,又可成为planar shadow, 这是一种非常简单的绘制阴影的方法。主要应用的应用场景:物体在平面投射阴影。主要思想:把阴影看作是物体在平面上的投影(projection),然后将该projection绘制出来即可。2、具体方法具体实现:给定光源的位置L,物体上的任意一点V, 平面s的法向量N. 求V在平面s上的投影点原创 2013-07-02 09:52:02 · 2477 阅读 · 0 评论 -
opengl shader 使用札记
一、shader的使用步骤创建shader1、创建一个shader对象GLuint glCreateShader(GLenum shaderType); 2、将shader源代码传入前面创建的shader对象void glShaderSource(GLuint shader, int numOfStrings, const char **strings, int *l原创 2013-07-03 20:37:54 · 10899 阅读 · 0 评论