关于OpenGL中实现子模型选择的问题

seniorbb 2009-04-15 08:32:31
用OpenGL通过导入3DS文件,那么怎么控制3DS文件中的某一个子模型?
用OpenGL自己画图,可以用seletion/feedback机制来人为管理特定的图元,但如果是导入的3D图元呢?怎么让单个的模型实现变换?
我还在学习中, 谢谢各位牛哥,帮我看看这个问题。
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
seniorbb 2009-04-19
  • 打赏
  • 举报
回复
感觉taxi 的想法还是选择机制配合轨迹的做法啊。 游戏里都是这样做的吗?
seniorbb 2009-04-19
  • 打赏
  • 举报
回复
谢谢各位的帮忙,我分不多,加了100。。。P_hantom, 谢谢你给我的两个方案。
我会按zwqxin的思路试试看。再次谢谢!
taxi 2009-04-18
  • 打赏
  • 举报
回复
每个子模型你可以访问到吗,如果可以给每个子模型生成一个包围体,拾取的时候生成一条光线,如果光线和子模型的包围体相交则拾取到了,游戏一般都是这么做的。
zwqxin 2009-04-18
  • 打赏
  • 举报
回复
其实也不一定要VBO,只要你另外给一个容器装入子模型(Object,ID是0X4000)的数据就可以了。(还得搞清楚哪个OBJECT对应哪个子模型)
但是你要有很好的控制的话,这些数据最好包括顶点材质颜色纹理UV等等,不然就“分不开”了。。。。
说到底其实就是分别装入子模型和其他部分,。。。

小声:或者在3DSMAX里把原MODEL先删子模型,保存为MODEL1,然后把原MODEL子模型外其余部分删了,保存为MODEL2,再分别导入好了。。。- -
IONPhantom 2009-04-16
  • 打赏
  • 举报
回复
VBO是后来OGL2.0以后加入的东西,如果不用VBO的话,你就需要把模型的两个Object的顶点分别保存
seniorbb 2009-04-16
  • 打赏
  • 举报
回复
谢谢你的回复,你讲的是我想要的。可是VBO我似乎没有什么概念。。我真是一只菜鸟。。呵呵。
IONPhantom 2009-04-16
  • 打赏
  • 举报
回复
你所谓的子模型是可以独立为一个Object的吗?

根据我的理解你的问题应该是这样的:
画一个方块可以导出为一个模型,也可以画两个方块,这两个方块是不相关的,但是还是可以做为一个模型导出,两个方块公用一个坐标系,而不是每一个方块有自己独立的坐标系,你想单独控制其中一个方块.
我理解的对吗?

如果是这样的话可以实现单独控制其中一个,但是很复杂,而且逻辑性不强,不适于封装,最好不要这么做.我说一下如何实现.
想实现上面这样单独对每一个方块的进行控制首先要得到两个方块自己独立的顶点缓冲(DX里叫VertexBuffer,OGL里好像叫VertexBufferObject),然后对每个独立的顶点缓冲定义一个世界坐标系变换矩阵,其实还是要把一个模型中的两个方块独立为两个Object.当实现到这一步的时候模型的 概念已经没有了,剩下的只是两个 Object.

现在你就可以对单独的Object进行变换了

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