请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 96|回复: 0

Model 构建的 SceneObject 是如何和底层 Mesh 通信的? [复制链接]

Rank: 8Rank: 8

注册时间
2016-12-2
积分
148
发表于 2018-1-11 11:30:18 |显示全部楼层
题目有点长,请听我细说。

在 KlayGE 中,如果要绘制多个物体基于同一个 StaticMesh,假设有 Model matrix 和 color 不同。
StaticMesh 构建的 renderable 是底层绘制的单元。其实 StaticMesh 和 顶层 基于 RenderModel 创建的 SceneObject 有一定距离。由于 CreateMeshFunc() 等的存在,为 StaticMesh 直接赋予属性非常不方便。

我想让 RenderModel 的颜色和位置不同,颜色和位置的量存在于 RenderModel 构建的 SceneObjectHelperDerived,它是 SceneObjectHelper 的子类。而 渲染的时候,AddInstance() 函数保存的是 StaticMesh 的 Renderable 和它构建的 SceneObjectHelper,如何根据不同的实例动态地切换 shader 中的变量?

因为 renderable 必须通过 instance_[i]->parent() 来获取 SceneObjectHelperDerived 的指针,这里,我不能确定的是 RenderModel 树是否只有两层。

那么,不同实例的 color 和 model matrix 在哪里交给 renderable 比较合适呢?我考虑的是前向渲染,可能有什么地方不妥,麻烦龚大考虑一下。

最近看过此主题的会员

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

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2018-1-22 14:28 , Processed in 0.016866 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部