查看: 2786|回复: 12

相机近切面很小时,如何避免地球花屏现象

[复制链接]

该用户从未签到

发表于 2012-1-12 16:49:01 | 显示全部楼层 |阅读模式
比如一颗卫星距离地球表面很高位置,这时打算近距离观看卫星,自动计算相机参数的情况下可能看不到卫星(卫星不在相机远近切面距离之间)。

设置setNearFarRatio很小或直接设置近切面比较小的时候,出现地球表面花屏或闪烁现象,如何避免呢?

该用户从未签到

发表于 2012-1-12 17:15:21 | 显示全部楼层
实际上你在地球上也看不到卫星。
可以另开一个窗口用做特写,如果需要显示全局图的话,就把距离单位调大。

该用户从未签到

发表于 2012-1-16 09:52:19 | 显示全部楼层
近距离观察卫星时,视点距离地球很远,那么你是可以使用LOD避免这种情况?

该用户从未签到

 楼主| 发表于 2012-1-16 10:31:58 | 显示全部楼层
谢谢楼上两位的答复,但是这个问题和是否lod无关。

比如osg例子程序中,osgsimulation的例子,将飞机绕地球的高度改成地球半径的4倍,飞机的缩放比例为1.0,用跟踪相机NodeTrackball的模式查看,当拉近距离时,远处的地球就会出现花屏现象。

该用户从未签到

发表于 2012-1-16 10:46:26 | 显示全部楼层
与lod无关,但可以lod来解决,这个跟深度缓冲的精度有关,可参考教程区“恋上深度缓存“这篇文章

该用户从未签到

发表于 2012-1-17 17:04:05 | 显示全部楼层
1、从模型改善,不要有重叠面或者相距很近的面
2、从策略改善,例如改变计算远平面的策略,不要用固定值或者太大的值,而是根据实际能看到的范围设定
3、从渲染顺序改善,尽量不要用同一个相机渲染差距很大的物体,而是采取不同的远近平面设置,当然这样做的前提是这两者没有遮挡关系
4、尝试一些其它的方案,例如depth partition,double depth buffer等

该用户从未签到

 楼主| 发表于 2012-2-2 23:57:49 | 显示全部楼层
nearFarGroup_osgsimulation.cpp (11.77 KB, 下载次数: 169)

该用户从未签到

 楼主| 发表于 2012-2-3 09:49:23 | 显示全部楼层
如果看不到图片,可以直接访问图片所在的连接地址....

如果将代码放到工程文件中(可以直接粘贴到osg源码的osgsimulation例子中),鼠标一直拉近物体可以看到要跟踪的物体,旋转某个角度可以看到地球背景。

谢谢关注和留言...

该用户从未签到

发表于 2012-2-3 09:58:51 | 显示全部楼层
depth partition是最完美的方案,并且已经直接集成到viewer当中,可以直接调用(注意必然有损于效率,目前的bug是求交会受到一些影响)

osgearth提供的autocliphandler也没有问题(本质上这是一种计算远平面的新方法),对于地球渲染绰绰有余了

该用户从未签到

 楼主| 发表于 2012-2-6 09:44:44 | 显示全部楼层
测试了一下osg中osgdepthPartition的例子,里面有两个球,r_sun 和 Au的倍数乘以1000.0, 如果将蓝色的球半径改的很小(如r_earth = 10.0),结果还是看不到蓝色的球。比例相差很大depthPartion是不是也不太适合。

在osgEarth中,打算近距离看看发射的卫星,autocliphandler当卫星近距离地球表面的时候效果还满意,当卫星离地球表面很高(如5倍地球赤道半径)同样也看不到了,这个时候绘制的卫星轨道也只能看到一部分。

在osgEarth论坛上咨询那个NearFarGroup类如何用, 结果gwaldron回复
"
NearFarGroup did not work out as planned, so actually I am planning to remove it.

Glenn
Glenn Waldron / @glennwaldron
"

该用户从未签到

发表于 2012-2-7 13:33:18 | 显示全部楼层
关注下~

该用户从未签到

发表于 2012-2-8 09:31:07 | 显示全部楼层
osgdepthPartition这个例子其实过时了,我的新书cookbook里提供了一个新的例子,当然这本书要到3月份全球问世

该用户从未签到

 楼主| 发表于 2012-2-24 11:17:42 | 显示全部楼层
绕了一大圈,原来是z-fighting的现象
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表