快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: 用colladaMax导出DAE的兄弟们,一定记得先去下载cg-toolkit










最近更新:
● wan925446570阁下在讨论区里 发表新主题“怎么配置away3d运行环境啊???...”(20:38:35)
● yanfaqiang阁下在讨论区里 回复“《超简易papervision3D基础 ...”(18:08:41)
● cripel阁下在讨论区里 回复“...”(14:38:04)
浏览主题:关于PV3D视景体的问题

关于PV3D视景体的问题
依梦fighting (2011-05-03 15:56:36)

研究目的:需要计算视景体能显示物体的范围,从而确定从服务器传一定的数据过来(避免传全部数据)。
问题1:PV3D中的视景体范围怎么确定?
若设定视口 宽400,高300,近景面100,远景面5000;
根据相似原理远景面的宽应为400*(5000/100)=20000
                            高应为300*(5000/100)=15000
不过测试结果貌似不是这样的,为什么?
PS:camera的视点位置和camera的坐标(x,y,z)是一致的吗?







flash 3d 研究所 依梦fighting
(2011-05-03 20:41:19)
补充:在网上查到FrustumCamera3D类有个testObject()方法能直接判断物体与视景体相交、相离等关系,可是PV3D的swc中却又找不到FrustumCamera3D类,FrustumCamera3D这个类到底有没有呢?


flash 3d 研究所 fur3
(2011-05-04 13:38:51)
最好是不要这样,因为服务器的速度肯定快不过frustum变换速度。
camera的坐标一般和投射矩阵是反向的,制作时一定注意。很容易昏头。


flash 3d 研究所 fur3
(2011-05-04 13:39:23)
你看看我们pv3d傻瓜包里面有没有这个方法,没有的话可以自行添加。


flash 3d 研究所 依梦fighting
(2011-05-04 15:18:27)
视点位置和camera的坐标不一样吗?那视点又在哪里?viewport的宽高应该是near面的宽高吧


flash 3d 研究所 fur3
(2011-05-04 20:22:27)
这个概念有点混淆,想的有点简单了。 一定要注意三维就是物理上的小孔成像, 也就是实际的物体是相对摄像机倒立着的。
near plane只是近处的裁切面而已,和viewport没有关系。


flash 3d 研究所 依梦fighting
(2011-05-04 20:37:04)
最近被它弄晕了,那"小孔"在哪里呢?camera的坐标的意义呢?望指点。


flash 3d 研究所 依梦fighting
(2011-05-04 20:42:41)
找到了个FrustumCuller类,可以用testObject判断物体是否在视景体内,明明完全显示了,应该是Inside,但测试结果却是Interset?
部分代码如下:
var plane:Plane=new Plane(null,100,100,2,2);
var FC:FrustumCuller=new FrustumCuller();
trace(FC.testObject(plane));



flash 3d 研究所 fur3
(2011-05-05 11:00:30)
有可能的,因为一定要记住,我们在屏幕上看到的,并不一定是实际情况,很有可能和8个切面任何一个相交。


flash 3d 研究所 依梦fighting
(2011-05-05 11:23:10)
这样啊,那我要怎么获得能投影到屏幕上显示的三维空间范围呢?或是判断某个物体是否能显示到屏幕上?
发现源码体系太复杂了,看源码有点困难


flash 3d 研究所 fur3
(2011-05-09 13:47:15)
呵呵,是的啊,这个几句话说不清楚,最好是能买本图形程序的书籍看看,现在书店里这类书还是蛮多的了。


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了