美文网首页程序员让前端飞
Three.JS 学习笔记——简介

Three.JS 学习笔记——简介

作者: 仰简 | 来源:发表于2018-12-06 18:19 被阅读6次

一、前言

Three.js (github) 是一个纯 JavaScript 实现的 3D 渲染库,其在前端 3D 渲染的地位不言而喻,看其在 github 上的 start 4.6 k,fork 1.7 k 这个量级便知道了。准确来说 ThreeJs 是一个基于 WebGL 的封装,而 WebGL 就是前端界的 OpenGL。

二、Github 首页解读

1.简介

该项目的目的是创建一个易于使用,轻量级的3D库。该库提供Canvas 2D,SVG,CSS3D和WebGL渲染器。
Examples: 真的是史上见过最全的例程,良心良心啊,不过没有文档说明,也没有注释。捂脸.jpg
Document: 文档也是非常的齐全了,同样是良心作品。
其他链接有兴趣的可以自己去探求一下。

2.使用

首先在自己的页面中安装或者以模块的方式进行导入,再或者自己可以进行源码编译并导入。

<script src="js/three.min.js"></script>

下面是github首页给的一个小例子,有兴趣的可以拿来运行一下,改改里面的参数,感受一下 3D 的世界。

var camera, scene, renderer;
var geometry, material, mesh;

init();
animate();

function init() {
        // 创建一个相机
    camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
    camera.position.z = 1;
       // 创建场景
    scene = new THREE.Scene();
       // 创建一个3D Box 几何体
    geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
    material = new THREE.MeshNormalMaterial();
        // 创建 mesh 并添加到场景中
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );
        // 创建一个 WebGLRenderer 并加入到上下文中
    renderer = new THREE.WebGLRenderer( { antialias: true } );
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );

}

function animate() {

    requestAnimationFrame( animate );

    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;

    renderer.render( scene, camera );

}

不想自己敲代码的,也可以看看 github 中提供的 jsfiddle 中绘制出来的效果。没法搞出一个 gif 出来,只得到一个 jpg,凑合着看看?

Box.png

除了 GitHub 首页,其还提供了一个官网 https://threejs.org/,官网提供了 document 入口,源码下载地址或者直接下载,同时也有许多非常炫丽的产品展示。尤其亮瞎我钛金眼的法拉第FF,真是吃了好大一个鲸 —— ff 91 vr

image.png

三、源码基本结构

1.本地调试源码

(1) npm install 安装依赖
(2) npm run dev 在本地起一个服务

成功后,如下会在本机开启一个 8080 端口,然后你就可以愉快的在本机体验所有的 demo 效果了。

控制台输出

[HTTP] Starting up http-server, serving ./
[HTTP] Available on:
[HTTP]   http://127.0.0.1:8080
[HTTP]   http://192.168.31.175:8080
[HTTP] Hit CTRL-C to stop the server

2.基本结构

浏览器输出上面的 http 地址,如 http://127.0.0.1:8080,注意必须要用 http/https 协议,否则例程里面的模型是不能下载的,即,不支持 ftp。

image.png

然后再来看一下 src 里面都有哪一些模块


ThreeJs 模块图.jpg
模块名 说明
animation 动画模块
audio 音频
cameras 3D 相机
extras 其他
geometrics 基础几何对象
helpers 帮助类
lights 光源
loaders 3D 模型加载器
materials 材质
textures 纹理
objects 用于加入到场景中的对象
renderers WebGL渲染,glsl 定义
scenes 场景
core 属性,几何,3D对象,光线跟踪等
math 向量,矩阵等

相关文章

  • Three.JS 学习笔记——简介

    一、前言 Three.js (github) 是一个纯 JavaScript 实现的 3D 渲染库,其在前端 3D...

  • 3D世界

    前言最近在学习three.js,以下是我的笔记。 相关概念了解 1.WebGL与Three.js 1.1什么是We...

  • 书架选书Tween补间动画应用--Apple的学习笔记

    Three.js模拟书架选书显示书名--Apple的学习笔记我说过,学习example后,会进行些美化改造。之前做...

  • 使用Three.js+requestAnimationFrame

    前言 最近几天事情很多,学校在教育评估,不能在宿舍待着,因此笔记也就没做了。但对于Three.js的学习还算不错,...

  • 【Docker学习笔记(三)】Dockerfile解析

    【Docker 学习笔记目录】 【Docker学习笔记(一)】简介、核心概念、安装以及常用命令 【Docker学习...

  • three.js学习笔记(一)

    1、OrthographicCamera 正交投影照相机 2、PerspectiveCamera 透视投影照相机 ...

  • three.js 基础学习笔记

    threeJs 是用来方便快捷创建 3D 视图的库,内部对 WebGL 的接口进行了封装。使得编写代码的过程更加贴...

  • three.js 光与影学习笔记

    越来越感觉和绘画密切相关了,无论是光、影还是体积,都是绘画过程中追求的东西。 光源种类 环境光 先看一张图片 左边...

  • Three.js学习笔记(1)

    前言 由于近期的一些业务需要用到一些webgl的东西,three.js可以说是webgl相关库里最完善的,所以毫无...

  • three.js学习资料整理

    最近在学three.js,特地整理偶然间碰到的学习资料分享给大家,国内除了大公司,专门学习three.js的太少了...

网友评论

    本文标题:Three.JS 学习笔记——简介

    本文链接:https://www.haomeiwen.com/subject/nfmncqtx.html