游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3587|回复: 5

关于遮挡查询的问题

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-9-28 13:58:00 | 显示全部楼层 |阅读模式
有个问题想请教各位。
在三维场景中绘制了一个对象之后(三角网格100-200万),怎样能得到这个对象在给定的视点及视角条件下的可视部分的三角型?
我试了opengl 的遮挡查询,但是我不知道该怎样定义查询对象,我是为整个三角网格定义一个查询对象还是为每个三角形都定义一个查询对象?
还有在提取查询结果时,怎样确定是那个三角型被遮挡?
遮挡查询的效率怎么样?如果三角型有600多万。会不会很慢?

多谢大家的指教,不胜感激!!!

2

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2009-9-28 18:16:00 | 显示全部楼层

Re:关于遮挡查询的问题

这后面有个示例代码,你不妨参考一下:
http://icps.u-strasbg.fr/~marchesin/perso/extensions/ARB/occlusion_query.html

遮挡查询的结果是某个过程实际写入屏幕像素的数量
对于同一个模型的三角形,如果在一个批次完成渲染,遮挡关系判断的意义就不大了
这么多的三角形,一个一个渲染的话效率更加糟糕

建议把多边形拆分,然后用视截体裁减等方法来作剔除

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-9-29 10:59:00 | 显示全部楼层

Re:关于遮挡查询的问题

多谢您的指导!
关于视截体裁剪能否说的详细一些呢?这个视截体裁剪和场景剔除是否一个原理呢?在场景漫游时候用场景剔除能提高效率,但是我做CAD开发,不需要场景漫游等功能。需要一个用鼠标框(套索)选择一部分三角面的功能(透选和不透选),不知道裁剪剔除对我能否适用?觉着好像游戏中关注的对象最小单位是单个物体。
而我这边常需要处理单独的三角形。总之,关于这方面我还比较菜。
再有您说的多边形拆分是怎样的呢?我处理的模型有些是规则的,比如封闭的园,有些是不规则的非凸面体。请指教?
谢谢

2

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2009-9-29 14:11:00 | 显示全部楼层

Re:关于遮挡查询的问题

视截体剔除,就是剔除视截体之外的物体,不送入渲染管线
如你所说,是以物体为单位进行剔除的,对你这种情况不适合

我考虑可以用八叉树的方式管理整个模型的所有多边形,对于拣选效率上有很大的帮助
渲染时候根据可视范围内的三角形信息生成一个渲染批次,一次性渲染到屏幕上

拆分什么的,操作起来比较麻烦,不适用,先不用考虑了

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-9-30 17:09:00 | 显示全部楼层

Re: 关于遮挡查询的问题

如果我把所有的三角形组织成八叉树的结构,
那么在给定的视角下,我怎样利用这个八叉树来判断遮挡关系呢?
再有,对于780万三角形的对象,生成一个八叉树,内存开销应该不会小吧。
平时编程2,3百万还可以,一到6,7 百万就经常出现内存不足的情况。
我总觉着在我现有的技术条件下,好像挺难一次处理这么多三角面的,现在还有没有其他的
什么技术? 比如用GPU 能不能加速啥的?
请你指教!

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-10-10 10:51:00 | 显示全部楼层

Re:关于遮挡查询的问题

Mwolf
兄弟还在吗?能否给个联系方式呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-20 04:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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