Three.JS第一个三维场景建立

最近在看一些Web3D的内容,觉得如果用纯openGLes写一个简单的3D场景太难了;不过还好,有很多现成的库可以使用。
(个人感觉):我知道的经常的是Three.JS和SceneJS。感觉Three.JS资料比较多,貌似好学一些吧;另一个是ScenenJS,感觉官方介绍比较好,适合做一些工程和医学上的模拟,实时性比较好,但是中文资料感觉比较少,不太好学习。我个人看的是Three.JS

学习中用到的一些工具和库:学习中用到一些库,也费了不少时间去整理,下载;
用到的工具:WebStorm,个人感觉还好,虽然说,开始学不建议IDE,但是起码有代码提示,会有函数的简单说明,起码知道你输入的代码(即使是照着教程抄)是否正确,如果智能提示有,那么至少说明你输入的代码是正确的。

sublimeText :一个文本工具,配置了也可以对代码有些提示,但是,提示功能不如专业IDE。速度很好;
工具不上传了,太大,可以自己去官网下载。

用到的库:
Three.JS(介绍可以搜索):
JQuery-1.9.0.JS:
JQuery-3.2.1.JS:
stats.JS:
dat.GUI.JS:
controlKit.JS:
SceneJS.js:

个人也是初学,工具用的是WebStorm,下面是three.JS的第一个例子,代码中添加了很详细的解释,照着写,仔细看看注释。学习的时候,个人建议把下载到库修改下名字,和你写的HTML文件统一放到一个文件夹中,这样像下面的例子中,添加引用的库就可以了,要不就要指定引用库的全路径。


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Three.js  第一章学习title>

    <script src="jquery19.js">script>
    <script src="three.js">script>
    <script src ="stats.js">script>
    <script src = "dat.gui.js">script>
    <script src = "controlKit.js">script>
    
    <style type="text/css">
        body{
            margin: 0;
            overflow: hidden;
        }
    style>
head>
<body>

<div id="WebGL-output">

div>


<script type="text/javascript">
$(function () {
    
    var  scene = new THREE.Scene();
    
    var  camera = new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,1000);
    
    var  renderer = new THREE.WebGLRenderer();
    
   // renderer.setClearColorHex(0xEEEEEE);
    renderer.setClearColor(0xAAFFCC);
    
    renderer.setSize(window.innerWidth,window.innerHeight);

    
    var  axes  = new THREE.AxisHelper(20);
    scene.add(axes);

    
    
    var planeGeometry = new THREE.PlaneGeometry(100,60,10,10);
    
    var planeMaterial = new THREE.MeshBasicMaterial({color:0xccaacc});
    
    var  plane = new THREE.Mesh(planeGeometry,planeMaterial);
    
    plane.rotation.x = -0.5*Math.PI;
    
    plane.position.x = 15;
    plane.position.y = 0;
    plane.position.z = 0;
    
    scene.add(plane);
    
    
    
    var  cubeGeometry = new THREE.CubeGeometry(4,4,4);
    
    var  cubeMaterial = new THREE.MeshBasicMaterial({color:0xFF0000,wireframe:true});
    
    var  cube = new THREE.Mesh(cubeGeometry,cubeMaterial);
    
    cube.position.x =-4;
    cube.position.y =3;
    cube.position.z = 0;
    
     scene.add(cube);

    
    
    var  sphereGeometry = new THREE.SphereGeometry(4,50,50);
    
    var  sphereMaterial = new THREE.MeshBasicMaterial({color:0xff0000,wireframe:true});
    
    var sphere = new THREE.Mesh(sphereGeometry,sphereMaterial);
    
    sphere.position.x =20;
    sphere.position.y=4;
    sphere.position.z = 0;
    
    scene.add(sphere);

    
    camera.position.x = -30;
    camera.position.y = 40;
    camera.position.z = 30;
    camera.lookAt(scene.position);

    
    $("#WebGL-output").append(renderer.domElement);
    
    renderer.render(scene,camera);
})    ;
script>


body>
html>

效果:

你可能感兴趣的:(Web,3D)