游戏开发论坛

 找回密码
 立即注册
搜索
查看: 988|回复: 0

求助 用视锥的包围球进行裁剪

[复制链接]

2

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2008-3-30 14:03:00 | 显示全部楼层 |阅读模式
有n*m格的地图  n m都是2的倍数
现在要对 地图进行裁剪,使得在视锥外的部分不渲染。算法如下

zr= 1.0 zf = 33.0
宽高比是 4:3
视角是90°


PV0( 4/3,     1,1 )
PV1( -4/3,    1,1 )
PV2( 4/3,    -1,1 )
PV3( -4/3,   -1,1 )
PV4( 4*33/3,  33,33 )
PV5( -4*33/3, 33,33 )
PV6( 4*33/3, -33,33 )
PV7( -4*33/3,-33,33 )
这8个点乘视图矩阵的逆矩阵 的到的应该就是 视锥在世界空间的顶点坐标
PW0,PW1,PW2,PW3,PW4,PW5,PW6,PW7。 然后算出视锥在世界空间的包围球的球心和半径(用d3d的一个函数)

剪切地图网格的时候,用每个网格的包围球与视锥包围球进行比较。得出网格是否可见
if( 球心距离 <= 半径和 )
return true;

请问这个算法是不是有问题?
因为 我在测试的时候发现 当镜头在地图边界附近的时候 边界最外层的 网格有部分没有渲染
如图
发不了图。。。。。。。郁闷!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 15:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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