|
|
关于设置子实体材质的问题,请赐教。
在Ogre的第二个DEMO:Cel Shading中遇到如下困惑,请赐教:
该程序中有如下代码:
// skin
sub = ent->getSubEntity(1);
sub->setMaterialName("Examples/CelShading");//使用一个材质名称设置子实体的材质。
sub->setCustomParameter(CUSTOM_SHININESS, Vector4(10.0f, 0.0f, 0.0f, 0.0f));//设置自发光。
sub->setCustomParameter(CUSTOM_DIFFUSE, Vector4(0.0f, 0.5f, 0.0f, 1.0f));//设置漫反射光。
sub->setCustomParameter(CUSTOM_SPECULAR, Vector4(0.3f, 0.5f, 0.3f, 1.0f));//设置镜面反射光。
代码中关于CUSTOM_SHININESS、CUSTOM_DIFFUSE、CUSTOM_SPECULAR定义如下:
// Custom parameter bindings
#define CUSTOM_SHININESS 1
#define CUSTOM_DIFFUSE 2
#define CUSTOM_SPECULAR 3
我的问题:
1、在以上代码的注释说明部分是我对函数功能的理解,不知我的理解是否正确。
2、setMaterialName()函数形参是一个字符串型对象,请问这个字符串与材质文件的映射关系是怎么样的?这个字符串即非文件名,也非纹理名称故产生了此困惑。
3、setCustomParameter()函数的用法看不明白,请问此函数的参数设置是否与Ogre无关,需要跟据显卡或其它什么条件来填写参数?请问这个函数该如何使用?
请赐教。
|
|