3D圆环的射线拾取算法

  通常的射线拾取为了保证精度,最后都需要三角形碰撞检测,在圆环体中如果采用这种方法,当曲线平滑度很高时,小三角形的数量膨胀会降低这种算法的效率,本文介绍一种基于球体碰撞的拾取算法。


  原理: 圆环体可以视为由环绕圆环球心一周的一个个圆组成,把这个圆视为一个小球体的过球心的切面时,圆环体可看成一个个的小球组成,射线与圆环碰撞,就会与这些小球碰撞,计算射线与圆环的碰撞点,可以转换为寻找碰撞点最佳的小球。通过观察,我们可以知道射线与球体碰撞点到射线原点距离最短的球体为最佳碰撞小球。(至于证明。。。应该是从比较碰撞点到圆环体距离这个方面入手吧,因为如果碰撞点距离教短时,距离圆环体表面越近,无线接近时,可认为碰撞发生在圆环体表面)


 下面截图是基于此算法实现的一个3D圆环控件:(截图纹理效果没出来,不知道什么原因?)

demo 参考:https://github.com/fallgold/hdr_software_stabilization 或者

http://download.csdn.net/detail/fallgold/6551105



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值