OpenGL
文章平均质量分 97
周旭光
2013年6月毕业于福州大学,目前在北京的互联网地图厂商从事地图渲染引擎的研发工作,专注于GIS,专注于C++。如果有什么事可以通过邮箱zhouxuguang236126.com联系到我,也可以加我QQ672218231
展开
-
OpenGL+QT实现矢量和影像的叠加绘制
OpenGL+QT实现矢量和影像的绘制 又有好久没更新博客了,今天周末抽出一点时间写一些OpenGL用来绘制GIS中矢量和影像的文章。 一、QT下OpenGL框架的初始化OpenGL的介绍我在这里就没有必要介绍了,那OpenGL和QT的结合在这里就有必要先介绍一下,也就是怎么使用QT下的OpenGL框架。要想使用QT下的OpenGL框架,就必须要子类化QGLWidget,然后实现void init原创 2014-03-23 20:48:13 · 14549 阅读 · 4 评论 -
GLSL程序对象的C++封装
在OpenGL的shader编程中,最常用的可能就是程序对象了,GLSL的程序对象的创建、加载shader等步骤都是固定的,如果每次都写同样的代码,觉得十分浪费时间,所以现在就将我在Shader学习过程中自己封装的GLSLProgram类奉献出来供大家参考:头文件如下:/* * GLSLProgram.h * * Created * Author: zhouxuguang *原创 2016-11-20 15:53:09 · 5531 阅读 · 0 评论 -
OpenGL ES着色语言-UBO
Uniform Buffer Objects(简称UBO)是OpenGL3.1引入的。UBO是显卡上的一块缓冲区,即GPU buffer。它允许将数据从客户端程序传送到GLSL程序中。 使用UBO的最大好处是可以在各个shader之间共享数据。 下面还是以OpenGL 4.0 shading language cookbook中的例子说明。 在OpenGL的shader中,UBO原创 2016-11-30 13:22:35 · 4385 阅读 · 0 评论 -
GLSL实现图像处理
今天晚上没事将以前弄的OPENGL着色语言实现滤镜效果的实现和大家分享一下,滤镜主要包括图像的对比度调整、浮雕效果、彩色图片灰度化、卷积等操作。 这些操作其本质上是属于图像处理的东西,OpenGL实现图像处理主要是用到了GLSL着色语言。具体到着色器就是片段着色器。 说白了就是如何用OpenGL做通用GPU计算,OpenGL做通用计算的步骤主要如下:读取数据->顶点原创 2015-05-06 21:02:23 · 24557 阅读 · 4 评论 -
OpenGL中投影变换函数的实现
在某些情况下,我们需要自己实现透视投影和正射投影的函数,那么根据前一篇转载的博客,OpenGL投影矩阵的推导,我们很容易写出glFrustum和glOrtho函数的实现。glFrustum的函数实现如下:void MyFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdo原创 2015-04-12 17:44:51 · 4793 阅读 · 0 评论 -
OpenGL投影矩阵的推导
转载地址:http://www.songho.ca/opengl/gl_projectionmatrix.htmlOpenGL Projection MatrixRelated Topics: OpenGL TransformationOverviewPerspective ProjectionOrthographic ProjectionUpdates: The MathML version i转载 2015-04-12 17:13:55 · 5191 阅读 · 0 评论 -
OpenGL坐标变换
转载地址:http://www.songho.ca/opengl/gl_transform.htmlOpenGL TransformationRelated Topics: OpenGL Pipeline, OpenGL Projection Matrix, OpenGL Matrix Class Download: matrixModelView.zip, matrixProjection.zi转载 2015-04-12 17:12:50 · 6493 阅读 · 0 评论 -
OpenGL中gluPerspective函数和glFrustum函数的关系
关于这两个函数,大部分书和以及网上double很少有资料去介绍它。今天就将以前探索到的一些东西分享给大家。gluPerspective函数是对glFrustum函数的一种简单封装,那么gluPerspective的参数如何转化为glFrustum的参数呢? 我们知道gluPerspective函数创建的是一个上下以及左右对称的一个视景体。fovy是视角的大小,以度为单位;aspect是视景体原创 2015-04-11 21:40:21 · 4538 阅读 · 0 评论 -
OpenGL中使用Shader的基本步骤
在OpenGL中,创建和使用Shader的基本步骤如下:1、通过glCreateShader创建一个或多个着色器对象:2、使用glShaderSource加载着色器的源代码,和着色器对象关联;3、glCompileShader编译每个着色器对象4、使用glCreateProgram创建程序对象5、通过glAttachShader将所有着色器对象绑定到程序对象上;6、glLinkProgram链接程原创 2015-04-04 15:56:24 · 5285 阅读 · 0 评论 -
OpenGL实现通用GPU计算概述
可能比较早一点做GPU计算的开发人员会对OpenGL做通用GPU计算,随着GPU计算技术的兴起,越来越多的技术出现,比如OpenCL、CUDA、OpenAcc等,这些都是专门用来做并行计算的标准或者说接口。 OpenGL用来做通用GPU计算主要是利用纹理存储器在GPU中计算以及把结果取回内存,这大概是OpenGL做通用GPU计算最好的选择。 大概的流程主要就是先创建OpenGL的环境,原创 2015-03-31 19:18:37 · 15543 阅读 · 4 评论 -
OpenGL ES着色语言-光照效果之散射光
OpenGL光照模型,在固定管线中,主要是调用OpenGL函数实现,如果使用着色器,该怎么实现。本文的例子是移植OpenGL 4.0 Shading Language Cookbook中第二章的例子。代码已经移植到Android上。 散射光计算主要涉及到两个向量,第一个是顶点到光源的向量S,以及顶点处的法向量N。光照计算在眼睛坐标中进行。具体见下图所示:有这两个向量之后,还要考虑顶点处的漫反原创 2016-11-20 21:08:19 · 5606 阅读 · 0 评论