摘要: 2D字体贴图的贴法和一般的贴图纹理有点小区别,可以先看看我们需要用到的字体贴图纹理。 在BuildFont()函数中,我们对图片进行分割为16X16,则创建256个列表。这段代码表示每次把图片上的一个符号存进列表中。 在glPrint()函数中我们对先前创建的256个列表进行选择,是否是大小写的代码 阅读全文
posted @ 2016-07-15 17:48 clairvoyant 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要说的是雾气。雾气模型,颜色等。 GLuint fogMode[] = {GL_EXP, GL_EXP2, GL_LINEAR};GLfloat fogColor[4] = {0.5, 0.5, 0.5, 1.0}; GL_LINEAR公式为: GL_EXP公式为: GL_EXP2公式为: 阅读全文
posted @ 2016-07-14 12:11 clairvoyant 阅读(255) 评论(0) 推荐(0) 编辑
摘要: glTexGeni()函数为控制纹理坐标的生成。 代码如下,同样修改的部分位于双行星号内。 Thanks for Nehe's tutorials, this is his home. 阅读全文
posted @ 2016-07-13 17:50 clairvoyant 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 承接上一节,2D字体转换为3D字体,将wglUseFontBitmaps()换为wglUseFontOutlines(),再做一些简单的修改即可。 因为在InitGL()函数内添加了 glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); glEnable(GL_CO 阅读全文
posted @ 2016-07-10 18:34 clairvoyant 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 如何在屏幕上显示字体,同时颜色变换且是动态移动的? CreateFont()是建立字体主要的函数,在MSDN中有详细的解释。同时的glGenLists()函数创建空的显示列表,主要是为了表示26个字母。SelectObject()函数以及DeleteObject()函数是对具体字体对象的操作。 wg 阅读全文
posted @ 2016-07-10 16:03 clairvoyant 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 若同样的物体需要创建多次时,并在不同的位置,且需要不同的着色etc,同时不能太麻烦......该怎么弄? 显示列表,它不仅会加快速度,而且会减少代码量。通过显示列表,一个物体只被创建一次,且可以纹理贴图,着色etc。需要用到这个物体时,只需要glCallList()就可以了。 下面这段代码不仅可以创 阅读全文
posted @ 2016-07-08 20:18 clairvoyant 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 这一节主要是贴图材质的波动,运用正弦函数控制像素点的深度,每次绘制完再进行少量转换。 代码中的glPolygonMode()函数为贴图材质的正反面显示形式的描述,可为线条即网格,点和填充即原图。 代码如下,同样修改内容在双行星号内。 Thanks for Nehe's tutorials, this 阅读全文
posted @ 2016-07-08 13:13 clairvoyant 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 这一节主要说的是camera的移动以及视角的旋转问题。 我在原本代码的基础上做了添加和修改,将移动方向的前、后、左、右改为W、S、A、D,并将视角旋转的向上、向下、向左和向右改为UP、DOWN、LEFT、RIGHT。最后还添加了下蹲为Ctrl键和跳跃SPACE键(空格),其实就是CS里的几个虚拟键的 阅读全文
posted @ 2016-07-07 13:11 clairvoyant 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 这一章主要是位图的旋转以及灯光的问题,主要的效果为旋转加闪烁(在代码后面会有截图),色彩在代码中为随机生成的,所以看起来是五彩的,不过在旋转过快时会产生亮白效果。闪烁效果按键为T。同以前一样,小键盘的+和-为接近屏幕和远离屏幕。UP键和DOWN为每次增加一定的角度来翻转整个图形。 这是没有开闪烁效果 阅读全文
posted @ 2016-07-05 18:54 clairvoyant 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 大多数人认为GL_RGBA中的alpha通道是透明与不透明程度的,即0为完全透明,1为不透明。 The Blending equation:(Rs Sr + Rd Dr, Gs Sg + Gd Dg, Bs Sb + Bd Db, As Sa + Ad Da) s和d为下标,指定的是资源和目标像素。 阅读全文
posted @ 2016-07-05 09:23 clairvoyant 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要是对键盘和灯光的控制。 up、down、right和left控制图形的旋转方向。L控制灯光的开关,F控制灯光模糊化程度。小键盘的+和-控制图形接近屏幕还是远离屏幕。在程序的最后会有演示。 代码如下,修改部分位于双行星号内: Thanks for Nehe's tutorials, this 阅读全文
posted @ 2016-07-03 19:49 clairvoyant 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 第六节有几个坑。 第一个,在VS中有很多函数会报错,因为微软觉得不安全(事实如此)所以替换掉原来的函数让用他们自己的。比如在接下来的这段代码中,用到了fopen(),VS给出了fopen_s(),当然也可以继续使用原生函数,只需要在项目属性中->C/C++->预处理器->预处理定义,添加_CRT_S 阅读全文
posted @ 2016-07-03 13:48 clairvoyant 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 图形是旋转的。 修改部分在双行星号内。 Thanks for Nehe's tutorials, this is his home. 阅读全文
posted @ 2016-07-02 12:23 clairvoyant 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 图是动态旋转的。 修改部分位于双行星号内。 Thanks for Nehe's tutorials, this is his home. 阅读全文
posted @ 2016-07-01 23:37 clairvoyant 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 反转链表光是O(N)要求可以先存入数组再从尾部读入单链表。 若是要求常数附件空间,代码如下: 阅读全文
posted @ 2016-06-30 17:36 clairvoyant 阅读(785) 评论(0) 推荐(0) 编辑