永远也不完美的程序

不断学习,不断实践,不断的重构……

常用链接

统计

积分与排名

好友链接

最新评论

图形编程

专门讨论游戏开发中的图形技术
FreeType使用的总结
     摘要: 这里说一下Freetype的关键点,比较基础的在很多文章已经有说明,这里就不详细说明了。
FreeType每个字符的加载,可以影响到后面对字符图像的处理。  阅读全文

posted @ 2016-09-11 17:14 狂烂球 阅读(9041) | 评论 (0)  编辑

正确理解shadowmap的实现方式
     摘要: 首先确定阴影的最基本原理:
阴影是以光源作为摄像机(叫作Camera_light),光照方向作为摄像机的look的方向,然后把这个摄像机看到的场景物渲染到纹理,这个纹理就叫shadowmap。  阅读全文

posted @ 2015-06-10 20:44 狂烂球 阅读(2944) | 评论 (1)  编辑

gles2开发中遇到的问题及解决方法
     摘要: 1.纹理
在gles2中,纹理在glsl中定义的顺序,并不是按先后顺序来排列的。
  阅读全文

posted @ 2014-02-20 19:33 狂烂球 阅读(2408) | 评论 (1)  编辑

2012-2013年AIREngine开发总结及未来展望
     摘要: 2012-2013年AIREngine开发总结及未来展望  阅读全文

posted @ 2014-02-01 18:29 狂烂球 阅读(1900) | 评论 (1)  编辑

游戏中各种特效的实现方法。
     摘要: 这里说的是一些常规的人没考虑到的效果。

1、精确拾取的实现
一般普通的拾取就是AABB,再是OBB,或者是遍历一个模型的面。这三种方式都有缺陷。  阅读全文

posted @ 2013-08-17 13:22 狂烂球 阅读(1500) | 评论 (1)  编辑

游戏中各种性能优化方法(不断更新)
     摘要: 谈到游戏中的性能优化,说白了就是如何提高帧率和降低内存。
提高帧率的基本原则就是减少DP次数,还有是找出时间消耗高的程序代码加以修改。  阅读全文

posted @ 2013-03-23 16:29 狂烂球 阅读(2164) | 评论 (1)  编辑

为适应dx11,airengine所作出的修改。

posted @ 2012-10-03 08:19 狂烂球 阅读(916) | 评论 (1)  编辑

关于VertexDeclaration的设计改进。
     摘要: vertexdeclaration在引擎中,原来是直接放在vertexbuffer里面,当设置这个vertexbuffer的时候再设这个declaration,在DX9中看似没问题,因为每个vertexbuffer都有自己的顶点格式。  阅读全文

posted @ 2012-07-18 22:40 狂烂球 阅读(1782) | 评论 (0)  编辑

引擎关于插件模式开发的思考
     摘要: AIREngine已经支持插件式的开发,即不需要开发人员在工程上连接某个DLL和lib,直接通过LoadLibrary的形式加载。  阅读全文

posted @ 2012-05-06 11:17 狂烂球 阅读(2237) | 评论 (2)  编辑

物体接触阴影(shadowmap)要注意的问题。
     摘要: 之前写的人物模型接收阴影突然出了问题,完全接收不到阴影,后来发现是自己写的一个矩阵引起阴影上的LightWorldViewProjmatrix出了问题。  阅读全文

posted @ 2012-04-22 21:59 狂烂球 阅读(2620) | 评论 (2)  编辑

多渲染器下的渲染状态的封装
     摘要: DX9和DX11的API相差非常大,如果一个引擎要支持两种渲染器,在设计上还是要花点功夫。  阅读全文

posted @ 2012-04-19 12:25 狂烂球 阅读(2089) | 评论 (1)  编辑

AIR引擎开发总结(一)
     摘要: 1、地形网格。
AIR引擎的地形设计,是基于四叉树的管理,既然用了四叉树,就有相对应的地块数据,在AIR引擎里面是TerrainBlock。  阅读全文

posted @ 2011-11-26 21:01 狂烂球 阅读(1009) | 评论 (2)  编辑

骨骼动画平滑过渡的实现
     摘要: 很久没写技术文章,今天写一下骨骼动画的过渡,也当是复习一下。骨骼动画的过渡在游戏中很常见,由一个动作切换到另一个动作有个过渡时间,这个过程其实是动作混合的过程。  阅读全文

posted @ 2011-05-13 10:41 狂烂球 阅读(3697) | 评论 (2)  编辑

总结一下shadowmap的实现
     摘要: 花了大概几周的时间实现了软阴影。总的来说难度还是比较大的,而且我也走了些弯路,不过也值得,单是写shader不是很难,但要放到引擎中还是有点难度。shadowmap的原理我就不讲了,网上有很多。  阅读全文

posted @ 2010-07-23 16:01 狂烂球 阅读(4324) | 评论 (4)  编辑

渲染流程要放到渲染物外面的地方
     摘要: 渲染流程讨论。  阅读全文

