
2008年5月8日
摘要: 模仿CRYSIS做了几个小功能,地形系统,道路系统,地形装饰物系统。地形要支持无数层贴图混合,自动优化压缩分拆PASS,当然FARCRY是这样的,CRYSIS更先进,也更费资源,它每层其实都是独立的PASS,可以用同种贴图实现不同效果,比如湿润的沙,干燥的沙,黄沙,绿沙,但贴图其实都一样,这里就不作讨论了;道路系统主要是连续自适应HERMIT曲线的生成和地形贴花生成;地形装饰物则偏重在动态种植策略上。另外CRYSIS还有很多东东我们可以模仿,比如体积云的混合,非常的有意思。
阅读全文
posted @
2008-05-08 14:10 易颖 阅读(18) |
评论 (0) |
编辑

2008年4月15日
摘要: 利用球谐光照技术,能让我们实时重现面积光源下3D模型的全局光照效果,在SIG02的一篇论文中曾有介绍(Sloan,Kautz,Snyder)利用这种技术实现模型的超真实光照效果。从这个技术的发展来看,他其实是N多相关技术的合集,游戏开发者可以利用他们来获得VERY GOOD的画面效果。技术本身的代码和结果都是很简单明了的,但这篇文章的目的在于阐述其背后的原理,以飨广大初学者。告诉你WHY,给予你使用SH LIGHTING的所有力量。
阅读全文
posted @
2008-04-15 09:32 易颖 阅读(102) |
评论 (0) |
编辑

2008年3月20日
两个星期前在AMAZON定的书今天邮到,包装保护很好,没有任何破损,时间也并没有象网上说的要3个星期到1个月,可能是上海邮政比较负责吧,总之想买书的兄弟可以放心购买了.一本GPU GEMS 3 一本 SHADERX4, SHADERX4主要是项目中要用, 而GPU GEMS 3前瞻性的看看技术. 相信明年就会翻译过来,想买的人可以等等.
posted @
2008-03-20 14:41 易颖 阅读(202) |
评论 (4) |
编辑

2008年3月11日
摘要: 在做大面积场景中,大多数人都对庞大数量小物件的渲染感到头疼不已,比如大量的小草、石头、落叶等。以草的渲染作为说明实例,如果草以大量分开的PRIMITIVE来渲染,在图形API调用的消耗将是巨大的,所以大部分同行的做法是当一个PRIMITIVE提交任务,但这样又带来两个问题,第一,无法对草木进行剔除;第二,无法进行ALPHA排序。对于这两个问题,通常有如下的解决方案,对于剔除问题,一般是将众多的草分成若干簇,能够以簇为单位进行剔除,这样就可以在API调用消耗与渲染负荷得到一个折中;对于ALPHA排序问题,最常用的解决方案就是用ALPHA TEST替代ALPHA BLEND。
阅读全文
posted @
2008-03-11 16:04 易颖 阅读(138) |
评论 (1) |
编辑

2008年3月8日
摘要: 本篇为3D基础的第3部分,主要讲述顶点切向量的计算原理,相信很多人都对Shader里的Tangent分量没有深入了解,希望我的这篇文章能对各位理解切空间有所帮助。我们以凹凸映射为例子来解释今天的原理。
阅读全文
posted @
2008-03-08 14:01 易颖 阅读(78) |
评论 (0) |
编辑

2008年3月5日
虚幻2的核心代码基本都通看过了,除了它的场景管理我没有写成笔记外,其他的基本都总结出来了,熟悉虚幻源码的人少之又少,我也是在阅读中探索,不断的实现虚幻的各种功能,虚幻3比虚幻2最主要是多了特效材质模块,那也是个非常有吸引力的技术,手中有代码,而且对虚幻分析有兴趣的朋友可以与我交流。
今天主要是讲下虚幻功能强大的投影器原理,而且我只讲最重要的静态模型上的projector,前因后果不作铺垫,本文章主要作为自身备忘,下面直接讲述数学原理。
1.虚幻2 静态模型上的Projector会切割静态模型并生成Primitive decals,最后的Primitive Decals以三角形List形式渲染,为什么不使用Strip?因为他切割的原理。
2.静态模型切割原理。详见ClipTriangle函数,基本算法是,生成一个切割顶点顺序序列,切割过程中,如果前序顶点与测试顶点都位于投影空间外,则丢弃本测试顶点。如果分别置于内外,则切割生成新顶点,按顺序保存下顶点,等所有顶点都生成完毕后,以其中一个顶点为原点,分割生成Triangle List。
3.其Projector投影矩阵的推导。
| Sx 0 0 0 |
| 0 Sy 0 0 |
| 0.5 0.5 1 0 |
| 0 0 0 1 |
Sx = Sy = 0.5 / tan(Θ)
Θ = Half Horizonal FOV Radius
X'/tan(Θ) = X''/0.5 ( Distance of Near Plane is 1, So Half Length of FOV is tan(Θ) )
上式主要是进行投影坐标钳制(-0.5 - +0.5),而| 0.5 0.5 1 0 |主要是将钳制范围平移为| 0 - 1.0 | 的纹理坐标范围。
posted @
2008-03-05 10:04 易颖 阅读(40) |
评论 (0) |
编辑

2008年2月18日
摘要: 终于开始着手写[3D基础]系列的第二篇文章了,这篇文章所将的内容相信对于很多人而言都是相当重要的,因为涉及到相机坐标系变换,BILLBOARD实现原理,凹凸映射切空间变换等课题。
阅读全文
posted @
2008-02-18 16:39 易颖 阅读(212) |
评论 (0) |
编辑