随笔分类 -  OpenGL

CUDA+OpenGL混合编程
摘要:CUDA+OpenGL混合编程示例:#include #include #include "GL\glew.h" #include "GL\glut.h" #include #include #include #def... 阅读全文
posted @ 2017-02-07 22:49 未雨愁眸 阅读(417) 评论(0) 推荐(0)
OpenGL中GLSL渲染茶壶光照完整程序
摘要:顶点着色器VertexShader.txt:uniform vec3 lightposition;//光源位置uniform vec3 eyeposition;//相机位置uniform vec4 ambient;//环境光颜色uniform vec4 lightco... 阅读全文
posted @ 2017-01-04 22:21 未雨愁眸 阅读(2473) 评论(0) 推荐(0)
OpenGl中使用着色器的基本步骤及GLSL渲染简单示例
摘要:OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是在GPU上。GLSL使用类型限定符而不是通过读取和写入操作来管理输入... 阅读全文
posted @ 2016-12-14 23:35 未雨愁眸 阅读(2400) 评论(0) 推荐(0)
OpenGL图形渲染管线、VBO、VAO、EBO概念及用例
摘要:图形渲染管线(Pipeline)图形渲染管线指的是对一些原始数据经过一系列的处理变换并最终把这些数据输出到屏幕上的整个过程。图形渲染管线的整个处理流程可以被划分为几个阶段,上一个阶段的输出数据作为下一个阶段的输入数据,是一个串行的,面向过程的执行过程。每一个阶段分别在... 阅读全文
posted @ 2016-12-10 13:07 未雨愁眸 阅读(741) 评论(0) 推荐(0)
OpenGL(二十四) VAO、VBO和着色器使用示例
摘要:1. 新建一个工程,新建一个头文件Shader.h,内容如下:#ifndef _SHADER_H_ #define _SHADER_H_#include #include #include #include class Shader{public: static G... 阅读全文
posted @ 2016-12-06 23:34 未雨愁眸 阅读(455) 评论(0) 推荐(0)
OpenGL(二十三) 各向异性纹理过滤
摘要:如果使用一般的纹理过滤,当观察方向跟模型表面不是相互垂直的的情况下,会出现纹理信息的丢失,表现为图像看上去比较模糊,如下图所示,远处场景的细节信息很差:针对这种情况,可以采用同向异性过滤的方式处理纹理,在过滤纹理的时候,考虑到观察角度不同,使纹理本身沿着模型表面倾斜的... 阅读全文
posted @ 2016-12-05 21:19 未雨愁眸 阅读(3081) 评论(0) 推荐(0)
OpenGL(二十二) gluBuild2DMipmaps 加载Mip纹理贴图
摘要:当纹理被用于渲染一个面积比它本身小很多的对象时,会由于纹理图像的降采样率不足而导致混叠现象,主要的表现特征是纹理图像的闪烁,出现纹理躁动。特别是在场景远近移动变换时,这种闪烁情况更为明显,严重可能会影响到模型的视觉质量。一个纹理躁动的示例如下:上图中可以看到,近处的场... 阅读全文
posted @ 2016-11-28 22:35 未雨愁眸 阅读(363) 评论(0) 推荐(0)
OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题
摘要:开启深度测试后OpenGL就不会再去绘制模型被遮挡的部分,这样实现的显示画面更为真实,但是由于深度缓冲区精度的限制,对于深度相差非常小的情况(例如在同一平面上进行两次绘制),OpenGL就不能正确判定两者的深度值,会导致深度测试的结果不可预测,显示出来的现象时交错闪烁... 阅读全文
posted @ 2016-11-25 21:53 未雨愁眸 阅读(640) 评论(0) 推荐(0)
OpenGL(二十) glutSpecialFunc响应键盘方向控制键
摘要:OpenGL的glut中使用glutMouseFunc函数注册鼠标响应事件,使用glutKeyboardFunc函数注册键盘响应事件,对键盘上特殊的4个方向按键的响应函数是glutSpecialFunc。方向键响应事件的实现函数的格式是void SpecialKey(... 阅读全文
posted @ 2016-11-25 21:50 未雨愁眸 阅读(610) 评论(0) 推荐(0)
OpenGL(十九) gluOrtho2D、glViewport、glutInitWindowSize区别与关系
摘要:gluOrtho2D定义剪裁面,通过正交投影,把景物(模型)按照1:1的比例绘制到一个剪裁面上,相当于对世界坐标窗口的一个截取。glViewport定义视口,即视见窗口,是从世界坐标系窗口到屏幕坐标系窗口的映射,决定了gluOrtho2D定义的剪裁main如何映射到屏... 阅读全文
posted @ 2016-11-25 21:30 未雨愁眸 阅读(710) 评论(0) 推荐(0)
OpenGL(十八) 顶点数组和抗锯齿(反走样)设置
摘要:顶点数组函数可以在一个数组里包含大量的与顶点相关的数据,并且可以减少函数的调用。使用顶点数组需要先启用顶点数组功能,使用glEnableClientState函数启用顶点数组,参数可以是GL_VERTEX_ARRAY(顶点数据)和GL_COLOR_ARRAY(颜色数组... 阅读全文
posted @ 2016-11-23 21:50 未雨愁眸 阅读(221) 评论(0) 推荐(0)
OpenGL(十七) 绘制折线图、柱状图、饼图
摘要:一、绘制折线图glutBitmapCharacter(GLUT_BITMAP_8_BY_13,label[j])函数可以绘制GLUT位图字符,第一个参数是GLUT中指定的特定字形集,第二个参数是要写入的单个字符;#include GLsizei windowWidt... 阅读全文
posted @ 2016-11-22 21:49 未雨愁眸 阅读(1383) 评论(0) 推荐(1)
OpenGL(十六) 鼠标、键盘交互响应事件
摘要:OpenGL中通过鼠标和键盘跟程序交互的实现需要实现注册鼠标和键盘响应事件,在一定条件下,该事件被触发,事件里的程序被执行,达到交互的目的。通过glutMouseFunc(&OnMouse)注册鼠标事件,OnMouse是鼠标事件的响应,函数格式是void OnMous... 阅读全文
posted @ 2016-11-18 22:57 未雨愁眸 阅读(2679) 评论(0) 推荐(0)
OpenGL(十五) OpenCV+OpenGL实现水面倒影
摘要:有两幅原始图片,一个是景物图像,一个是水面图像,尝试生成景物在水中的倒影:在OpenGL中,加载并显示这个景物图像可以把这个图像作为纹理载入即可,把图像直接选择180度的效果就相当于是在镜面中倒影的效果,剩下水纹的效果本来也想作为纹理叠加上去的,但是试了一下没有成功,... 阅读全文
posted @ 2016-11-18 00:03 未雨愁眸 阅读(861) 评论(0) 推荐(0)
OpenGL(十四) 模板测试
摘要:启用模板测试时,OpenGL会在内存中开辟一块空间作为模板缓冲区,里边保存了每个像素的“模板值”,模板测试的过程就是把每一个像素的模板值与一个设定的模板参考值进行比较,符合设定条件的通过测试,不符合条件的则不会绘制。glClearStencil函数用来指定模板值复位后... 阅读全文
posted @ 2016-11-17 22:33 未雨愁眸 阅读(259) 评论(0) 推荐(0)
OpenGL(十三) Alpha测试、剪裁测试
摘要:Alpha测试测试就是测试每一个像素的Alpha值是否满足某一个特定的条件,如果满足,则该像素会被绘制,如果不满足则不绘制,跟深度测试的机制是一样的,只不过深度测试考察的是像素的“深度”属性,Alpha测试考察的是像素的“Alpha”属性。利用Alpha测试的这一特性... 阅读全文
posted @ 2016-11-17 21:52 未雨愁眸 阅读(1627) 评论(0) 推荐(0)
OpenGL(十二) 纹理映射(贴图)
摘要:OpenGL绘制纹理的步骤:1. 开启纹理功能使用glEnable(GL_TEXTURE_2D)开启2D纹理功能,使用glDisable(GL_TEXTURE_2D)关闭纹理,默认情况下纹理是关闭的。2. 读取纹理图片到内存读取的时候注意以下3点: 1) BMP文件数... 阅读全文
posted @ 2016-11-16 07:15 未雨愁眸 阅读(2313) 评论(0) 推荐(0)
OpenGL(十一) BMP真彩文件的显示和复制操作
摘要:glut窗口除了可以绘制矢量图之外,还可以显示BMP文件,用函数glDrawPixels把内存块中的图像数据绘制到窗口上,glDrawPixels函数原型:glDrawPixels (GLsizei width, GLsizei height, GLenum form... 阅读全文
posted @ 2016-11-14 22:55 未雨愁眸 阅读(371) 评论(0) 推荐(0)
OpenGL(十) 截屏并保存BMP文件
摘要:BMP文件格式BMP图像又称为Bitmap(位图),是Windows系统中广泛采用的图像格式。BMP文件的数据按照从文件头开始的先后顺序分为四个部分:我们一般见到的图像以24位图像为主,即R、G、B三种颜色各用8个bit来表示,这样的图像称为真彩色,这种格式不需要调色... 阅读全文
posted @ 2016-11-14 21:33 未雨愁眸 阅读(722) 评论(1) 推荐(0)
OpenGL(九) 三维混色和深度缓存设置
摘要:颜色的混合在现实世界中非常常见,例如隔着有色玻璃观看物体,此时在观察者严重呈现出来物体的颜色就是玻璃的颜色和物体的颜色的混合。OpenGL在RGBA颜色模式下使用函数glenable(GL_BLEND)开启混色功能,使用glDisable(GL_BLEDN)关闭混色功... 阅读全文
posted @ 2016-11-12 21:10 未雨愁眸 阅读(427) 评论(0) 推荐(0)