Irrlicht学习之使用着色器

Irrlicht学习之使用着色器

 

         Irrlicht是从2002年开始发布的,那时我想应该还没有成熟的着色器,我记得那时候Direct3D8的着色器是汇编代码,非常难用,而Direct3D9的HLSL还不太为人所知,而OpenGL的着色器GLSL还没有出世。没有着色器,渲染可能非常单调,而且固定渲染模式非常臃肿。但是现在已经大不相同了,Irrlicht也支持非常多的着色器,它们能够为用户呈现出非常满意的效果。于是我也开始尝试使用Irrlicht的着色器渲染模型。

         演示程序和源代码下载地址:这里

         要使用着色器,就要了解这个接口:IGPUProgrammingServices。这个接口是用来设置使用GPU渲染的,它的功能只是载入着色器而已。当着色器载入成功后,会给出一个s32类型的标识符。这个标识符是用来标志着色器类型的。随后呢将这个标识符传入IMeshSceneNode::setMaterialType( )中即可。当然,如果还需要在运行着色器的同时设置一致型变量(uniform)或属性变量(attribute)时,需要创建一个回调函数类继承IShaderConstantSetCallBack接口,并且重载OnSetConstants()函数就好了。需要说明的是,上述的Shader是针对GLSL说的,HLSL我暂时还没有接触。

         我从电子书的源代码中找到了卡通着色器的代码,然后模仿例子进行渲染,结果如下图所示:

Irrlicht学习之使用着色器_第1张图片

你可能感兴趣的:(游戏引擎,Irrlicht)