中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 269|回复: 0

Model 构建的 SceneObject 是如何和底层 Mesh 通信的?

[复制链接]
发表于 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|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-4-20 08:52 , Processed in 0.040934 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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