现在的位置: 首页 > 综合 > 正文

5.10 recombinant shaders–game programming gems 笔记

2013年05月29日 ⁄ 综合 ⁄ 共 517字 ⁄ 字号 评论关闭

这个可以说是一个游戏渲染部分非常核心的部分。

game programming gems 5开这个专题是非常有意义的。

shader linker反映了整个引擎的data pipeline的结构:

所支持渲染的宽度,深度和灵活性。

具体做法是首先定义所支持的渲染方式,这些当然是反映到物体的属性和材质上:

lighting--per-pixel, per-vertex, 全局光模型,normal/parallax map等

texture: 各种mask,animated,

这一切都最后反映到vertex shader和pixel shader上。

根据所支持的渲染技术,写出对应的各个部分,比如parallax map的实现,光照模型,都放在一个个小函数里面,然后在根据现在游戏中有的类型进行组合,进而形成一个个完整的shader。

把shader和材质类型map起来。

map肯定就是有hash的key和value,一般也就是把uint32或者uint64中的每个bit与具体材质信息对应起来,那么转成字符串就成了shader的名字。

这样就完成了map过程。

 

由于这种做法带来了巨大的通用性,相应的,它对于设计和后期的调试打磨就有更高的要求。

这个方法的确非常cool!

抱歉!评论已关闭.