学习 WebGL 的开源库 Three.js

栏目: 编程工具 · 发布时间: 6年前

内容简介:学习 WebGL 的开源库 Three.js

孙广东  2017.3.4

http://blog.csdn.NET/u010019717

百度 第一个词条是: http://hewebgl.com/ 然后就照着学习呗  , 后面是需要花钱的!

开发环境搭建

VS Code(编辑器)  + python(自带的文件服务器)  + Three.js(WebGL)  库

1、新建一个空的文件夹  “ThreeWebglProject”,然后使用VS Code打开

2、Ctrl + ·   启动终端, 输入命令:  git clone https://github.com/mrdoob/three.js.git 下载Three.js 项目到这个路径下。

3、新建第一个文件:  Test1.html

<!DOCTYPE html>

<html>

<head>

<title></title>

< style > canvas  {  width 100% height 100%  }</ style >

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

</head>

<body>

< script >

var   scene   =   new  THREE.Scene();

var   camera   =   new  THREE.PerspectiveCamera( 75 , window.innerWidth / window.innerHeight,  0.1 1000 );

var   renderer   =   new  THREE.WebGLRenderer();

renderer . setSize (window.innerWidth, window.innerHeight);

document.body. appendChild ( renderer . domElement );

var   geometry   =   new  THREE.CubeGeometry( 1 , 1 , 1 );

var   material   =   new  THREE.MeshBasicMaterial({color:  0x00ff00 });

var   cube   =   new  THREE.Mesh( geometry material );  scene . add ( cube );

camera . position .z  =   5 ;

function   render () {

requestAnimationFrame ( render );

cube . rotation .x  +=   0.1 ;

cube . rotation .y  +=   0.1 ;

renderer . render ( scene camera );

}

render ();

</ script >

</body>

</html>

4、在   资源管理器     中双击这个文件,在浏览器中打开。  我这是不会正常运行的!

你可以在浏览器中  F12   看问题。

5、我解决问题是 使用 Python 自带的文件服务器

还是在  vscode  的终端内输入:   (看你安装了哪个版本就执行哪个命令)

Python2.x   : python -m  SimpleHTTPServer   8000

Python3.x   : python -m  http.server  8000

在浏览器中输入网址:

http://127.0.0.1:8000/

学习 WebGL 的开源库 Three.js

学习 WebGL 的开源库 Three.js

浏览器打开的这个页面   不用关闭,     每次改动完    刷新就行了!

另外两个个  依赖库的下载:

git clone https://github.com/tweenjs/tween.js.git

git clone https://github.com/mrdoob/stats.js/.git

其实就是  Stats.js  和 Tween.js  两个文件有用, 但是如果你不想破环案例的正常使用,可以把他们单独拷贝出来,而不是移动!

可能会有更好的方式, 比如创建一个web 项目?  我不知道怎么弄

可以使用   BootCDN

不下载 这三个模块,  使用在线的!  需要什么包,搜索就行了, 没有的就没有办法了

http://www.bootcdn.cn/three.js/

<scriptsrc="http://cdn.bootcss.com/three.js/r83/three.js"></script>

http://www.bootcdn.cn/stats.js/

<scriptsrc="http://cdn.bootcss.com/stats.js/r17/Stats.js"></script>

http://www.bootcdn.cn/tween.js/

<scriptsrc="http://cdn.bootcss.com/tween.js/r14/Tween.js"></script>

还是划线的例子:

<!DOCTYPE html>

<html>

<head>

<meta charset= "UTF-8" >

<title> ThreeF¶ </title>

<!--<script src="/three.js/build/three.js"></script>-->

< script   src = "http://cdn.bootcss.com/three.js/r83/three.js" ></ script >

< style   type = "text/css" >

div#canvas-frame  {

border none ;

cursor pointer ;

width 100% ;

height 600px ;

background-color #EEEEEE ;

}

</ style >

< script >

var   renderer ;

function   initThree () {

width   =  document. getElementById ( 'canvas-frame' ). clientWidth ;

height   =  document. getElementById ( 'canvas-frame' ). clientHeight ;

renderer   =   new  THREE.WebGLRenderer({

antialias :  true

});

renderer . setSize ( width height );

document. getElementById ( 'canvas-frame' ). appendChild ( renderer . domElement );

renderer . setClearColor ( 0xFFFFFF 1.0 );

}

var   camera ;

function   initCamera () {

camera   =   new  THREE.PerspectiveCamera( 45 width   /   height 1 10000 );

camera . position .x  =   0 ;

camera . position .y  =   1000 ;

camera . position .z  =   0 ;

camera . up .x  =   0 ;

camera . up .y  =   0 ;

camera . up .z  =   1 ;

camera . lookAt ({

x :  0 ,

y :  0 ,

z :  0

});

}

var   scene ;

function   initScene () {

scene   =   new  THREE.Scene();

}

var   light ;

function   initLight () {

light   =   new  THREE.DirectionalLight( 0xFF0000 1.0 0 );

light . position . set ( 100 100 200 );

scene . add ( light );

}

var   cube ;

function   initObject () {

var   geometry   =   new  THREE.Geometry();

var   material   =   new  THREE.LineBasicMaterial( { vertexColors:  true  } );

var   color1   =   new  THREE.Color(  0x444444  ),  color2   =   new  THREE.Color(  0xFF0000  );

// ¿„P(ïå12¹„œr³š

var   p1   =   new  THREE.Vector3(  - 100 0 100  );

var   p2   =   new  THREE.Vector3(   100 0 - 100  );

geometry . vertices . push ( p1 );

geometry . vertices . push ( p2 );

geometry . colors . push color1 color2  );

var   line   =   new  THREE.Line(  geometry material THREE . LinePieces  );

scene . add ( line );

}

function   threeStart () {

initThree ();

initCamera ();

initScene ();

initLight ();

initObject ();

renderer . clear ();

renderer . render ( scene camera );

}

</ script >

</head>

<body onload= "threeStart();" >

<div id= "canvas-frame" ></div>

</body>

</html>

当然了,涉及到复杂的话就没有  办法了, 比如本地的模型资源,声音,纹理,本地其它的脚本, 还是要使用一开始介绍的!


以上所述就是小编给大家介绍的《学习 WebGL 的开源库 Three.js》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘

数据挖掘

(美)Jiawei Han、(加)Micheline Kamber、(加)Jian Pei / 范明、孟小峰 / 机械工业出版社 / 2012-8 / 79.00元

数据挖掘领域最具里程碑意义的经典著作 完整全面阐述该领域的重要知识和技术创新 这是一本数据挖掘和知识发现的优秀教材,结构合理、条理清晰。本书既保留了相当篇幅讲述数据挖掘的基本概念和方法,又增加了若干章节介绍数据挖掘领域最新的技术和发展,因此既适合初学者学习又适合专业人员和实践者参考。本书视角广阔、资料翔实、内容全面,能够为有意深入研究相关技术的读者提供足够的参考和支持。总之, 强烈推荐......一起来看看 《数据挖掘》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试