目录
前言
实现了一个用于注册自定义效果(Effect)的 代码,用于 xr-frame框架中。这个效果的核心功能是去除场景中的黑色部分,或者说是对视频纹理进行处理
实现思路
获取 XR 框架系统:
const xrFrameSystem = wx.getXrFrameSystem();
这里通过 wx.getXrFrameSystem()
获取了 XR 框架系统对象 xrFrameSystem
,它提供了对 XR 场景的管理和操作接口。
注册自定义效果
xrFrameSystem.registerEffect('removeBlack', scene => {
// 自定义效果的实现
});
使用 xrFrameSystem.registerEffect
方法注册了一个名为 'removeBlack'
的自定义效果。这个效果会在指定的场景中生效。
创建效果对象
scene.createEffect({
name: "removeBlack",
images: [{
key: 'u_videoMap',
default: 'white',
macro: 'WX_USE_VIDEOMAP'
}],
defaultRenderQueue: 2000,
passes: [{}],
shaders: [/* GLSL 代码 */]
});
name: "removeBlack"
:效果的名称,标识这个效果。images
:定义了效果中使用的纹理图像。key: 'u_videoMap'
:纹理的键名,用于在 GLSL 代码中引用。default: 'white'
:默认的纹理颜色为白色。macro: 'WX_USE_VIDEOMAP'
:定义了一个宏,用于在 GLSL 代码中条件编译。
defaultRenderQueue: 2000
:设置渲染队列的优先级,值越大越靠后渲染。passes
:定义渲染效果的各个渲染通道。shaders
:包含顶点和片段着色器的 GLSL 代码。