CG_10.26

上周末把代码重写了,集成了v8,粗略做了点设计,比之前顺畅多了。最近看了不少资料,尤其是翻了BitsquidOurMachinary的Blog,看了一遍Stingary的代码串讲视频,理解起来不吃力,但怎么自己按Command List的思路基于OpenGL组织代码想了一下没想清楚,跟对OpenGL的API不熟悉有关系,目前用的还都是“Naive Loop”的写法,没有任何Batch,左右资源和bind都是per mesh的。另外,对Material和Shader、Mesh、Texture的关系还没理解透彻。得拿一些具体的例子,渲染一下复杂场景才行。

NVIDIA的OpenGL资料都挺好的,不过稍微读一读资料就发觉,不论是engine还是driver,都把基于Command List的Data Oriented的渲染方式作为性能优化手段,而OpenGL如果要支持这种风格,必须要用扩展,但是OpenGL的扩展是比较乱且不一致的,加上苹果已经禁用了OpenGL,Vulkan已经(基本?)成熟,让基于OpenGL考虑高性能设计有点显得徒劳(虽然我并不真的在意性能),所以我在考虑,要不要切到Vulkan,但我现在没有一台PC。

另,掌握OpenGL基础之后,想要精进读这篇《Approaching zero driver overhead(AZDO)》似乎就够了。

Leave a Reply

Your email address will not be published. Required fields are marked *