learnopenglcn-透明物体

  1. 对于半透明物体
    如果半透明物体跟不透明物体在同一个pass中一起渲染,而且开启了深度测试,那么由于半透明物体也会改写depth值,前面的半透明物体可能会遮住后面的半透明物体和其它物体,所以对渲染顺序有要求:
    a. 先渲染不透明物体;
    b. 对半透明物体由远及近进行渲染;
    但是由于对半透明物体进行排序非常困难,更好的办法是将不透明物体和半透明物体分成2个pass分别进行渲染,而在渲染半透明物体的时候,关闭深度测试,这样就不用担心顺序的影响了!

  2. 对于完全透明物体(如草的贴图)
    渲染时FS中如果发现其alpha值为0,小于某个阈值,往往会将其discard掉;
    这时候由于该drawcall含有discard命令,这会导致当前DC的所有FS执行时都不会开启Early-Z(并不是部分FS,因为Early-Z在FS之前进行,如果不执行FS又不知道要不要Discard,所以只能提前全部不做Early-z)。

你可能感兴趣的:(线性代数,算法,ue4)