[LayaAirIDE 2.0]Laya2.7.1 shader compileShaderByDefineNames感觉无效了。
在进游戏的时候调用了
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, []);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["BONE"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["TILINGOFFSET"]);在使用的时候感觉还是没预编译到。麻烦帮忙看看,还有个比较复杂的情况,就是预编译太多了有些时候会没效果。
例如:
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["BONE"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["TILINGOFFSET"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, []);这情况 "[]" 这个defineName就没效果,一定要放上面。以前版本是放上面不行。
***
所以两个问题:
1、预编译没效果,使用的时候还在编译一下,之后就可以了。
2、预编译的先后顺序问题导致有些调用了没预编译成功。
麻烦帮忙看看是不是我姿势不对。谢谢
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, []);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["BONE"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["TILINGOFFSET"]);在使用的时候感觉还是没预编译到。麻烦帮忙看看,还有个比较复杂的情况,就是预编译太多了有些时候会没效果。
例如:
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["BONE"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, ["TILINGOFFSET"]);
Laya.Shader3D.compileShaderByDefineNames(curShader.name, 0, 0, []);这情况 "[]" 这个defineName就没效果,一定要放上面。以前版本是放上面不行。
***
所以两个问题:
1、预编译没效果,使用的时候还在编译一下,之后就可以了。
2、预编译的先后顺序问题导致有些调用了没预编译成功。
麻烦帮忙看看是不是我姿势不对。谢谢
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
Laya_XS
赞同来自:
184*****121
赞同来自: