3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较

3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较,第1张

概述其实 渲染引擎,所有的 步骤无非就是:     在 init里 :    创建shader    定义好 要渲染对象的 顶点属性     bind vertex buffer    glClearColor     在Loop循环里:    set uniforms     bind framebuffer     glEnable 各种 管线通道     glDraw 对象     unbind 其实 渲染引擎,所有的 步骤无非就是: @H_404_3@ 在 init里: @H_404_3@ 创建shader @H_404_3@ 定义好 要渲染对象的 顶点属性 @H_404_3@ bind vertex buffer @H_404_3@ glClearcolor @H_404_3@
@H_404_3@ 在Loop循环里: @H_404_3@ set uniforms @H_404_3@ bind framebuffer @H_404_3@ glEnable 各种 管线通道 @H_404_3@ glDraw 对象 @H_404_3@ unbind vertex buffer @H_404_3@ unbind framebuffer @H_404_3@
@H_404_3@ ———————————————— @H_404_3@ 对以上的步骤流程: @H_404_3@ Cocos 是面向渲染对象的,而 Horde3D面向的则是渲染接口。即前者面向对象,后者面向接口 @H_404_3@
@H_404_3@ 什么是 面向渲染对象? @H_404_3@ 假如 我们渲染一个 对象, 就是严格采用上述步骤流程, 对象 定义好顶点属性后,将上述流程的方法封装 ,属性加方法 就是这个对象。 @H_404_3@ 在Cocos中,每个渲染对象都是 一个 node, 那么有一个rootNode,其它的 渲染对象都存在于 以这个 rootNode为根节点的树形结构里 @H_404_3@ 那么,在 render方法里,就按照这个树形结构进行遍历,然后调用每个节点的 相应方法对每个节点渲染 @H_404_3@
@H_404_3@ 什么是 面向渲染接口? @H_404_3@ Horde3D 在底层中(确切的说 在 RenderBase.h中),定义了 完成上述步骤流程的所有 方法,每个方法都是对 opengl API 和 一些属性的简单封装。 @H_404_3@ 其中,有一系列draw方法,有draw 基本图形的primitive的,有draw logo 这种overlay的,有draw quard的,有 draw lighting的,有draw mesh的 @H_404_3@ 在Horde3D中,每个渲染对象也是 一个 node,也有一个rootNode,只不过,在"init"里, 每个对象的 属性被 解析(所有的对象都是 以文件的形式被加载,然后通过xml等 被解析)存储在不同的类别的属性里面。 不同类别的属性 代表着 调用的 draw方法也不一样,比如 draw mesh的 一般是 模型类,而 draw overlay 就是简单的logo。 @H_404_3@ 之后,Camera这个对象会定义 多个 stage,每个stage就是一次渲染流程, 这些stage会 命令 渲染类去 执行不同 的draw方法。 @H_404_3@ draw执行后,各种对象 也就随之被渲染出来了。 总结

以上是内存溢出为你收集整理的3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较全部内容,希望文章能够帮你解决3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1075372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存