其实 渲染引擎,所有的 步骤无非就是:
在 init里:
创建shader
定义好 要渲染对象的 顶点属性
bind vertex buffer
glClearColor
在Loop循环里:
set uniforms
bind framebuffer
glEnable 各种 管线通道
glDraw 对象
unbind vertex buffer
unbind framebuffer
————————————————
对以上的步骤流程:
Cocos 是面向渲染对象的,而 Horde3D面向的则是渲染接口。即前者面向对象,后者面向接口
什么是 面向渲染对象?
在Cocos中,每个渲染对象都是 一个 node, 那么有一个rootNode,其它的 渲染对象都存在于 以这个 rootNode为根节点的树形结构里
什么是 面向渲染接口?
在Horde3D中,每个渲染对象也是 一个 node,也有一个rootNode,只不过,在"init"里, 每个对象的 属性被 解析(所有的对象都是 以文件的形式被加载,然后通过xml等 被解析)存储在不同的类别的属性里面。 不同类别的属性 代表着 调用的 draw方法也不一样,比如 draw mesh的 一般是 模型类,而 draw overlay 就是简单的logo。
之后,Camera这个对象会定义 多个 stage,每个stage就是一次渲染流程, 这些stage会 命令 渲染类去 执行不同 的draw方法。
draw执行后,各种对象 也就随之被渲染出来了。