|
|
这段时间老是在想光照图的事情。。。。。。。。以下是本人这些天断断续续胡乱想的一点拙见。。。。。。。。。
计算光照不难,难的是生成光照图的纹理坐标。。。。。。。
展UV还是3DSMax最好,自己弄的不好,我只会一个三角形一个三角形的展,生成共面的surface再展又觉得太慢。
游戏里的东西可以分成3种,地形,实体,室内
地形就是terrain。实体就是石头,小船,室内的衣柜,床,电视,建筑外表。室内就是室内,cell-portal的室内,除去那堆室内实体的室内。
地形的光照好说。
实体一般不大,干脆用3DSMax展光照图的UV好了,制作实体的时候要求每一个实体都要带有光照图的UV。整张地图算光照的时候就给每个实体都计算,然后再把算出的光照图打包成指定尺寸。
不过有些实体面太多了,所以还是不算了的好,到时候使用实时光照,但是给别的物体算光照的时候要带上它,因为要计算它的影子。
对于那些能移动的实体就既不计算光照也不计算影子,到时候使用实时光照,有必要的话可以用ShadowMap弄下阴影。(Shadow Volumn太锐了,而且还得预处理,还有建模限制)
实体的VB,IB,UV等在内存中只保存一份,所以场景中重复出现的实体使用的都是同一个VB,IB,UV,但是同一个实体的不同实例使用的光照图不同,所以要为同一个实体的不同实例保存它的光照图ID,还有纹理坐标的变换矩阵(因为将多个小光照图打包成一个大的了,所以要变换下纹理坐标)。
室内的还真不好说,同样不推荐自己展UV,但是用3DSMax好象只能展成一张光照图,室内场景很大的话这张光照图的分辨率就得十分高,这样太不好了。我也想不出什么好办法,干脆花点钱买个算光照图的软件展UV算了。Light Map Maker 0.39 免费,但是比较烂。http://www.thegamecreators.com 这上面的可都是好东西啊,就跟它域名说的一样做游戏的全套工具都有,有算光照图的,有建室内场景的,做纹理的,做天空盒的,做人物的,做声音的,甚至还有做3D游戏的(晕),做FPS类型3D游戏的(再晕)。价格都很便宜,里边做光照图的gile也就50美元,用起来感觉比LightMapMaker好不少。(大家千万别误会,我不是给他们做广告的[em10])
总之现在一想到光照就头疼,不得不感叹还是国外的那帮人厉害,似乎个个都会弄还弄的很好。顺便再提下这个http://lightsprint.com 技术更是牛x,我这边普通的光照弄着正恶心着呢,他竟然给弄了个realtime radiosity,真是要吐血了。 [em6] [em6] |
|