1 下载Three.js代码

https://github.com/mrdoob/three.js/tree/master/build

2 引用方法

在HTML中添加以下代码:

<script type="text/javascript" src="js/three.js"></script>

3 定义Canvas元素

手动定义Canvas元素(WebGL渲染的需要)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>1</title>
<script type="text/javascript" src="js/three.js"></script>
<script>
function init() { }
</script>
</head>
<body onload="init()">
<canvas id="mainCanvas" width="400px" height="300px"></canvas> </body>
</html>

4 定义三大件

三大件指创建一个典型的Three.js程序中至少应包含的三个基本元素:渲染器、场景和照相机。

4.1 渲染器(Renderer)

4.2 场景(Scene)

4.3 照相机(Camera)

他们之间的关系

  场景就像一个舞台,上面可以放各种各样的东西

  渲染器就像舞台上的灯光,它决定了观众看到的东西是是什么样的效果

  照相机就像观众的眼睛,观众站的位置不一样,看到的舞台上的东西也不会完全相同

  而舞台上的东西则需要通过  scene.add() 来放上去

本节完整代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>1</title>
<script type="text/javascript" src="js/three.js"></script>
<script>
function init() {
// 定义三大件
var renderer = new THREE.WebGLRenderer( // 定义渲染器
{
canvas:document.getElementById('mainCanvas') // 与手动定义的Canvas的id的名字一致
/* 也可以通过three.js自行生成Canvas元素
renderer.setSize(400,300);
document.getElementsByTagName('body')[0].appendChild(renderer.domElement); */
}
);
renderer.setClearColor(0x000000); // 将背景色设为黑(清除图像) var scene = new THREE.Scene() // 定义场景 var camera = new THREE.PerspectiveCamera(45,4/3,1,1000); // 定义一个透视投影照相机
camera.position.set(0,0,5); // 设置照相机的坐标
scene.add(camera) // 将照相机添加进场景中 }
</script>
</head>
<body onload="init()">
<canvas id="mainCanvas" width="400px" height="300px"></canvas> </body>
</html>

 注:本系列Three.js文章主要为《Three.js入门指南》的学习笔记以及一些个人理解,欢迎交流讨论,感谢作者张雯莉~

 OVER~

Three.js的开始(附代码)_2的更多相关文章

  1. 三种动态加载js的jquery实例代码另附去除js方法

    !-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js&quo ...

  2. Promise入门到精通(初级篇)-附代码详细讲解

    Promise入门到精通(初级篇)-附代码详细讲解 ​     Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. ​     Pr ...

  3. 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

    一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...

  4. 分享5种风格的 jQuery 分页效果【附代码】

    jPaginate 是一款非常精致的分页插件,提供了五种不同风格的分页效果,支持鼠标悬停翻页,快速分页功能.这款插件还提供了丰富的配置选项,你可以根据需要进行设置. 效果演示      源码下载 各个 ...

  5. [JS]以下是JS省市联动菜单代码

    以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...

  6. js文字向上滚动代码

    js文字向上滚动代码 <style>.pczt_pingfen_jhxs_news1{ width:397px;  background:#edfafd; padding-top:2px; ...

  7. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  8. Js弹性漂浮广告代码

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  9. PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

    PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...

  10. c#万能视频播放器(附代码)

    原文:c#万能视频播放器(附代码) c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的 ...

随机推荐

  1. PHP0025:PHP 博客项目开发2

  2. ES6中map数据结构

    key值可以任意值或对象,value值可以是任意值或对象 let json={ name:'eternity', skill:'java' }; let map=new Map(); map.set( ...

  3. Node.js文档-os

    获取操作系统相关信息 引用 const os = require('os') os.cpus() 获取当前机器的CPU信息 console.log(os.cpus()) 打印结果: [ { model ...

  4. PostgreSQL内核学习笔记十一(索引)

    Index Scan涉及到两部分的内容Heap Only Tuple和index-only-scan. 什么是Heap Only Tuple(HOT)? 例如:Update a Row Without ...

  5. spring的困惑--org.springframework.web.servlet.DispatcherServlet noHandlerFound

    出现这种情况可能是代码没有更新到Tomcat服务器上

  6. WebGL_0004:带贴图的材质透明效果

    在材质中: "blendType": 2,

  7. P1527 [国家集训队]矩阵乘法 [整体二分]

    权值排序,整体二分,没了. // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y ...

  8. 安全 - CORS(脚本请求等)

    功能概述 出于安全原因,浏览器限制从脚本内发起的跨域HTTP请求 或 拦截了跨域请求的结果. 例如,XMLHttpRequest和Fetch API遵循同源策略. 这意味着使用这些API的Web应用程 ...

  9. 题解 AT4164 【[ABC102A] Multiple of 2 and N】

    首先我们先来回忆一下小学一年级就学过的知识:任何一个偶数都是 \(2\) 的倍数,那么我们就可以分成两种情况考虑:奇数和偶数. 对于偶数,我们可以直接将其输出,因为它必定能被 \(2\) 与它自己整除 ...

  10. Docker最全教程——从理论到实战(二十三)

    如何节约云端成本? 上云在大部分情况下就是为了降低成本,在这方面,主流的容器服务基本上都能够有效地降低成本——不仅能够高效自动化的管理和控制容器,而且不需支付Kubernetes 主节点的费用.不过, ...