HTML5 Canvas炫酷宇宙黑洞引力特效

当前位置:主页 > Html5库 > html5 canvas > HTML5 Canvas炫酷宇宙黑洞引力特效
HTML5 Canvas炫酷宇宙黑洞引力特效
分享:

    插件介绍

    black-hole.js是一款效果非常炫酷的模拟宇宙黑洞引力特效的js插件。该插件基于HTML5 canvas,使用WebGL、 glfx.js和 numeric.js 共同制作完成。其效果是在鼠标滑过图片时鼠标区域形成黑洞效果,使它周围的空间坍缩。

    浏览器兼容性

    浏览器兼容性
    时间:04-14
    阅读:
简要教程

black-hole.js是一款效果非常炫酷的模拟宇宙黑洞引力特效的js插件。该插件基于HTML5 canvas,使用WebGL、 glfx.js和 numeric.js 共同制作完成。其效果是在鼠标滑过图片时,鼠标附近区域形成黑洞空间效果,使它周围的空间坍缩,效果非常逼真。

该黑洞引力特效插件使用numeric.js来计算所需要的数值的微分方程解。numeric.js是一个包含有许多有用的数学公式的js库,关于该js库的信息可以参考Numeric官方文档,你还可以尝试在线使用numeric.js。插件中使用了numeric.dopri()函数,该函数使用Dormand-Prince RK方法执行一个ODE(常微分方程)数值积分,这个函数将使用一个ODE并输出大量合适的ODE约束点序列,然后就可以绘制相应的点。

另外,该宇宙黑洞特效插件使用glfx.js来应用WebGL渲染黑洞引力的效果。glfx.js可以使我们非常容易的在2D图像上创建非常有意思的特效,如漩涡效果和胀形透镜效果等。这个黑洞效果使用GLSL着色器来创建。

宇宙黑洞

使用方法

HTML结构

该插件使用一个<div>作为canvas的占位容器即可。

<div id="canvas_placeholder"></div>                
              
创建调用

调用该插件之前首先要引入必要的依赖文件。

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeric/1.2.6/numeric.js"></script>
<script src="./black-hole.min.js"></script>                
              

然后可以通过下面的方法来调用该黑洞特效插件。

<script>
  var corsOkImageUrl = 'https://s3-us-west-2.amazonaws.com/ccrosland-share-bucket/black-hole/milkyway.jpg';
  BlackHole.blackHoleifyImage('canvas_placeholder', corsOkImageUrl)
</script>                
              

你也可以指定一些参数来改变黑洞引力效果。

<script>
  BlackHole.blackHoleifyImage(placeholderId, corsOkImageUrl, {
    distanceFromBlackHole: 70, // 80 is default
    polynomialDegree: 3, // 2 is default
    numAngleTableEntries: 2000, // 1000 is default. More might improve quality but impact performance
    fovAngleInDegrees: 60, // 73 is default. Yeah, it's an unusual choice, but it just looked cool, ok?
  });
</script>                
              

更多关于该黑洞引力特效的制作方法请参考:http://cliffcrosland.tumblr.com/post/115981256393/black-hole-js