今天看了cg中compositing的内容,觉得使用cg制作3d渲染中的gui骑士可以很简单容易。我的做法是这样的:
1.制作一张GUI的窗口尺寸的图片,要求需要镂空的地方的alpha值为0
2.在opengl 中首先绘制场景
3.使用cg绘制gui:
3.1首先关闭深度缓存(因为要将GUI永远至于表面),然后开启混合,混合方式为(srcalpha,one_minus_src-alpha)
3.2绘制一个在xy片面的单元四边形
3.3在cg 的顶点程序中将这个四边形转换到剪裁空间是将其不满整个-1到1的空间,也就是满屏,并将其贴上第一步生成的图片
3.4在片段程序中映射纹理
4最后关闭混合,开启深度测试
这样这个gui图片就永远浮在窗口之上了。