- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
室内地形(碰撞检测) 本书适合用来做后入门时代的读物,内容详尽,将DX内部的细节特性详细向大家解说。 LUMP机制 3D领域的很多文件格式都采用了“块”机制进行存储。 块机制可能包括树形的(3DS),更多可能是链式的,Lump就是后者的一种。Lump的重要性质是,每个Lump内只能储存Lump的大小和这个Lump所允许的数据结构。 文件格式 文件的概念来源于对信息的长期或永久存储。 所有文件格式都来源于信息,信息是核心,文件格式只不过是表面。 我们首先应清楚渲染BSP会具有哪些信息,这样才能够更好地理解.BSP文件格式 .BSP文件格式:有哪些信息? 任何可渲染物必须首先存储顶点、纹理信息。对于BSP而言,还需要多存储光照图的信息。 在BSP中,这些信息由Face表(用以渲染的最小单位)、LeafFaces索引表(解决共面问题)和Vertex表(真正的顶点数据)来进行处理。 .BSP文件格式:有哪些信息? 作为BSP分割,那么BSP树的信息也应当被记录,这包括: 树节点(节点)信息,由Node表存储。 树节点(叶子)信息,由Leaf表存储。 分割平面,由Plane表存储。 PVS信息,由PVS表存储。 .BSP文件格式:使用 Node表 Leaf表 Plane表 LeafFace表 Face表 Vertex表 查询以进行切分 查询 查询 索引向 索引向 PVS表 查询以进行PVS筛选 用以渲染 室外场景碰撞检测 室外场景碰撞检测的原理相对简单: 碰撞 碰撞 不碰撞 A B A A A B B B 室外场景碰撞检测 方法很多,一个相对较容易理解的方法是,先用大步长逐步检测,发现大步长命中后,再用小步长逐步检测。 BSP场景的碰撞检测 相对室外场景,室内场景的碰撞检测更复杂,内容更多,不能简单靠Y判断就决定最终的结果。 BSP场景的碰撞检测:BRUSH Brush是BSP场景碰撞检测的最小单位,就如Face是渲染的最小单位一样。Brush也是只能挂接到叶子上。 Brush得名的原因,大约是所有场景中的物体都是被“刷”上去的,在制作场景的时候,“刷”是一个惯用语。 BSP场景的碰撞检测:BRUSH Brush分固体和非固体,只有固体Brush需要做碰撞检测,非固体的Brush可能会用作他用,比如渲染水下场景等。 BSP场景的碰撞检测:BRUSH 所有碰撞检测均需要Brush。Brush保留有指向BrushSide表的索引和这个Brush的Side的数量,而每一个BrushSide实际上就是一个平面,这样每个Brush无论形状多么不规则,实际上都可找到若干个BrushSide去描述。 Brush Side Index Brush Side 表 Brush Num Of Brush Sides Plane 表 BSP场景的碰撞检测:线检测 如图,从根开始,我们首先必须依照先后顺序确定线先后穿越那几个叶子,然后依照顺序分别在这几个叶子内部分别进行Brush检测。这有几种情况: 如果S和E全在某个平面的负侧,就只检查负侧节点。否则只检查正侧节点。 对于1的负节点,蓝线跨越了2,这样就必须有一个先后顺序。这里的计算原则是:Start在正,应该先正后负;Start在负,应该先负后正。 节点判断完毕,到叶子后,就可以对叶子的Brush进行判断。 1 2 a b c d 1 2 2 d b c a Distance 2 start Distance 2 end BSP场景的碰撞检测:线检测 思考 1 2 a b c d 1 2 2 d b c a BSP场景的碰撞检测:线检测 答案:跨越1且S在1的负向,先到1负向,这时候检查2,发现在1负向的部分全在2的正向,直接到C。 在1正向的部分跨越2,S在2正向,所以先a后b。 1 2 a b c d 1 2 2 d b c a BSP场景的碰撞检测:叶子判断 相对于节点,叶子判断可能更加复杂一些。 线段必须要和叶子里面所有的Brush进行判断。 如果线段的S和E点在某个Brush某个Side前面,说明根本无碰撞。如果在某个Brush某个Side后面,说明可能在别的地方发生了碰撞。只有S和E跨越了某个Side,才表明线段和这个Side碰撞。 注意Side有个特性,所有Side的方向全都向外。 + - + - + - BSP场景的碰撞检测:叶子判断 .BSP文件格式:BRUSH部分 Brush和Brush Side分别存储于Brush Lump和Brush Side Lump两个块中,只需要将这两个块的数据读出即可。 叶子中保留了Brush的编号,用以解决共Brush问题,这个编号存储于Leaf Brush Lump块中。 Brush的组织方式非常类似于Face的组织方式。 .BSP文件格式:BRUSH部分
您可能关注的文档
最近下载
- 内浮顶罐安全管理规范.pdf VIP
- 最新子宫颈高级别上皮内病变管理的中国专家共识2022(完整版).pdf VIP
- 2025年建筑工程副高面试题及答案.docx VIP
- 2023年嘉兴学院计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 四川省德阳市2023-2024学年高一下学期教学质量监测 化学试卷含答案.docx VIP
- 流量积算仪瞬时流量不确定度评定与流量理论值的误差分析.pdf
- CASS编码、图层、图块名称、属性对照表.pdf VIP
- 2023年浙江万里学院计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 《中国药典》2020年版 二部 注射用水.pdf VIP
- 沈阳建筑大学《计算机网络》2025 学年第二学期期末试卷.pdf VIP
原创力文档


文档评论(0)