游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2892|回复: 9

请教BSP:内外结合中遇到的空间外表面(?)问题

[复制链接]

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2007-2-26 09:38:00 | 显示全部楼层 |阅读模式
这两天过完春节,脑袋晕晕的,程序也不会写了…… T_T。在内外结合的概念上遇到了一个不太小的问题,希望大家能帮我看看~~

BSP切分本身所切分的必须是内部空间,例如,一个城堡,BSP切分只能切分城堡内部的空间(城堡的各个房间),而不能切分城堡的外部表面(外墙)。这样,直观些,CS和Quake地图全都是严格封闭的空间,没有外墙面,摄像机拉远你看到的还是内部的空间,而看不到这个空间的外表面。

在做内外结合的时候,每一个这样的内部空间,在由四叉树(或者别的什么)描述的外部世界里,必须有一个外墙面:以城堡为例,无论其内部划分得如何诡异,在外部世界,城堡就是一个城堡外墙(?)和内-外结合的Portal。有两个现在有点眉目的方法:

一个是在制作模型的时候,使用一个连整个外墙都包容的大Box,连外墙一起分割了,这个大Box最后不显示就可以了。这个的问题是,内部空间往往简单,但是外墙有时候会做的很有气势感(也就是很复杂),分割会很复杂,划分的空间既诡异又没必要(主要是感觉没必要)。

另一个,另作一套模型(也就是内部空间作一套、外墙作一套),这个就是需要增加美术工作量,而且合的时候会有点郁闷。

我更倾向于用一套模型,而且需要更改的越少越好,因为这样美工最爽(我调试的时候也会很爽,因为现在模型得我自己做 T_T)。但是,晕晕地想不通该怎么做 T_T。

大家有什么好的办法吗?帮帮忙啊……

哦,对,很多东西做的时候没有查资料,因为觉得自己学习,所以什么轮子都自己造一遍,查资料也就查的少了。所以有些东西可能有那么点歪门邪道的意思,术语也不准,给大家造成不便,对不起~

祝大家新年快乐 [em1] [em1] [em1] [em1] [em1] [em1] [em13] [em13] [em13] [em13] [em13]

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-2-26 09:42:00 | 显示全部楼层

Re: 请教BSP:内外结合中遇到的空间外表面(?)问题

提一个数据
在上面说的第一个方法(Box法),一个简单的外墙模型(只有9个面),内部也很简单。最后划分的结果:内部2个Portal,分出了三个空间,外部却有十几个Portal,分出了十多个空间……如果外墙模型复杂一些,可能会更郁闷。
[em5]

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-2-27 09:03:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

自己顶一顶……

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-2-27 10:15:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

我也刚下车。脑袋晕晕的。帮你顶顶。

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-2-27 12:49:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

野猪大大回来了~~ ^_^
拜个晚年~~

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2007-2-27 17:00:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

墙就用一块一块的拼接不就行了

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-2-27 17:30:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

拼接……? ^-^
拼接与否是场景的节点内的元素如何组织的问题,不同类型的节点间怎么办呢?
由于我已经用BSP组织场景室内节点、四叉树组织场景室外节点了,室内也改成拼接,可能会困难些……

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-3-1 11:55:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

自己回答吧。
在网上找了几天资料。感觉应该就是第二种方法,即内外模型分开制作的方法。这种方法还有其他的一些好处。暂按下不说,论文翻译完大家就知道了。
找到了一篇英文论文,正在翻译,祝我好运吧……T_T,最近肚子坏了,连续几天没有力气……唉……

19

主题

73

帖子

73

积分

注册会员

Rank: 2

积分
73
发表于 2007-3-1 13:14:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

我最近也在想这个问题,共同研究研究 :)

1。 用你的方法 2, 但美术做的时候不需要分开做两个模型, 他们还是按一个模型做, 但在做模型的时候,需 要为外墙面提供一个标志(这个不会增加工作量,美术在加一个模型面的时候顺便给它加一个是否是外墙的标志)
这个标志可以按顶点存,fvf中有可以用来存怎么数据的格式,比如 D3DFVF_XYZB1, 我们可以用B1这个位来存这个标志。 模型做完后A:在渲染的时候通过标志来区分内外分别渲染 B 用程序把模型分成内外两个模型,通过标志位把模型分开不难。

2。是否可以这样,同过上面的1我们可以区分内外面,然后还是一个模型,但外部面不做任何切分面,用内部内去
  切分外部面(因为内部面比较简单有规律),不晓得可行不?


只是YY,大家共同讨论

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2007-3-1 15:09:00 | 显示全部楼层

Re:请教BSP:内外结合中遇到的空间外表面(?)问题

您好,感谢您的回帖。
我所说方法2,实现起来可能有多种方法,一种是干脆分开做,这样做的缺点是还需要另外的数据结构来对内外空间进行一一对应,而且也不直观。我更倾向的和你的方法一样,用标志位。至于渲染就不说了,分割能搞定的话,渲染就不成问题了。 ^_^
第二点,我对于外部面的处理还没有想出太好的方案,因为这中间的主要问题我估计可能还是发生在Portal上。
首先,如果不做任何分割,那么,如果遇到一个大外表面模型,就会很郁闷。
然后,如果依据内表面分割,可见面筛选怎么处理?由于外表面根据内表面分割,那么这里肯定需要Portal或者类似的技术来筛选哪些外表面可以看到,哪些外表面看不到吧?因为AABB肯定是不实用的:它无法筛选被遮挡的空间。PVS……还没想好怎么做。再剩下就是Occlusion……听起来不如Portal好,但Portal又该怎么办呢?这里我没想好。

我的邮箱 noslopforever@yahoo.com.cn
blog : blog.csdn.net/noslopforever
最近在看空间切分,请多多指教 ^_^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-13 14:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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