几天终于基本搞定了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系统了
最新推荐文章于 2024-07-18 10:57:55 发布
本文详细介绍了Shader系统的整体设计及OpenGLRendererGLSL的实现过程。包括VS/PS/GS的分离设计及其组合方式,以及shaderManager的设计思路。通过策略模式实现了资源管理系统的灵活性。
2522

被折叠的 条评论
为什么被折叠?



