自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Qt OpenGL】Qt Creator中的3D绘图及动画教程

刚刚学习了Qt Creator,发现Qt提供了QtOpenGL模块,对OpenGL做了不错的封装,这使得我们可以很轻松地在Qt程序中使用OpenGL进行绘图渲染。虽然里面还是由不少专业的解释照搬原文的,但还是加入了大量自己的分析。而且Qt中写OpenGL框架上比VC简单太多了,有不少东西都封装优化好了,代码上还是由有很多区别的。当然,其中原教程没解释好的问题我都作了深入的解释,以及一些多余部分解释、代码都被我删掉简化了。

2015-08-01 11:15:03 30152 1

原创 【Qt OpenGL教程】29:Blitter函数

这次教程中,我们将介绍类似于DirectDraw的blit(其实blit函数在许多绘图库都有),我们将用代码自己来实现它。它的作用非常简单,就是把一块纹理的贴到另一块纹理上。想想,有了这个函数,我们就可以自由拼接纹理了,是不是很棒?

2015-08-16 19:19:40 2520

转载 【转】贝塞尔曲线和曲面

【转】贝塞尔曲线和曲面原文地址:http://my.oschina.net/sweetdark/blog/183721参数方程表现形式在中学的时候,我们都学习过直线的参数方程:y = kx + b;其中k表示斜率,b表示截距(即与y轴的交点坐标)。类似地,我们也可以用一个参数方程来表示一条曲线。1962年,法国工程师贝塞尔发明了贝塞尔曲线方程。关于贝塞尔曲线的详细介

2015-08-15 21:39:38 13818 2

原创 【Qt OpenGL教程】28:贝塞尔曲面

这次教程中,我们将介绍贝塞尔曲面,因此这是关于数学运算的一课(这导致很不好讲),来吧,相信你能搞定它的!这一课中,我们并不是要做一个完整的贝塞尔曲面库(库的话OpenGL已经完成了),而是一个展示概念的程序,来让你熟悉曲面是怎么计算实现的。

2015-08-15 18:18:07 10423 2

原创 【Qt OpenGL教程】27:阴影

这次教程中,我们将介绍阴影的绘制,这将是一个高级的主题,请确信你已经熟练地了基本OpenGL,并熟悉蒙板缓存(我们第26课的内容)。当然,我们会一一解释,这次教程中的重点和难度,我希望你能喜欢它!

2015-08-15 14:51:18 2809

转载 【转】阴影锥原理详解

【转】阴影锥原理详解原文地址:http://www.yakergong.net/blog/archives/23[原理]首先,讲一下阴影体原理我会尽我所能的讲得清楚一些,但是我仍然希望读者队模板缓存(stencil buffer),深度(depth)有基本的了解。我自己的学习过程也遇到很多困难,我所得到得经验就是要先把原理弄明白,而不是急于看别人写好的code。

2015-08-15 13:14:19 1772

原创 【Qt OpenGL教程】26:剪裁平面,蒙板缓存和反射

这次教程中,我们将学会如何创建镜面显示效果,它利用到剪裁平面,蒙板缓存等OpenGL中一些高级的技巧。在这课里,我们将创建真正的反射,基于物理的,相信你一定很期待!

2015-08-13 14:21:12 2006

原创 【Qt OpenGL教程】25:变形和从文件中加载3D物体

这次教程中,我们将学会如何从文件中加载3D模型,并且平滑的从一个模型变形为另一个模型。在这一课里,我们将介绍如何实现模型的变形过程,这将会是效果很棒的一课!

2015-08-12 20:29:43 5678 2

原创 【Qt OpenGL教程】24:扩展、剪裁和TGA图像文件的手动加载

这次教程中,我们将学会如何读取自己电脑显卡支持的OpenGL扩展,并在我们指定的剪裁区域把它显示出来,如何自己手动来加载TGA图像文件(作为补充内容,因为Qt有方法可以直接加载TGA图像文件)。这次教程有一些难度,但它会让你学会很多东西。

2015-08-11 12:09:04 2626

原创 【Qt OpenGL教程】23:球面映射

这次教程中,我们将学会如何把环境纹理包裹在我们的3D模型上,让它看起来像反射了周围的景象一样,我们把这种纹理映射的方式称为球体映射。球体映射是一种创建金属反射效果的方法,虽然它并不像真实世界里那么精确,但效果还是很不错的!

