游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1701|回复: 3

紧急求助:视锥剔除问题

[复制链接]

11

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2006-6-8 18:23:00 | 显示全部楼层 |阅读模式
   各位大侠有何好一点的方法吗?我想把物体的AABB盒和视锥的远截面投影到X Z平面,然后判断两个四边形是否想交, 如相交则渲染该对象,   不知这种方法行不行得通,   现在有个问题,  就是不知如何求得远截面的四个顶点的坐标 ,   远截面的中点坐标可以求得,    视线方向和四个则面的夹角不变(已知), 各位想想有什么方法吗?小弟不胜感激 [em10]

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2006-6-8 21:15:00 | 显示全部楼层

Re:紧急求助:视锥剔除问题

通过投影矩阵得到视锥的六个平面,这个任何一本图形学教材里都有提及

11

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-6-8 22:41:00 | 显示全部楼层

Re: 紧急求助:视锥剔除问题

呵呵,,那些书也看过,可能偶太笨了,刚接触游戏引擎这方面,楼上的兄弟可以说清楚点吗?如果视锥的六个面刚开始时都是归一化然后才经过投影矩阵转换到世界坐标的,我是不是每次都直接取那转换后的八个点的坐标就行了?

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-6-8 22:45:00 | 显示全部楼层

Re:紧急求助:视锥剔除问题

楼上的大哥太严厉了。
楼主是初学者吧。
   视锥剔除你想用DX的还是GL的?公式一样,但计算结果略有不同。。因为DX的视锥顶点为合为Vmin = {-1,-1,0} ;Vmax = {1,1,1} ,GL的为 Vmin = {-1,-1,-1},Vmax={1,1,1}.
  由Vmin和Vmax定义的8个顶点从投影空间变换到world空间就再求面法线就行了。。。
实际上就是乘以Inverse(matView*matProj).这是DX的DEMO用的办法,另一种是直接求平面方程的方法,不用 对matViewProj进行Inverse.直接把Vmin和Vmax代入就行了。。
    这两种方法,DX和GL都有DEMO可以看,自己上网找找吧。细节我不再给出了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 16:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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