内容发布更新时间 : 2024/11/15 16:34:48星期一 下面是文章的全部内容请认真阅读。
VMT常见的渲染参数
大部分纯属个人经验,部分参考 维尔福开发者社区Valve Developer Community(VDC) 首先我们来看一组示例渲染参数: VertexLitGeneric {
\\
\\ \
\ \
\
\ \ \ \
\ \//\ \\
\\\ \
\\ \
\ \\\\ \\\
//\//\}
第一行的basemaptexture是必不可少的贴图路径,这个就不多说了,第二个normalmaptexture是法线贴图,第三个phongexponenttexture等会在说明 然后从第四行开始就是各项参数指标了:
第一大类:phong漫反射
$phong 1 严格的说这不叫漫反射,就叫phong着色法,因为phong的某些参数也会影响envmap(环境反射)和rimlight(轮廓光),按照VDC的说法就是phong包含了以上渲染方案,想要模型有点质感的话,此参数必不可少(“”可有可无,但是要打就必须打完,不能只有一半;\ \√\ 1√$phong \√\ \×\ \×) $phongboost 0.75 phong强度指数,数值越大,漫反射强度越大
$phongfresnelranges .1 .5 .2 phong菲涅尔参数,xyz轴的反射强度,分别是第一人称下的左右方向,前后方向和垂直方向,这个参数到底是怎么样工作的到现在我也只可意会不可言传,但基本就是指在移动视角时各个方向的反射强度,如果删掉此参数或者全部调整为0 0 0,模型的漫反射不会由角度的改变而发生变化,质感缺失,envmap也将失效
$phongtint .4 .4 .4 phong反射光色调,VDC原意:3个数值指RGB 的相对大小,所以0 0 0和1 1 1是一样的,但是经我实验看来,前面对,后面错,3个数值的整体大小会影响反射的程度,0 0 0会关闭phong,1 1 1 会比0.1 0.1 0.1 的反射更强烈
$phongalbedotint 1开启模型反照,让basemap来影响phong反射的颜色 $phongalbedoboost 10 反照增强
接下来回到phongexponenttexture,指phong反射指标贴图,也可以理解为高光贴图,有了此贴图,模型各个部位的反射程度会不同,比如你想要枪膛反射得多一点,握把反射的少一点,你就需要此贴图,贴图上亮/白的地方,反射强,暗/黑的地方,反射弱,当然,贴图领域不在本教程内
再就是$PhongExponent 40参数,指phong反射光密度指数,和phongexponenttexture是相似而又相对的,PhongExponent数值越小,反射的密集程度越大,反之越小,与PhongExponenttexture不同的就是,PhongExponent参数不能反映模型不同部位的反光程度,所以质感方面不如有PhongExponenttexture的存在,但PhongExponent参数和PhongExponenttexture不能共存,如果共存,只有PhongExponent参数生效PhongExponenttexture将无效,“//”可将本行命令无效,如果将//划在第一行即“// VertexLitGeneric”将使整个vmt失效,此vmt所指示的模型将透明
接下来就是第二大类,envmap环境反射参数了:
$envmap env_cubemap开启环境反射,此参数将使模型具有一定的金属感,当然不是你用这个参数就会有你想要的效果
$normalmapenvmapmask 1 以法线贴图alpha通道作为环境反射 蒙版/遮罩,此命令和phongexponenttexture有类似的地方,alpha通道暗的地方环境反射弱,亮的地方反射强,当然,你可以不用这条指令,相当于把alpha通道全部填充为白色,那样就会达到“水晶”的效果,如果你不会ps,不懂alpha通道却有自己的喜欢的模型的反光亮瞎眼的,关掉上一条指令即可,即$envmap env_cubemap,另外也不一定是法线贴图做蒙版,也可以是$basemapalphaenvmapmask 1,效果是一样的,这时你就要把法线贴图alpha通道填充到basemap的alpha通道上
$envmaptint .5 .5 .5 环境反射色调,和phongtint同理,不仅可以调整环境反射的颜色,也可以调整环境反射的强度,如果你不使用上一条指令$normalmapenvmapmask的话可以将envmaptint调低点(.01 .01 .01)可去除模型“水晶”效果,此参数可以实现彩色狙击镜片的效果