• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小知喵
博客园    首页    新随笔    联系   管理    订阅  订阅

【WebGL入门】画一个旋转的cube

webgl,入门

最近搜罗了各种资料,发现WebGL中文网特别好用,很适合新手入门:http://www.hewebgl.com/article/getarticle/50

只需要下载好需要的所有包,然后用notepad 就可以开始写代码了, 运行代码我选择的Google Chrome,其实IE也是一样的,纯属个人信仰。

然后对于画cube的话,给出的代码已经非常清晰了:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>canvas { width: 100%; height: 100% }</style>
    <script src="js/three.js"></script>
</head>
<body>
    <script>
        var scene = new THREE.Scene();
  
        var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
  
        var renderer = new THREE.WebGLRenderer();
  
        renderer.setSize(window.innerWidth, window.innerHeight);
  
        document.body.appendChild(renderer.domElement);
        var geometry = new THREE.CubeGeometry(2,2,2);
        var material = new THREE.MeshBasicMaterial({color: 0xF0F000});
        var cube = new THREE.Mesh(geometry, material); scene.add(cube);
        camera.position.z = 5;
        function render() {
            requestAnimationFrame(render);
            cube.rotation.x += 0.05;
            cube.rotation.y += 0.05;
            renderer.render(scene, camera);
        }
        render();
    </script>
</body>
</html>

有写过网站页面的话都知道html的处理就像一个堆栈,看到head就push到栈里,开始处理head的内容,碰到下一个head再pop出来,标志head处理结束。

总体来说,简单的网站页面包括<html><head><body>格式都是固定的,其中代码里面  document.body.appendChild(renderer.domElement);这句话声明此脚本是挂在body下执行的,如果不写这一句,body是不知道这个脚本是给它用的,因此就不会显示脚本里描述的cube的各种活动。

和写unity脚本类似,webgl的图形界面也是需要这三个基本元素构成的。

1.scene

2.camera

3.renderer

然后是声明一个物体对象cube,和new一个变量一样:var cube = new THREE.Mesh(geometry, material); scene.add(cube);其中值得注意的是js喜欢用var来声明变量,因为var和c的(void*)类似,都是可以接收任何类型的,比较灵活。

其中看起来比较奇葩的是color的赋值,用的是16进制,其实0x000000,就相当于0xRGB,每个颜色用两位来表示。

感觉webgl实现和最新的opengl类似,然后现在新兴的微信小程序其实也和H5有着密不可分的关系,所以webgl感觉是一个挺适合前端工程的一套工具。

 

posted @ 2018-04-09 19:08  小知喵  阅读(393)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3