zoukankan      html  css  js  c++  java
  • WebGL之Threejs概述

    什么是WebGL

    WebGL是在浏览器中实现三维效果的一套规范。

    WebGL能做什么

    游戏、家居、虚拟现实、城市地图、CAD制图等等

    什么是Three.js

    three.js就是使用javascript 来写的,运行在浏览器上的3D程序。three.js是一个封装好的WebGL库,相当于简化了WebGL的操作。

    three.js下载地址

    第一个例子

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style>canvas { width: 100%; height: 100% }</style>
    </head>
    <body>
        <script src="js/three.min.js"></script>
    </body>
    </html>

    在浏览器运行,Console下输入 THREE.REVISION命令,得到版本号

    第一个框架

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style>canvas { width: 100%; height: 100% }</style>
        <script src="js/three.min.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(1,1,1);
            var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
            var cube = new THREE.Mesh(geometry, material); scene.add(cube);
            camera.position.z = 5;
            function render() {
                requestAnimationFrame(render);
                cube.rotation.x += 0.1;
                cube.rotation.y += 0.1;
                renderer.render(scene, camera);
            }
            render();
        </script>
    </body>
    </html>

    四大组件 

    场景(scene)、相机(camera)和渲染器(renderer)、几何体。

    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);

    1、场景

    场景是所有物体的容器,如果要显示一个苹果,就需要将苹果对象加入场景中。

    var scene = new THREE.Scene();

    2、相机

    相机决定了场景中那个角度的景色会显示出来。相机就像人的眼睛一样,人站在不同位置,抬头或者低头都能够看到不同的景色。

    透视相机(THREE.PerspectiveCamera):离视点近的物体大,离视点远的物体小。

    正投影相机:远近都一样大小。

    3、渲染器

    渲染器决定了渲染的结果应该画在页面的什么元素上面,并且以怎样的方式来绘制。

    4、几何体

    几何体就是要显示在场景中的对象。THREE.CubeGeometry

    var geometry = new THREE.CubeGeometry(1,1,1); 
    var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
    var cube = new THREE.Mesh(geometry, material); 
    scene.add(cube);

    WebGL精彩案例:http://www.hewebgl.com/article/getarticle/102

    WebGL中文网

    初级学习视频网址

     

  • 相关阅读:
    如何在一个项目中同时包含mvc建站、webapi接口
    解决api、WebService跨域问题
    mvc接口、webapi、webservice 对比
    云服务器 远程mysql 无法连接
    c#快速写本地日志
    使用筛选器特性标记方法解决webapi 跨域问题
    流量控制(滑动窗口协议)
    解释Windows7“上帝模式”的原理
    Linux网络协议栈(二)——套接字缓存(socket buffer)
    理解MySQL——架构与概念
  • 原文地址:https://www.cnblogs.com/liangtao999/p/12244918.html
Copyright © 2011-2022 走看看