`
sungang_1120
  • 浏览: 322691 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

three.js学习之——入门案例

阅读更多

 

1,首先我们应该知道 three.js是做什么的?

hree.js是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能。Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。

 

说白了,他就是基于WebGL 规范的一个可以直接在浏览器呈现3D效果的一个第三方类库,类似于Javascript的Jquery插件。

 

 

下面我们通过一个简单的入门事例来具体说明一下通过three.js在浏览器上呈现一个3D效果的基本流程。

 

创建之前:

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lesson1</title>
<script type="text/javascript" src="../js/threeJs/three.min.js"></script>
<style type="text/css">
div#canvas-frame {
	border: none;
	cursor: move;
	width: 1400px;
	height: 600px;
	background-color: #EEEEEE;
}
</style>
</head>
<body onload="threeStart();">
<!--盛放canvas的容器-->
<div id="canvas3d"></div>
</body>

 

 

 

我们需要几个基本步骤:

真正能够显示有three.js,我们需要三件事:一个场景,一个相机,一个渲染器,所以我们可以用摄像机渲染场景。

 

创建一个场景:

 

var width = document.getElementById('canvas3d').clientWidth;//获取画布「canvas3d」的宽
var height = document.getElementById('canvas3d').clientHeight;//获取画布「canvas3d」的高

//创建一个场景
var scene = new THREE.Scene();
//创建Three相机 three.js提供了 有几种不同的摄像机 这里使用的是THREE.PerspectiveCamera
// 参数说明 : 
//1,视野
//2,长宽比
//接下来的两个属性是远近剪裁平面。
//意味着什么,是物体远离相机比远比附近或接近的价值不会呈现。
//你现在不需要担心这个,但是你可能想要使用其他值在你的游戏来获得更好的性能。
//var camera = new THREE.PerspectiveCamera(75, width/height, 0.1, 1000); 
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);

//渲染器  除了WebGLRenderer我们用在这里  three.js提供了其他
var renderer = new THREE.WebGLRenderer(); 
//renderer.setSize(width, height); //指定渲染器的高宽(和画布框大小一致)
renderer.setSize(window.innerWidth, window.innerHeight)
//document.getElementById('canvas3d').appendChild(renderer.domElement);//追加 【canvas】 元素到 【canvas3d】 元素中。
//renderer.setClearColorHex(0xFFFFFF, 1.0);//设置canvas背景色(clearColor)
renderer.setSize(window.innerWidth, window.innerHeight)


//要创建一个多维数据集,我们需要一个CubeGeometry。
//这是一个对象,其中包含所有的点(顶点)和填充(面临)的多维数据集
var geometry = new THREE.CubeGeometry(1,1,1); 
//除了CubeGeometry,我们需要一个材料颜色
//three.js附带一些材料,但目前我们将使用MeshBasicMaterial
var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
//第三件事,我们需要的是一个Mesh。Mesh是一个对象,
//参数是一个CubeGeometry、材料(material ), 
var cube = new THREE.Mesh(geometry, material); 
//然后我们可以插入到我们的场景中,
scene.add(cube); 
//默认情况下,当我们调用scene.add(),
//我们将添加到坐标(0,0,0)。这将导致相机和cube。为了避免这种情况,我们只是将镜头移出一点。
camera.position.z = 5; 


//渲染场景
//呈现
var render = function () { 
	requestAnimationFrame(render); 
	//旋转
	cube.rotation.x += 0.1; 
	cube.rotation.y += 0.1; 
			
	renderer.render(scene, camera); 
}; 
render();

  

 

 

以上就是一个简单的three.js在浏览器渲染的一个基本的操作过程。本人也是初学者希望对大家有帮助,那里不正确,希望大家共同学习哈。。。

 

效果图如下:(不过没有动画效果)



 

  • 大小: 23.8 KB
分享到:
评论

相关推荐

    Three.js-入门指南(带书签).pdf

    Three.js 是一个基于WebGL的JavaScript库,它简化了在网页上使用WebGL创建和显示3D图形的过程。WebGL是一种Web标准,它允许网页使用硬件加速的OpenGL ES图形API,Three.js就是基于这一技术构建,使开发者能够不直接...

    THREE.JS开发指南及书中案例

    《Three.js开发指南》共12章:第1章讲述使用Three.js库的基本步骤;第2章讲解Three.js库使用过程中所要了解的各种基础组件,包括光源、网格、几何体、材质...并且资源中包含书中的很多案例,又不懂的代码请参照案例学习

    THREE.JS开发指南源码

    这个压缩包包含了作者Branch为Packt出版社的书籍《学习Threejs》更新到three.js版本r63的所有示例代码。 在学习Three.js时,理解源码是提升技能的关键。这份源码包中,你将发现各种各样的3D场景、对象和交互的实现...

    使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip

    使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...

    three.min.js 最全的版本

    《three.min.js:Three.js最全面的版本解析》 在Web开发领域,Three.js是一个非常重要的库,它为开发者提供了一种便捷的方式来创建交互式的3D图形,无需深入理解复杂的WebGL API。"three.min.js"是这个库的压缩版,...

    三维模型-three.js-PCD模型文件,用于three.js显示pcd文件

    在三维可视化领域,Three.js是一个非常流行的JavaScript库,它允许开发者在Web浏览器中创建和展示复杂的3D模型。本资源是关于使用Three.js处理PCD(Point Cloud Data)模型文件的,这是一种常见的3D点云数据格式。在...

    Three.js模型包

    Three.js 是一个非常流行的JavaScript库,专用于在Web浏览器中创建和展示三维图形。它利用 WebGL 技术,使得在网页上实现交互式3D视觉效果成为可能,无需用户安装任何插件。这个"Three.js模型包"包含了各种示例使用...

    three.js. 3D机房项目

    【描述】"使用three.js开发的3D机房项目"意味着项目的核心是three.js,这是一个开源的JavaScript库,专门用于创建和展示3D计算机图形。通过这个项目,开发者可以构建交互式的、高细节度的机房模型,包括服务器、空调...

    three.js加载json三维模型.zip

    在三维Web开发领域,Three.js是一个非常流行的JavaScript库,它为浏览器提供了强大的3D图形渲染功能。本主题将深入探讨如何使用Three.js加载JSON格式的三维模型,以及与BIM(建筑信息模型)相关的应用。 一、Three....

    Three.js入门指南-中文基础教程

    适合初学者 three.js webgl three.js入门 three.js教程 webgl开发

    threejs教学课程文档.zip

    05 Three.js基础之图元 06 图元练习示例 07 图元之3D文字 08 Three.js基础之场景 09 Three.js基础之材质 10 Three.js基础之纹理 11 Three.js基础之灯光 12 Three.js基础之镜头 13 Three.js基础之阴影 14 Three.js...

    blender导出Three.js(.js)插件

    为了确保最佳的性能和兼容性,开发者可能需要密切关注Three.js的更新,适时更新导出工具,或者考虑使用社区维护的更新版本插件,如`blenderio-exporter-threejs`,这是一个更活跃的项目,持续跟进Three.js的最新进展...

    Three.js与arcgis的交互与渲染

    在IT行业中,Three.js是一个非常流行的JavaScript库,用于在Web浏览器中创建3D图形。而ArcGIS则是Esri公司的一款强大的地理信息系统(GIS),用于处理、分析和展示地理数据。当我们谈论“Three.js与ArcGIS的交互与...

    three.js跳动的火焰 流动的河

    three.js是JavaScript的一个流行库,用于在Web浏览器中进行3D图形渲染。这个项目可能是为了展示如何利用three.js的特性来模拟真实世界的物理现象,如火的燃烧和水的流动。 在描述中提到的“很简单的一个效果”,...

    Three.js视频教程源码.rar

    Three.js是基于WebGL的JavaScript库,是目前最流行的浏览器端3D图形渲染库之一,广泛应用于网页游戏、数据可视化、3D建模等领域。本教程围绕"Three.js视频教程源码.rar"展开,深入探讨Three.js的核心概念、使用技巧...

    Three.js配合Webpack的Demo项目

    "threejs-webpack-demo-master"这个压缩包文件很可能包含了以下组件: 1. `src`目录:存放项目源代码,包括入口文件(如`index.js`)、Three.js的使用示例代码、样式表等。 2. `public`或`dist`目录:编译后的输出...

    three.js开发必备(内附开发指南和three.js多版本)

    《three.js开发必备》资源包含了三个关键组成部分:THREE.JS开发指南的PDF文档和多个版本的three.min.js库。这个资源对于想要深入理解和实践three.js的开发者来说是极其宝贵的。 首先,我们来探讨THREE.JS开发指南...

    Three.js + Mapbox 实现泛光效果

    Three.js + Mapbox 实现泛光效果 Three.js + Mapbox 实现泛光效果 Three.js + Mapbox 实现泛光效果 Three.js + Mapbox 实现泛光效果 Three.js + Mapbox 实现泛光效果 Three.js + Mapbox 实现泛光效果 Three.js + ...

    基于three.js + canvas实现爱心代码+播放器效果.zip

    基于three.js + canvas实现爱心代码+播放器效果.zip 基于three.js + canvas实现爱心代码+播放器效果.zip 基于three.js + canvas实现爱心代码+播放器效果.zip 基于three.js + canvas实现爱心代码+播放器效果.zip 基于...

    three.js-r133.zip

    这个名为"three.js-r133.zip"的压缩包,正是Three.js库的一个特定版本——r133。本文将全面解析这个版本中的关键特性,帮助读者深入理解Three.js的精髓,并从中发掘出无限的3D创作潜力。 一、Three.js概述 Three....

Global site tag (gtag.js) - Google Analytics