咨询电话: 020-88888888
自动Shader优化器glsl_optimizer的编译与使用!
发布于 2024-06-10 06:14 阅读()
glsl_optimizer是一个免费开源的glsl优化器。可以生成GPU无关的shader优化代码。可以进行非常多的优化项目,比如函数内连,死代码删除,常量折叠,常量传递,数学优化等等。
GitHub地址为:
https://github.com/aras-p/glsl-optimizer
我们首先需要编译命令行工具。该工具同时支持VS和XCode工程。但是打开工程我们发现
工具作者只提供了一个测试用例和lib的编译target,没有提供命令行工具的target。
好在SIO2作者提供了一套命令行工具代码。我从SDK中扒出来,放到项目里即可。这样我们就能用上最新版本的glsl_optimizer了。
首先复制名为glsl_optimizer_tests的target,并重命名为glsl_optimizer_bin。
然后在当前target中,打入代码文件main.cpp(文件已上传到附件),并移除代码文件glsl_optimizer_tests.cpp的引用。
然后我们要在main.cpp中设置一下要优化的glsl版本。
1
2
|
|
支持如下参数:
1
2
3
4
5
6
|
|
然后我们就可以编译了。
编译完成后,我们找到生成的二进制程序。将其和待优化的glsl脚本复制到合适位置。
然后使用命令行:
1
2
3
|
|
来调用工具优化shader,该命令非常好懂,不再赘述。
优化之后的控制台显示为:
然后将优化后的脚本复制回项目。编译运行即可看到FPS有一定程度的提升。项目越大shader脚本越多,越复杂,优化效果越明显。
我简单测试一下绘制200个四千多面模型,在iPad mini2上
优化前的效果:
优化后的效果:
新闻资讯
-
上海市人民政府办公厅印发《关于 06-24
-
因工作地有变动了,社保需要转移 06-24
-
习近平:加快推动产业结构、能源 06-24
-
04月27日快船vs独行侠数据 06-24
-
什么时候送孩子出国最合适(深度 06-24
-
我国社会政策的实践特征与社会政 06-24
-
中共中央政治局:适应我国房地产 06-24
-
让AI自己调整超参数,谷歌大脑 06-24