随笔 - 252  文章 - 0  评论 - 2269  阅读 - 542万

随笔分类 -  OpenGL

OpenGL_Qt学习笔记之_07(闪烁的星星)
摘要:这一小节我们要完成的任务是:将一张背景是黑色,中间是白亮色的星星图片和五颜六色的颜色进行色彩融合,变成一颗彩色的星星。并且让这些星星自转和公转,可以控制自转和公转的速度,另外也能控制所有的星星是否能够闪烁。 实验基础 色彩融合知识: 刚开始提到由黑白的星星变成彩色的星星用到的是色彩融合的知识,关于色彩融合,在上篇文章OpenGL_Qt学习笔记之_06(纹理滤波和光照)已经有了个简单的介绍,不过该知识点并没有想象中的那么简单。当我们有了一些简单的色彩混合知识后,可以通过下面这个函数来更一步加深我们的理解。 void glColor4f(GLfloat red,GLfloat gre... 阅读全文
posted @ 2012-08-26 10:26 tornadomeet 阅读(7947) 评论(0) 推荐(2) 编辑
OpenGL_Qt学习笔记之_06(纹理滤波、光照和色彩融合)
摘要:本次实验主要是学习下opengl中光照的使用方法,opengl中的光照分为环境光,漫射光,镜面光,反射光4种,这里主要是学习环境光和漫射光的设置,同时对比下opengl中支持的几种纹理滤波方式的效果,另外也可以加入色彩融合效果。 纹理滤波 在上篇文章OpenGL_Qt学习笔记之_05(纹理映射)中我们采用的是GL_LINEAR方式进行滤波的,opengl还支持GL_NEAREST, GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LI... 阅读全文
posted @ 2012-08-25 10:55 tornadomeet 阅读(12435) 评论(1) 推荐(0) 编辑
OpenGL_Qt学习笔记之_05(纹理映射)
摘要:纹理映射基础知识 什么叫纹理映射,一开始我也不明白,感觉这个词好专业(毕竟没有学过图形学),后面经过网上查找资料和这次实验稍微理解了点。纹理映射简单的讲,就是把一个纹理(其实说白了,纹理可以理解为一幅图像)映射到空间物体的表面上,因此纹理映射也叫贴图,这个表明不一定是矩形,比如说我可以是球面,或者是任意曲面。在上一篇文章OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)中,我们绘制的空间体的表面都是一些光滑的颜色,如果要在其表面采用那种方法绘制图像的话,则必须利用微分的思想,一个一个的绘制小图像,然后拼接起来,可想而知,这个过程是多么的复杂,opengl的纹理映射就可以很好的... 阅读全文
posted @ 2012-08-24 20:10 tornadomeet 阅读(14022) 评论(4) 推荐(2) 编辑
OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)
摘要:绘制四棱锥 四棱锥由5个面构成一个封闭的立体图,其中4个共顶点的侧面是三角形,底面是个四边形。如果我们要绘制一个3D的四棱锥只需要绘制这5个面即可,绘制的方法和前一篇文章OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)的相同。只不过这里的顶点坐标是3维的,所以图像深度那一维不一定为0。因此我们可以事先计算好四棱锥各个顶点的坐标,这对学过立体几何的人来说应该是小case了。然后绘制每个面就可以。 注意,在opengl中绘制每个面时,所有面给出的顶点的顺序都要按照逆时针或者顺时针(我这里采用的是逆时针),这样才能保证所绘制出来的图像时正确的。 现在我们在paintGL中开始绘制... 阅读全文
posted @ 2012-08-24 15:41 tornadomeet 阅读(19159) 评论(1) 推荐(0) 编辑
OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)
摘要:在这一节中主要简单介绍下怎样给平面几何着色,以及怎样让绘制出来的几何图形旋转起来。在上一节OpenGL_Qt学习笔记之_02(绘制简单平面几何图形) 中已经介绍了如何利用opengl画一些简单的图像,那么这一节就在上面的基础上给它着色,且让他旋转。 实验基础 首先来看着色,其实着色在上篇文章中已经用过,使用的是函数glColor3f()。一旦我们使用这个函数着色后且不更改颜色,则后面所绘的图形都是这个颜色了。我们给多边形着色时,表面上看都是给它的顶点着色,其实因为我们在initializeGL()函数中已经设置过glShapeModel(GL_SMOOTH),即颜色阴影是平滑模式... 阅读全文
posted @ 2012-08-23 21:47 tornadomeet 阅读(11249) 评论(0) 推荐(1) 编辑
OpenGL_Qt学习笔记之_02(绘制简单平面几何图形)
摘要:本文来讲讲怎样使用opengl来画平面几何图形,这一节本来是很简单的,因为某些问题都弄大半天了。当然,这还是按照NeHe的教程来的学习的。这次实现的功能是在窗口中画一个三角形,一个矩形,一个圆形。首先来简单的看一下opengl中的基本坐标规则,如下图所示: 假设左下角那个点是人的眼睛观察的位置,则向左为x正方向,向上为y的正方向(这点与opencv中不同),向里为z的正方向。下面来看看怎么绘制平面几何图形。在设置好需要画的几何图形的属性后,比如颜色信息,就以glBegin()开始,以glEnd()结束,glBegin()中的参数为所画几何图形的类型,比如说GL_ TRIANGLES代表三角形. 阅读全文
posted @ 2012-08-23 15:56 tornadomeet 阅读(21869) 评论(3) 推荐(4) 编辑
OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
摘要:很早就想学opengl的,一直没时间,今天心血来潮初步了解了下opengl。Opengl是对2D和3D图形支持很好,有非常多的优化函数,因为opengl的主要目标是图形功能函数上,所以它对图形界面的支持并不完善。当然了,作为一个跨平台的开源库,这是能理解的,因为每个平台开发界面用的工具不同,如果它只支持其一,那么私心也太重了,还不如节省精力放在核心的代码上。Qt的UI函数很多,它的Opengl封装很好,将opengl的函数和Qt的界面结合了起来,这主要是通过Qt中QGLWidget这个类来实现。所以一般我们开发opengl,且要用到Qt的界面时,这些类都可以从QGLWidget继承过来。本次试 阅读全文
posted @ 2012-08-22 22:30 tornadomeet 阅读(47502) 评论(16) 推荐(2) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

阿萨德发斯蒂芬
点击右上角即可分享
微信分享提示