[0]运行时启用shader宏定义无效

引擎版本:3.0.7。
测试 DEMO 见附件。
 
期望结果:
通过代码来启用【ENABLE_PINGPONG】这个宏定义后,场景中的 Cube 会一直变换颜色。
p.s.: 若直接在材质的细节设置面板中勾选该宏,可以达到以上效果。但我们希望是运行时启用或禁用该宏,以便根据设备的性能来开关某些计算。
 
当前意图启用宏定义的代码如下:

微信截图_20231026195114.png

 
已邀请:

Laya_Fred

赞同来自:

您好,这个问题您将Main.ts的第88行,传入的defName改为def就可以了,shaderValue需要传入一个shaderDefine的值而不是名字,上面的const def已经获取到了shaderDefine的值了,下面传入即可;方法一中使用Shader3D._configDefineValues需要没有指定场景才能用到这里,具体可以看下RenderElement类里面的compileShader方法处理。如下图:
1.png

 

要回复问题请先

商务合作
商务合作