几天终于基本搞定了Shader系统了(整体设计以及OpenGL Renderer GLSL的实现) .基本设计思路还是以前的架子,只是把VS/PS分开了。并加上了GS的接口,和一般分开设计不同的是,vs/ps/gs必须组合到一个GPU Program上才可以使用(比如link/setParamater等)。这个是GLSL的一些限制。后来想想也是挺合理的。
另外一个问题是shader Manager, shaderManager 基本继承了以前的基于template的resource manager系统。好在我的系统是基于策略的 我可以简单的为shader object设计一个管理的base class把这个base class 作为template的参数, 这样往外暴露的时候,根本不存在template。 需要注意的是从base class到那个template转化的时候一定要用dynamic_cast<>不然会挂掉的
基本搞定了Shader系统了
最新推荐文章于 2021-05-27 07:36:48 发布