实验四:基于BSP技术的室内场景渲染和碰撞检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:基于BSP碰撞检测
姓名:班级:学号:
一、实验目
掌握BSP原理;
熟悉Ogre中基于S P法。
二、实验仪器
pc、visual studio 2010
、实验原理 过程
//网上检索BS P相关
//利 Ogre实现基于B SP 程实现 A PI进行详细说明1、BSP相关
(1)BSP
BSP TreesB i nary Space Partio ningtrees 二 二 。 : ; 中光照运算;BSP预 。
(2)BSP原理
顺 判定
BSP:二 。 。 定过 一 B S P。
上 于 件Z Buff er后向前画。
于Z B uffe r前向后 于后画 遮挡而 ZB uffer CUT 而 高。
筛选优化
进行顺 判定 中 上 过筛选。
PVS
减外BSP过进行进一 筛选优化。 理解Por tal: 。Portal于 一 进行 算 算 ;
二 法集合PVS候 同 关
候 PVS 关 。 前 D 候BC过PVS测试 A一 C U T。
(3)BSP
BSP流程:
1) PVS信息;
2) ;
3)判 理;
中 判 上级 。
4) 理( ) 后 理 ; 理 后 理 ;
5) 判 PVS中 进行。
2、程 实现 相API 详细说明
多边 A 一 顶 位于多边 组 一 说多边 A位于多边 “前 ”参考左图。 想象一 一 盒 6 组 朝向盒说盒 一“凸多边 ”朝向盒 盒 “凸多边”。
图1.2
让 一 何确定一 图元集合 否一 “凸多边 ” 伪算法 :
(1) -
参 :
o n –确定一 D 中 相 位置 参考多边 。
–待确定 D 中 。
返 值:
位于多边 哪一边。
功 :
确定一 位于 多边定义 哪一边。
n ce)
else if (n ce)
D
N T
(2) -N T
参 :
o n1 – 来确定 它多边 否“前 ” 多边 。
o n2 –检测 否 一 多边“前 ” 多边 。
返 值:
二 多边 否 一 多边 “前 ”。
功 :
检测 二 多边 一 顶 否 一 多边 “前 ”。
O N-I o n2)
o n2
-N T)
n true
(3) -X-SET
参 :
– 来检测 否“凸多边 ” 图元集合。
返 值:
集合 否 “凸多边 ”。
功 :
相 于集合中 它多边 检 一 多边 否位于它多边 “前 ” 任意 多边 满 规 集合“凸多边 ”。
--)
for h ()
for h ()
-[j]))
n true
-N T中 进行 意味着 多边 位于多边 B“前 ”你 想 认 多边 B一定位于多边B“前 ”。 示 一 。
图1.3
图1.3中 多边1位于多边2“前 ” 顶p3、p4位于多边2“前 ”而多边 却 位于多边 1“前 ” 顶 2位于多边1“后 ”。
e e
{
o de //
}
e
{
e e Tree // 接 属 层次
e r // 位于 多边
// 右
h ild // 左
[] // 中 多边 集合
}
y gon
{
1 // 多边 顶 1
3 // 多边 顶 2
3 // 多边 顶 3
}
现 你 一 多边 顶 来定义件加速 来多边 进行 。 多边 集合小 集合 多 法 你 任意选择 中 一 后 它来 中 多边 进行 把位于 多边 保存 右 中而位于 多边 保存左 中。
法 缺 非常明 想选择一 中 多边 相等 集合 非常困难 中 无 选择 。 何 集合中选择一 最佳 呢?
问题给一 适 解决案。
现 已 一 -N T 它 功 确定一 多边 否位于 它多边
。现 做 修改 它也 确定一 多边 否横跨过 它多边 定义 。算法 :
(4) L ATE-SIDE
参 :
o n1 –确定 它多边 相 位置 多边 。
o n2 –确定相 位置 多边 。
返 值:
多边 2位于多边 哪一边
功 :
过 一 多边 二 多边 上 一 顶 进行检测。 顶 位于 二 多边
多边 2 认 位于多边 “前 ”。 二 多边 顶 位于 一 多边
多边 2 认 位于多边 “后 ”。 二 多边 顶 位于一 多边 上 多边
2 认 位于多边 。最后一 顶 即位于 位于 多边 2 认 横跨过多边 1。
L-o n1, Pol o n2)
e = 0
o n2
-N T)
then e + 1
I FY-D)