------OGRE材质解析
“伟大航路,我把世界上的一切都放在了那里,有种的话就去领取吧”
这是OGRE中文网的一则广告,我想,无论作为OGRE的学习者还是漫漫人生的一名旅人,这句话都是非常不错的激励语。放在这,是否能够让你隐约看到属于自己的新世界?
简介
l 材质概念
材质是一个很基本的术语,表示你的物体对光的反射方式
l 材质脚本
l 着色器
shader language被定位为高级语言
CG VS GLSL VS HLSL
l Sample_Ocean
1. 资源加载
SampleBrowser.loadResources
GpuProgramTranslator类负责解析脚本,创建对应的HighLevelGpuProgram对象,读取默认的参数
2. 创建GpuProgram
Pass::_load
CgProgram::createLowLevelImpl(HighLevelGpuProgram::createLowLevelImpl):根据(HLSL/GLSL)脚本构建对应的GpuProgram
3. 生成对应的Shader
GpuProgram::loadImpl:GLArbGpuProgram::loadFromSource:生成对应的ShaderID
4. 绑定对应的Shader
SceneManager::_setPass
bindGpuProgram
5. 渲染
SceneManager::updateGpuProgramParameters
Render时指定渲染参数,完成渲染