关于Portal的自动生成
目前,HL2,Quake3,Unreal2,Farcry的Portal都是手动生成。很明显,随着场景复杂度的提高,工作量会剧增,而且完全属于体力劳动,很容易让人厌烦。如果能自动生成,应该是一件很爽的事,下面是关于这方面的一些文章:
A New Partitioning Method for Architectural Environments
这篇文章提出一种自动生成Portal的方法,一个房间作为一个cell,通过Portal连接。很明显不适用任意场景,并且Portal不能任意方向。
Visibility Preprocessing For Interactive Walkthroughs
Teller在这篇文章中详细的介绍了bsp,portal,pvs,这篇文章被称之为bsp bible。他从平衡bsp自动生成portal,我们先来看看portal渲染的过程,如果视点在cell C里,伪码如下:
1. draw the polygons of cell C.
2. for each portal p of cell C,
if p is visible then
recursively call the procedure for the
back cell of p.
很多cell里只有少量的三角形,而Portal的数量很多,这样就花费大量的时间来决定portals是否可见。如果cells足够大,而且只有少量的Portal,那么效果就很理想了。
Automatic Cell-and-portal Decomposition
这篇文章就能满足上面的要求,适用于任意的场景。里面的Previous work一节列举了很多这方面的文章。另,这篇论文虽很长,但是很容易看懂,以我的英文水平居然能毫无理解障碍的读完,真是头一次。
http://www.gamedev.net/reference/articles/article1891.asp
Automatic Portal Generation
呵呵,中国人写的,虽短,没看太明白,用的是Teller生成Portal的方法,但是最后剔除很多不必要的Portal。