
Game Programing
文章平均质量分 79
CoderLing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Directx3D游戏开发】——简单渲染
这是个令人十分激动的时刻,用Directx3D去渲染出一些形状,还有会动的形状。感觉就跟中了彩票一样的心情。 好了,以上都是废话。在上一次的文章中学会了如何初始化Directx3D环境,now!开始真正的干事情了,首先要渲染一个三维三角形。在前面的代码的基础上其实添加小量代码就可以实现渲染了,不过还是要了解几个东西。 1.可变定点格式FVF(Flex原创 2013-04-06 13:44:12 · 1274 阅读 · 1 评论 -
OpenGL 学习笔记-2015.4.18——立方体纹理映射-天空盒子-环境映射
立方体映射(cube-map)纹理是一种特殊类型的纹理,用于环境映射,使用一组图像并把他们作为立方体的面。立方体映射的6个面用正方形并且大小相同的6个子纹理表示。要从立方体纹理中采样的时候,使用的纹理坐标是3维,并且被看做来自原点的方向!方向指向用来读取纹理的立方体映射表面的位置。在这里例子中,有关于环境映射的代码,主要思想是通过观察向量和表面的法向量反射来确定采样的纹理坐标。 通过将一原创 2015-04-24 01:48:52 · 6774 阅读 · 0 评论 -
OpenGL学习日记-2014.11.23--OpenGL变换
由于是重温系列,只是简单记录下迷惑的地方和,以前不知道的地方。1,观察坐标系的确定,以前一直迷惑摄像机的up向量的确定,由于定位三个向量互相垂直是必须的,而我们在调用gluLookAt()指定的向量都是比较随意,对于摄像机变换并没有很好的理解。终究是由于远离没懂,所以前天特意研究了下,摄像机坐标系的确定:1.首先确定摄像机的位置。2.确定视线方向view。2.接下来只需要在确定其他两个原创 2014-11-26 01:47:58 · 758 阅读 · 0 评论 -
OpenGL学习日记-2014.1.21--混合
混合可以实现很多效果,笔记单纯的记录混合的原理,和混合公式,混合函数的使用。最后分析书中的两个混合代码例子,两个例子结合起来说明了绘图顺序对混合最终效果的影响,及如何去规避这样的问题。在颜色中之前一直忽略的第四个分量alpha终于派上用场。在启用混合情况下,alpha常常用于把被处理片断的颜色值与已经存在帧缓冲区的像素颜色值进行组合。混合操作是在场景进行了光栅化并转换为像素之后,但是在最终的像素绘原创 2015-02-13 02:39:11 · 1257 阅读 · 3 评论 -
透视投影(Perspective_Projection)变换推导
原文作者我也不知道是谁。。偶尔在论坛上看到,然后搜了一下,在百度文库下了个文档。不管怎样,感谢原作者的辛勤劳动。透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。转载 2015-01-21 19:25:35 · 2592 阅读 · 0 评论 -
OpenGL学习日记-2014.12.21--光照
一、光照和颜色密切相关,光照也是由不同颜色的光去描述,所以由于颜色的表示有两种模式:rgba模式和颜色索引模式,所以光照也分为rgba下的光照,和颜色索引模式下的光照。不过同样的是rgba模式下的光照灵活方便,主要还是使用rgba下的光照模式。二、隐藏表面消除工具。三、现实世界和OpenGL关照四、材料和颜色 五、创建光源六、选择光照模型七、定义材料属性原创 2015-01-21 21:46:56 · 2365 阅读 · 0 评论 -
OpenGL学习日记-2014.11.6--OpenGL缓冲区对象
1.何为OpenGL缓冲区对象,他有什么作用 其实在字面意义上来看,就应该知道缓冲区对象的大体做那个,多半是用来解决数据传输问题。在OpenGL,由于OpenGL是按照客户机-服务器模式设计的,在OpenGL中任何时候需要数据,都必须从客户机内存存到服务器,如果数据并没有修改,或者客户机和服务器位于不同的计算机(分布式渲染--不懂。。),就会产生不必要的传输,或者传输比较缓慢。缓冲区对象原创 2014-11-26 01:45:58 · 770 阅读 · 0 评论 -
OpenGL学习日记-2014.12.2--颜色
颜色这章还挺有意思的,感觉上了节物理和生物课样。从光子理论,光谱,到光子作用视网膜上的锥细胞,而人终于感知了色彩。计算机表示颜色有两种模式:RGBA模式和颜色索引模式。无论是那种模式,每个像素都存储雷丁的颜色数据。这个数量由缓冲区的位平面决定。在每个像素中,1个位平面表示1位数据。如果每个像素用8位表示则他可以最多表示2的8次方颜色。一、RGBA模式: 硬件为R,G,B,A成分保原创 2014-12-02 02:34:46 · 755 阅读 · 0 评论 -
OpenGL学习日记-2015.3.13——多实例渲染
实例化(instancing)或者多实例渲染(instancd rendering)是一种连续执行多条相同渲染命令的方法。并且每个命令的所产生的渲染结果都会有轻微的差异。是一种非常有效的,实用少量api调用来渲染大量几何体的方法。OpenGL提供多种机制,允许着色器对不同渲染实例赋予不同的顶点属性。原创 2015-03-14 04:22:15 · 4121 阅读 · 0 评论 -
OpenGL学习笔记-2015.3.24——transform feedback缓存&粒子系统示例分析
transform feedback是OpenGL中比较酷炫的特性之一,他让客户端应用程序可以获取到渲染流水线上的顶点数据。基于这一特性实现了基于z-pass场景决策渲染技术,当然在此并没有去了解何为z-pass场景决策渲染技术,总之是一个可以有效减少渲染数据的输送。这里只是通过一个简单的例子系统,去了解transform feedback对象的使用方法。原创 2015-03-30 03:03:15 · 8292 阅读 · 1 评论 -
基于事件驱动的lua--c/c++交互
PS:参考自《lua游戏开发指南》 事件驱动的程序可以增强系统的可扩展性——lua游戏开发指南原话 书中的事件驱动程序主要分为几个重要的部分,是lua与c/++的双向交互。 1、提供一个luaGlue函数在lua中注册事件处理函数。 2、c/c++代码获取事件处理函数名称,在c/c++中调用lua编写原创 2014-01-27 21:24:32 · 3613 阅读 · 0 评论 -
c/c++调用lua函数
lua环境由所有可操作的数据构成,编译好的函数,变量以及其他运行时内存。而所有的这些数据都将保存一个叫做lua_State的结构中。一个lua程序至少有个个lua_State,被称作lua环境,是用来发送和接收数据的地方,支撑着与其他语言的交互,具体来说就是利用lua栈(lua_Stack)来实现。在c/c++中调用函数,具体过程可以分为几步:原创 2014-01-24 23:21:41 · 1546 阅读 · 0 评论 -
luaGlue函数——lua中调用c/c++函数
所有能在lua中调用的c/c++函数都必须是遵循lua定义的函数原型:typedef int (*lua_CFunction) (lua_State *L),其中返回值整型int表示,函数返回值个数。lua调用c/c++函数,他们之间的交互依然通过lua栈,而且需要认识到的是,无论是lua调用c函数,还是c/c++调用lua函数,他们之间的交互用的栈并不是全局栈,每个函数都维护着一个自己的私有栈,原创 2014-01-25 15:01:12 · 3066 阅读 · 0 评论 -
【Direct3D游戏开发】——重温Direct3D游戏开发详解 1、2、4章
由于此前已经看过一下,但没坚持看下去,这次重新浏览了下。 第一章:认识Directx与Directx SDK Directx SDK包含: a.Direct3D:3D图形包 b.DirectDraw:2D图形包 c.DirectInput:为游戏输入提供各方面的支持原创 2013-03-06 16:10:23 · 830 阅读 · 0 评论 -
【Direct3D游戏开发】——蒙皮骨骼动画学习笔记
蒙皮骨骼动画 一、蒙皮骨骼动画原理:蒙皮骨骼动画的思想来源于自然界,大多数动物都拥有一套骨骼,骨骼是身体的框架,身体的皮毛血肉都是依附于骨骼。当骨骼开始运动的时候,依附于对应骨骼的皮毛血肉都会随骨骼一起运动。而Mesh模型是由大量的三角形组成,三角形由定点组成。当我们运动时,有必要知道那些定点依附于那块骨骼,根据骨骼的移动来移动对应的顶点。原创 2013-08-22 05:49:05 · 4441 阅读 · 3 评论 -
【Direct3D游戏开发】——DirectInput 让世界动起来
其实我们是可以通过Windows消息和API取得键盘或者鼠标或者其他设备的输入信息,但这有个等待windows消息传送的延时,笔者试过直接在消息回调函数中相应键盘的上下左右消息去使场景中的模型进行旋转,感觉有明显的延时。这对于游戏玩家来说简直是噩梦,就好像我在玩lol,舍友都在用迅雷下AV一样的信息。而DirectX是直接与硬件进行交流,不需要去等待windows传送消息。DirectInput可原创 2013-04-19 16:47:28 · 1264 阅读 · 0 评论 -
【Directx3D游戏开发】——网格模型(mesh .x)
这次的笔记包含两个内容:1:简单介绍网格模型 和 .x文件;2、优化Mesh模型已取得更高的渲染效率,用Direct3D去加载一个.X文件。游戏中的场景和角色都非常复杂,想要手工去填充这些模型的每一个顶点几乎是个不可能的事情。一般是用建模工具去完成,然后导出一个程序可以识别的网格模型。最常用的是3DMax,和Maya。1:.X模型X格式是微软提供的一种开放的数据存储格式。.X支原创 2013-04-16 10:48:58 · 2340 阅读 · 0 评论 -
【Directx3D游戏开发】——Directx3D初始化
在了解如何初始化Directx3D之前应该首先懂得如何编写一个windows程序,创建一个windwos程序分为4步:1.设计一个窗口类;2.注册一个窗口类;3.创建窗口;4.显示及更新窗口。 以下是创建一个最简单的windows窗口的示例,参考自孙鑫的VC++深入详解.//-----------------------------------------------原创 2013-03-30 11:00:33 · 1052 阅读 · 0 评论 -
【Reading Notes】CP4-Physically Based Rendering in Unity5 (基于物理的渲染)
写在前面相对于unity4,unity5其中一个最大的改变是基于物理的渲染,简写PBR。前面的章节多次提到PBR但是从来没有深入去探讨,如果想要了解PBR是如何工作并且灵活运用PBR那么你应该阅读这一章节。在这一章节,你讲了解一下几点:懂得Metallic(金属材质)的设置为PBR添加透明创建一个镜子一般的反射表面为你的场景烘焙光照(Bake lights)Introduction 简介理原创 2017-07-04 08:22:16 · 515 阅读 · 0 评论