2015-08-10 12:39:28 4416 1

原创 【Qt OpenGL教程】21:线、反走样、正投影和简单的声音

这次教程中,我们将介绍线、反走样、正投影和简单的声音,这是第一个大教程,希望这一课的东西大家能够喜欢。这次教程中,我们最终会实现一个不错的2D游戏!

2015-08-09 18:16:41 3040

原创 【Qt OpenGL教程】20:蒙板

这次教程中,我们教介绍OpenGL的蒙板技术。到目前为止,我们已经学会如何使用alpha混合,把一个透明物体渲染到屏幕上了,但有时使用它看起来并不是那么的复合我们的心意。使用蒙板技术,将会使图像按照我们设定的蒙板位置精确地绘制。

2015-08-07 09:52:58 3653

原创 【C++语法】关于operator[]重载的注意点

一个类重载operator[]()函数时,要重载operator[]两次,一个是const函数,一个是非const函数。

2015-08-06 23:02:33 3398

原创 【Qt OpenGL教程】19:粒子系统

这次教程中,我们将创建一个简单的粒子系统,并用它来创建一种喷射效果。利用粒子系统,我们可以实现爆炸、喷泉、流星之类的效果,听起来是不是很棒呢!

2015-08-06 17:47:43 6269 2

原创 【Qt OpenGL教程】18:二次几何体

这次教程中,我将介绍二次几何体。利用二次几何体,我们可以很容易创建球、圆盘、圆柱和圆锥。

2015-08-06 12:58:53 3807

原创 【Qt OpenGL教程】17:2D图像文字

这次教程中,我们将学会如何使用四边形纹理贴图把文字显示在屏幕上。我们将把256个不同的文字从一个256×256的纹理图像中一个个提取出来,接着创建一个输出函数来创建任意我们希望的文字。

2015-08-05 21:14:22 7877 2

原创 【Qt OpenGL教程】16:看起来很酷的雾

这次教程中,我们将在第07课代码的基础上,为木箱的四周填上雾效果。我们将会学习三种不同的雾模式,以及怎么设置雾的颜色和雾的范围。虽然这次教程非常简单,但我们得到的雾效果确实很棒!希望大家能喜欢,当然你也可以把雾效果加到任何一个OpenGL程序中,我相信总能檫出美丽的火花!

2015-08-05 19:16:10 3229

原创 【Qt OpenGL教程】15:图形字体的纹理映射

这次教程中,我们将在第14课的基础上创建带有纹理的字体,它真的很简单。也许你想知道如何才能给字体赋予纹理贴图?我们可以使用自动纹理坐标生成器,它会自动为字体上的每一个多边形生成纹理坐标。

2015-08-05 16:44:04 3831

原创 【Qt OpenGL教程】14:轮廓字体

这次教程中,我将教大家绘制3D的轮廓字体,当然肯定不是贴图方式了,它们可像一般的3D模型一样进行旋转,放缩。

2015-08-05 14:12:08 4820

转载 【转】C++函数参数中的省略号用法分析

【转】C++函数参数中的省略号用法分析C++允许定义形参个数和类型不确定的函数。例如,C语言中的标准函数printf便使用这种机制。在声明不确定形参的函数时,形参部分可以使用省略号“…”代替。“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数。例如:void ConnectData(int i,...)在上面的代码中,编译器只检查第一个参数

2015-08-05 09:51:05 822

原创 【Qt OpenGL教程】13:位图字体

这次教程中,我们将创建一些基于2D图像的字体,它们可以缩放平移,但不能旋转,并且总是面向前方,但作为基本的显示来说,我想已经足够了。

2015-08-04 21:18:01 6263 5

原创 【Qt OpenGL教程】12:显示列表

想知道如何加速我们的OpenGL程序么?这次教程中,我将告诉你如何使用OpenGL的显示列表,它通过预编译OpenGL命令来加速我们的程序,并可以为我们省去很多重复的代码,听起来是不是很棒呢!

2015-08-04 16:08:11 3659

原创 【Qt OpenGL教程】11:旗帜效果(飘动的纹理)

