游戏开发论坛

 找回密码
 立即注册
搜索
查看: 937|回复: 0

Ogre内部渲染流程分析系列(1)(原创)

[复制链接]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-2-28 10:29:00 | 显示全部楼层 |阅读模式
关于 OGRE 中的 Renderable  

要理解OGRE引擎,就要理解其中占很重要位置的 Renderable接口,今天先将一部分我分析的内容贴出来。

以下是 Ogre 的代码中的详细说明:

Renderable是OGRE中所有可渲染对象的抽象接口

这个接口抽象出了在渲染管线中的被分组的离散的可渲染对象基本的方法。

此接口的实现类必须是基于单一的材质、单一的世界矩阵(或者是一组通过权重混合的世界矩阵),以及单一的渲染操作。

通过这个说明,应该能明确的是,Renderable 封装了3D世界中被渲染对象的基本属性和数据,这包括:渲染操作,材质属性,光照信息、变换矩阵(四元组)、LOD信息、渲染方式等信息。这些信息在渲染循环中被取出,并应用在图形渲染管线中。其中需要注意的是RenderOperation(渲染操作)对象,它封装了图形硬件的顶点数据和渲染的图元类型,在最终的渲染操作里使用这些数据来进行图元渲染,值得注意的是 RenderOpration 中的保存的顶点信息的类VertexData中是抽象的,它包含了一组硬件顶点缓存数据对象-HardwareVertexBuffer,这个类是从 HardwareBuffer 中继承过来的,这个类包括了 hardware buffer中的抽象操作方法,这里使用了模板方法和抽象工厂等设计模式,每个具体的渲染系统可以实现自己的硬件缓存数据,当然,这当中也一定有HardwareBufferManager,而且具体的渲染系统也要实现这个类,来创建具体的渲染系统相关的数据缓存。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 17:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表