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

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

只须要下载好须要的全部包,而后用notepad 就能够开始写代码了, 运行代码我选择的Google Chrome,其实IE也是同样的,纯属我的信仰。前端

而后对于画cube的话,给出的代码已经很是清晰了:web

<!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>canvas

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

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

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

1.sceneapp

2.cameradom

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感受是一个挺适合前端工程的一套工具。

相关文章
相关标签/搜索