billboard mapping 的本质是用一张image来替代真实的object,即用geometry渲染的object,这样可以提高渲染效率。
Billboard具体的实现过程是,用RBGA四个通道,将image (也是fragment,因为image和object一样,rasterization后都变成fragment)中有object的地方A设置为1,即不透明,在没有object的地方,即background,A设置为0,透明。
然后在OpenGL pipeline的per-fragment operations这个阶段中,有个alpha test,将其设置为如果A>0.5,fragment保留,否则就将其丢弃。这也是fragment是potential pixel的原因,在成为fragment之后,要经过一系类的测试,如深度测试,stencil测试,alpha测试,才能成为最终的pixel,即在屏幕中显示。
而在rasterization这一步中,是根据eye的方向看整个场景,object中正对着eye的会被rasterization,稍后在通过depth-test,即z-buffer,来判断遮挡关系,用离eye最近距离的fragment的value显示,即只显示离eye最近的fragment,而将被挡住的fragment丢弃。