摘要: Sublime Text 的下载与安装 下载地址:Sublime 官方下载 Package Control 的安装 在sublime Text中的控制台(Ctrl+~)中粘贴上面的内容回车,等待自动安装,完成后重启。 按下Ctrl+Shift+P打开命令模式,键入Install Package按下回 阅读全文
posted @ 2016-08-27 15:10 clairvoyant 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 这段代码花了我近一周时间学习。 球体之间的相互碰撞,球体与墙面之间的相互碰撞,球体与木桩之间的相互碰撞。小键盘+/-控制球体的timestep,也就是速度。UP/DOWN/LEFT/RIGHT控制camera,W/S/A/D控制位移。 F2控制camera跟进某个小球,可观察小球的碰撞路径。 一、碰 阅读全文
posted @ 2016-08-22 12:17 clairvoyant 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 这是以前做过的两个小游戏,是根据unity官方教程来学习的,非常的简单。github下载地址在文末。 Roll a Ball: 控制一个球来回移动,碰撞旋转的cube可以消除,颜色可以根据自己的喜好来设定,Roll a Ball其实也不算个游戏,没有音效,只有简单的字体UI。不过camera可以随着 阅读全文
posted @ 2016-08-15 12:24 clairvoyant 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 在这篇中两个点。 一个是raw格式图片的贴图: 一个双重贴图即部分覆盖,图像数据,以及两个贴图的开始部分,范围以及模式是重点: 下面为代码,同样修改部分位于双行星号内。 1 /************************************************************** 阅读全文
posted @ 2016-08-13 10:42 clairvoyant 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Bézier curve经常应用于计算机图形学邻域。 三次Bézier curve演示: p为点的坐标。 一次Bézier curve: 二次Bézier curve: 三次Bézier curve: 每次对每个点进行处理。未处理时: 下面为代码。同样修改部分位于双行星号内。 1 /******** 阅读全文
posted @ 2016-08-09 20:43 clairvoyant 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 这次的代码没有按照辅导代码中的来。 VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN控制长方体旋转,W/S/A/D/Q/E控制球移动,小键盘的8/5/4/6/7/9控制长方体移动,I/K/J/L/U/O控制光源移动。 在InitGLObject()函数中使用到的readObject()函 阅读全文
posted @ 2016-08-06 22:48 clairvoyant 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 这一章实现了物体在地面上的投影,以及物体表面灯光闪烁的效果。 我在原本的代码上添加了些功能,W/S/A/D和UP/DOWN/LEFT/RIGHT为左右前后移动,实现了小球在地面滚动的效果。 物体的投影,其实为在其Y轴的另一个物体相对; 物体表面的闪烁效果其实为另一张贴图,两个效果都使用了混合透明效果 阅读全文
posted @ 2016-08-01 18:02 clairvoyant 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 这是一个小demo,读取物体的顶点坐标值生成3D图像。 三个物体顶点坐标文件。 1 Vertices: 486 2 -0.106 1.593 2.272 3 -0.106 2.036 2.228 4 -0.193 2.028 2.228 5 -0.276 2.002 2.228 6 -0.353 1 阅读全文
posted @ 2016-07-30 20:00 clairvoyant 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要说的是,怎样实现在窗口中裁剪一个小的视图窗口(即glScissor()函数)?以及对glGetString()函数的应用。 在本文中,用到的贴图材质是TGA格式图片,相对于JPG格式,会更加清晰,因使用不失真的压缩。不了解TGA格式图片的可以看看这篇。基于对TGA格式的了解,具有独有的一个 阅读全文
posted @ 2016-07-30 12:08 clairvoyant 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 这一章是在18章的基础上建立的,主要说的是镜面反射。 使用两张相同的图片,对scene和object实现贴图。 在InitGL()函数中,gluNewQuadric()创建一个曲面物体指针赋给quadratic。gluQuadricNormals()函数设置法线风格,默认为GLU_SMOOTH,对每 阅读全文
posted @ 2016-07-29 13:17 clairvoyant 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 这几天杂事太多,没及时更新,抱歉。 如何控制图形加速器实现多重纹理? 如何实现凹凸纹理贴图? 如何在混合色彩渲染的场景上实现标志浮动? 如何多重渲染? 如何高效地矩阵转换? 本章主要说的是多重纹理,即凹凸纹理。 isInString()函数在特定的字符串中搜寻特定的字符串,更高效的算法可以用KMP算 阅读全文
posted @ 2016-07-28 16:51 clairvoyant 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 这是一个简单的小游戏,类型相当于amidar,不过也有1000行,手困眼花......UP\DOWN\LEFT\RIGHT控制,SPACE重新开始。 在TimerInit()函数中,QueryPerformanceFrequency()函数查询性能计数器的频率。QueryPerformanceCou 阅读全文
posted @ 2016-07-20 22:54 clairvoyant 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 某物体隐藏于某物体后,隐约可以看出大概。 在DrawGLScene()函数中,先画出位于后面的物体,当然具有较深深度。 在绘制前面物体时,为了可以隐藏(即和后面物体混合)开启混合模式且关闭深度测试。贴图纹理的位置坐标可以变换,即可以使前面的贴图图实现上下、左右、远近移动、波动等。 在开启GL_BLE 阅读全文
posted @ 2016-07-18 13:45 clairvoyant 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 粒子散射做出来是比较酷炫的,每个粒子为一个结构体。 活动状态、生命周期、消褪时间、颜色、位置坐标、方向坐标、重力方向都有,可以任意调节。 当时在绘制函数中发现原文用的是三角形,为什么不用四边形? 因为用Quads很慢,现在的GPU都呈现三角形,尽力呈现(其实为相似)四边形。原因此处。 在InitGL 阅读全文
posted @ 2016-07-16 21:28 clairvoyant 阅读(259) 评论(0) 推荐(0) 编辑
摘要: quadratic可以做许多有趣的事,在声明全局变量时,GLUquadricObj为quadratic(二次曲面)的指针。在InitGL()函数中,glLightfv()函数已经见过好多次了,镜面反射,光线追踪都需要用到。gluNewQuadric()函数创建一个quadratic。gluQuadr 阅读全文
posted @ 2016-07-16 07:49 clairvoyant 阅读(284) 评论(0) 推荐(0) 编辑