# 效果
几何数据 提供了渲染的原材料,材质 决定了渲染的方式,但在讨论材质之前,我们要讨论一下其基于的效果 Effect。
效果可以认为是一个材质模板,通过光照模式lightMode和宏定义definition来对模板的各个功能进行开关 樱花视频在线。
# 内置效果
详见 内置效果资源。
# 定制一个效果
___JX5_PROTECTED_code_4___
在效果的参数中,首先是其名字name 樱花视频高清,然后是其能允许的属性properties和images。
樱花视频网站 - # 定义属性
属性对应后续生成材质的uniforms的定义,每个property都需要一个键key,类型type和对应于类型的默认值,而每个image则不需要type,默认值也是已经注册到了资源系统的纹理的资源id 樱花视频免费观看。
这里特别要注意在那个marco参数,它定义了当用户修改设置(通过材质的接口)了这个属性后,将会开启的宏 樱花视频网站,这个宏会直接应用到着色器中。
注意,所有的外部设置的宏都必须以
WX_开头, 为了让整个渲染正常运作,框架内置了一些属性和宏,可见文章末尾的附录 樱花视频。
"樱花视频免费观看" # 渲染队列
由defaultRenderQueue定义的渲染队列,决定了渲染顺序 樱花视频在线,将在下一章材质中详细论述。
透明物体需要大于
2500!
# 配置Pass (樱花视频免费观看)
Pass对应的是使用了基于这个效果的材质的网格的一次渲染,这个和相机组件相关,使用哪个pass渲染取决于相机当次绘制指定的lightMode 樱花视频高清。
lightMode是光照模式,目前建议只能使用一个模式ForwardBase,当存在多个pass都使用了同一个光照模式时,将会按顺序将网格渲染多次 樱花视频免费观看。
renderStates顾名思义即渲染状态,渲染状态直接对应底层图形API都会提供的一系列概念,比如混合blend,深度depthTest等,比如示例里就定义了blendOn: false,即表明要关掉混合 樱花视频网站。
更多的渲染状态可见API文档IRenderStates,这里不赘述,这里主要要说明一个规则 樱花视频,即useMaterialRenderStates这个参数的作用。
在xr-frame框架的设计中,渲染状态是由效果决定默认值,材质决定最终值的,而useMaterialRenderStates则就是用于决定材质是否能够覆盖效果默认值的,如果为false,则总是使用效果提供的默认值,如果为true,则由下面会讲到材质的渲染状态的规则来决定。
在配置完这些之后,就是要定制shaders了。这是一个有两个数字的数组,分别指定了顶点着色器和片段着色器在顶层参数中的shaders的索引。
"樱花视频高清" # 编写着色器
效果配置的顶层参数中最后一项是shaders,这是一个字符串数组,每个元素都是一个完整的着色器。着色器使用标准的glsl1语法,这个不属于教程范畴不再赘述。
我们提供了一些内置可用的着色器的函数,在文章末尾会给出。
# 注册到资源系统
将效果注册到资源系统可用:
___JX5_PROTECTED_code_38___
注册后在schema中类型指定为effect的数据,便可以使用custom这个资源id引用到创建的资源了。