Monthly Archives: February 2014

OpenGL雾简介

本文主要对OpenGL中雾的计算原理进行介绍,在参考【1】的第6章、 NEHE教程的第16章和第41章都有示例代码。 一. 雾的计算原理 把片断(fragment)颜色和雾颜色以一定比例混合,就能产生雾的效果。比例因子f,主要有三种计算混合因子的方法,如下面的三个等式所示,其中c指的是眼睛坐标与片段中心之间的距离或者是雾坐标,通过等式计算出个的因子f,需要缩放至范围内。 \(f = \frac{{end - c}}{{end - start}}({\rm{GL\_LINEAR)}}\) \(f = {e^{ - (density \cdot c)}}({\rm{GL\_EXP)}}\) \(f = {e^{ - (density \cdot c)}}^2({\rm{GL\_EXP2)}}\) 雾浓度的计算等式 在RGBA模式和颜色索引模式下,都能支持雾的计算,具体可以参考【1】。 二. OpenGL雾相关的API函数 void glFog{f,i}(GLenum  pname,  TYPE  param); void glFog{f,i}v(GLenum  pname,  const TYPE * 

spacer