cesium源码研究关于ShaderSource的replaceMain方法巧妙用处
Posted hpugisers
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cesium源码研究关于ShaderSource的replaceMain方法巧妙用处相关的知识,希望对你有一定的参考价值。
在做底层扩展开发的时候,有时候我们想从外部传入一段shader代码,那该如何将该段shader代码加入main函数中呢?最笨的方法就是利用正则表达去截取字符串,然后加上需要添加的shader代码,最后将所有的字符串拼装到一起。下面利用cesiun自带的功能去处理这个问题。
1、如何使用
第一步
shader = ShaderSource.replaceMain(shader, 'czm_light_main');
第二步(以main方式去构建自己需要添加的shader代码)
//这里可以定义的变量
void main()
czm_light_main(); //注意和上面replaceMain函数中第二个参数保持一致
//这里添加你增加shader代码
原理:是将之前main函数用一个自定函数替代,然后申明新的main函数,在新的main函数中,执行自定义函数。
以上是关于cesium源码研究关于ShaderSource的replaceMain方法巧妙用处的主要内容,如果未能解决你的问题,请参考以下文章
cesium源码研究之VertexArray(VAO对象)生成的两种方式