`
sungang_1120
  • 浏览: 327962 次
  • 性别: 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 入门指南知识点概述 #### 一、Three.js 概述及入门 - **定义**:Three.js 是一款基于 WebGL 的 JavaScript 3D 库,它简化了 WebGL 复杂的操作流程,使开发者能够更加专注于创意与功能实现。 - **...

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

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

    THREE.JS开发指南源码

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

    three.min.js 最全的版本

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

    Three.js 三维模型(一)

    在本文中,我们将深入探讨Three.js,这是一个广泛使用的JavaScript库,用于在Web浏览器中创建和展示3D模型。Three.js是WebGL技术的便捷接口,它使得开发人员无需深入了解底层图形编程,就能轻松构建交互式的三维场景...

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

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

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

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

    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. 3D机房项目

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

    Three.js模型包

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

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

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

    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...

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

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

    three. js的人体解剖图.zip

    Three.js 是一个基于 WebGL 的 JavaScript 库,它为Web开发人员提供了一个在浏览器中创建3D图形的强大工具。这个“three.js的人体解剖图”压缩包,很显然是一个利用Three.js库来展示人体结构的3D可视化项目。下面...

    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开发指南...

Global site tag (gtag.js) - Google Analytics