这次教程中,我将教大家如何创建一个飘动的旗帜。我们所要创建的旗帜,说白了就是一个以正弦波方式运动的纹理映射图像。虽然不会很难,但效果确实很不错,希望大家能喜欢。当然这次教程是基于第06课的,希望大家确保已经掌握了前6课再进入本次教程。

2015-08-04 13:25:38 6362

原创 【Qt OpenGL教程】10:加载3D世界,并在其中漫游

这次教程中,我将教大家如何加载一个3D世界,并在3D世界中漫游。这相较于我们只能创造一个旋转的立方体或一群星星时有很大的进步了,当然这节课代码难度不低,但也不会很难,只要你跟着我慢慢一步一步来。

2015-08-03 19:53:20 9846 3

原创 【Qt OpenGL教程】09:在3D空间中移动位图

想知道如何在3D空间中移动物体,想知道如何在屏幕上绘制一个图像,而让图像的背景色变为透明,希望有一个简单的动画。这次教程中将教会你所以的一切。当然,这一课是在前面几课知识的基础上创建的,请确保你已经掌握了前面几课的知识,再进入本课教程。

2015-08-03 14:05:58 4909 1

原创 【Qt OpenGL教程】08:混合

这次教程中,我们将在纹理映射的基础上加上混合,使它看起来具有透明的效果,当然解释它不是那么容易但代码并不难,希望你喜欢它。

2015-08-03 10:34:18 4002

原创 【Qt OpenGL教程】07:光照和键盘控制

这次教程中,我们将添加光照和键盘控制,它让程序看起来更美观。我将教大家如何使用键盘来移动场景中的对象,还会教大家在OpenGL场景中应用简单的光照,让我们的程序更加视觉效果更好且受我们控制。

2015-08-02 20:30:13 6154 2

原创 【Qt OpenGL教程】06:纹理映射

这次教程中,我教会大家如何把纹理映射到立方体的六个面上。学习texture map(纹理映射)有诸多好处。比如说想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮廓并加上有趣的颜色。而使用纹理映射,我们可以使用真实的导弹图像并让它飞过屏幕。你觉得哪个更好看?使用纹理映射的好处还不止是更好看,而且程序的运行会更快。导弹贴图可能只是一个飞过窗口的四边形,而一个导弹却需要成百上千的多边形组成,很明显,纹理映射极大的节省了CPU的时间。

2015-08-02 16:26:20 6812 3

原创 【Qt OpenGL教程】05:3D模型

这次教程中,我们将之前几课的基础上,教大家如何创建立体的3D模型。我们将开始生成真正的3D对象,而不是像之前那几课那样3D世界中的2D对象。我们会把之前的三角形变为立体的金字塔模型,把四边形变为立方体。

2015-08-02 12:32:12 10714

原创 【Qt OpenGL教程】04:旋转

这次教程中,我们将在第03课的基础上,教大家如何旋转三角形和四边形。我们将让三角形沿y轴旋转,四边形沿x轴旋转,最终我们能得到一个三角形和四边形自动旋转的场景。

2015-08-02 10:39:25 10608 2

原创 【Qt OpenGL教程】03:添加颜色

这次教程中,我们将在第02课的基础上,教大家如何使用颜色。我们将一起理解两种着色模式(光滑着色与平面着色),并运用这两种模式分别给第02课的三角形和正方形着色。我们将使用平面着色给四边形着色,即给三角形涂上一种固定的颜色;使用平滑着色给三角形着色,将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。

2015-08-01 21:27:13 6317

原创 【Qt OpenGL教程】02:你的第一个多边形

这次教程中,我们将添加一个三角形和一个四边形。或许你认为这很简单,但要知道任何复杂的绘图都是从简单开始的,或者说任何复杂的模型都是可以分解成简单的图形的。所以,我们还是从简单的图形开始吧。

2015-08-01 19:44:55 9714 10

原创 【Qt OpenGL教程】01:创建一个OpenGL窗口

在这个教程里,我们将在Qt Creator环境中创建OpenGL对象,它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出,它将是我们后面应用程序的基础框架。

2015-08-01 12:31:02 22363 25

【Qt OpenGL教程】资源文件(此资源是作者博客教程所用的文件,无代码部分)

我把【Qt OpenGL教程】(参照NeHe)所需的全部资源文件打包放在这里,有需要的请自己下载。(需搭配作者发布的博客使用)(此资源是作者博客教程所用的文件,无代码部分)

2015-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除