posted @ 2010-06-22 17:07 狂烂球 阅读(2173) | 评论 (2)  编辑

shader与雾处理
     摘要: 最近发现一个很特别的问题,可能是我水平未够,找不到原因。  阅读全文

posted @ 2010-06-18 23:07 狂烂球 阅读(1843) | 评论 (2)  编辑

D3D中clipplane使用的注意。
     摘要: 最近使用clipplane的时候,当渲染物在固定管线的时候,一切正常,但当渲染物用了vertexshader的时候,完全看不到了,找了很久也不知道问题的所在。  阅读全文

posted @ 2010-06-09 14:24 狂烂球 阅读(2203) | 评论 (4)  编辑

D3D9中SetXXXShaderConstantF用法要注意的地方。

posted @ 2010-03-23 22:22 狂烂球 阅读(780) | 评论 (3)  编辑

关于材质与渲染状态的一些心得
     摘要: 写代码这么久,材质、渲染状态和shader的问题一直给我有很大的困拢,今天为了整理一下思路,决定写一下设计文档和序列图。经过这样一写,和对之前渲染状态管理的一些文章的理解,思路终于清楚了一点。  阅读全文

posted @ 2009-06-16 16:46 狂烂球 阅读(2102) | 评论 (0)  编辑

浅谈水体的实现
     摘要: 温故知新,水面很早就实现了,但没有在这里写过,今天总结一下。
水的模拟要达到以下效果:水面的折射与反射,水的波动。
要达到这种效果,需要以下四张纹理:折射纹理(RenderTarget),反射纹理(RenderTarget),Bumpmap,水自己的纹理。
折射与反射的原理就不具体说了,下面只说实现步骤。  阅读全文

posted @ 2009-06-03 20:45 狂烂球 阅读(2582) | 评论 (4)  编辑

Material与shader在设计上的难题!
     摘要: 为了设计上的灵活,我把shader、纹理等都封装到材质(Material)里,以方便渲染对象在不同状态下材质的切换以达到不同的渲染效果。
  阅读全文

posted @ 2009-05-15 10:30 狂烂球 阅读(2495) | 评论 (8)  编辑

复习一下D3D渲染流程
     摘要: 摘自http://www.cnblogs.com/ixnehc/articles/1282350.html

我归纳一下就是:准备顶点和图元数据----》传到D3D渲染管线----》处理顶点数据(固定、shader)----》几何处理(裁剪、背面剔除、光栅化)----》像素处理(纹理采样)----》着色  阅读全文

posted @ 2009-05-11 22:21 狂烂球 阅读(4206) | 评论 (2)  编辑

3ds max appwizard的安装使用(转baidu并修正)
     摘要: 创建一个空的工程

我们首先在3DS Max创建面板里面建立一个简单的几何物体,称之为”widget” 。可以通过视图窗口里三个参数去修改它的几何特性。Size表示轮廓尺寸,第二个参数left表示物体左翼的外延,第三个参数right表示右翼的外延。
首先我们去了解一下怎样建立一个工程,可以通过以下两种方法:  阅读全文

posted @ 2009-01-12 14:36 狂烂球 阅读(1836) | 评论 (0)  编辑

最新-基于四叉树的LOD地形设计
     摘要: 上次说过要在这里把最新的地形设计写出来,不过一直没时间写,也想画些UML图,但没工具画,呵呵,只能通过手写了。希望大家看得明白吧。
  阅读全文

posted @ 2009-01-10 16:19 狂烂球 阅读(7520) | 评论 (73)  编辑

学习总结与下一阶段计划
     摘要: 首先总结一下上一阶段的成果。
1、 LOD大规模地形已经进行了优化与重构,实现了1024x1024大规模地形,并实现了地形的光照模型,DEBUG版本平均帧数已经达到40,稍后会写上最新的LOD地形设计思想。  阅读全文

posted @ 2008-12-13 20:33 狂烂球 阅读(1671) | 评论 (0)  编辑

Skybox边线消除的解决办法
     摘要: Skybox搞好后,发现在边线有很明显的裂缝,一开始时不知道如何解决,后来问了人,有人说把纹理采样改成Point,有人说纹理坐标改成0.001到0.999,这两样我都试过,发现改成Point裂缝是消除了,但看起来很不好看,改成0.001到0.999也有裂缝。  阅读全文

posted @ 2008-08-25 10:44 狂烂球 阅读(1601) | 评论 (0)  编辑

LOD地形设计与实现
     摘要: 地形从一开始研究,到实现,分了好多个版本,重构了好多次……主要问题在于对LOD数据结构的不熟悉和对索引用法的不熟悉。经过一系列的研究与学习,总结了如下实现LOD的方法  阅读全文

posted @ 2008-08-18 17:08 狂烂球 阅读(3442) | 评论 (11)  编辑

用DirectX写的Skybox
     摘要: 用DX实现Skybox的原理与步骤。  阅读全文

posted @ 2008-03-24 09:27 狂烂球 阅读(1656) | 评论 (1)  编辑