Three.angularjs下载载

&>&THREE各种格式文件加载合集*Loader.js
THREE各种格式文件加载合集*Loader.js
上传大小:375KB
截止于日THREE官网支持的所有*Loader.js
3MFLoader.js
AMFLoader.js
AssimpJSONLoader.js
AssimpLoader.js
AWDLoader.js
BabylonLoader.js
BinaryLoader.js
BVHLoader.js
ColladaLoader.js
ColladaLoader2.js
DDSLoader.js
FBXLoader.js
GLTFLoader.js
HDRCubeTextureLoader.js
ImageBitmapLoader.js
KMZLoader.js
MD2Loader.js
MMDLoader.js
MTLLoader.js
NRRDLoader.js
OBJLoader.js
OBJLoader2.js
PCDLoader.js
PDBLoader.js
PlayCanvasLoader.js
PLYLoader.js
PRWMLoader.js
PVRLoader.js
RGBELoader.js
STLLoader.js
SVGLoader.js
TDSLoader.js
TGALoader.js
TTFLoader.j
UTF8Loader.js
VRMLLoader.js
VTKLoader.js
WWOBJLoader2.js
XLoader.js
...展开收缩
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
THREE各种格式文件加载合集*Loader.js
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
THREE各种格式文件加载合集*Loader.js1.简单几何体
&&& three.js提供的稍微简单点的几何体包括有:PlaneGeometry(平面)、CircleGeometry(圆形)、ShapeGeometry(塑性)、CubeGeometry(立方体)、CylinderGeometry(圆柱)、TorusGeometry(圆环)、TorusKnotGeometry(画面扭结)、PolyhedronGeometry(多面体)、IcosahedronGeometry(二十面体)、OctahedronGeometry(八面体)、TetraHedronGeometry(四面体)。
&&& 稍微复杂点的几何体包括有:ConvexGeometry(凸面体)、LatheGeometry(扫描体)、ExtrudeGeometry(拉伸几何体)、TubeGeometry(管状体)ParameterGeometry(参数几何体)、TextGeometry(文本几何体)。
2.二维几何体PlaneGoemetry
&&& PlaneGeoemtry是矩形态的平面几何体,初始化也很简单,需要4个参数:
new THREE.PlaneGeometry(10, 14, 4, 4)
&&& 4个参数分别是width、height、widthSegment、heightSegment。其中widthSegment指定矩形的宽度应该划成几段,这里是在width和height方向都划分成4段。如下所示:
3.同时显示几何体的面和网状结构
&&& 可通过THREE.SceneUtils.createMultiMaterialObject来为几何体添加多个材质,从而由显示面的颜色也显示网状结构。实现代码可参考下面:
var meshMaterial = new THREE.MeshNormalMaterial();
meshMaterial.side = THREE.DoubleS
var wireFrameMat = new THREE.MeshBasicMaterial();
wireFrameMat.wireframe = true;
var plane = THREE.SceneUtils.createMultiMaterialObject(new THREE.PlaneGeometry(10, 14, 4, 4), [meshMaterial, wireFrameMat]);
&&& createMultiMaterialObject函数第一个参数是一个几何体对象,第二个参数是材质的数组,可传递多个。其实最终生成的是多个物体,只不过都重叠在一起。
4.CircleGeometry
&&& 很容易理解CircleGeoemtry用来画平面元的。属性包括:
&&& 属性/是否必填/描述&&& radius/是/定义啊圆的半径&&& segments(分段)/否/定义创建圆所有面的数量,最少三个。如果没有指定默认为8&&& thetaStart(起始角)/否/定义从哪儿开始画圆。取值从0到2*PI&&& thetaLength(角度)/否/定义圆要花多大。如果没有指定,默认为2*PI整圆。如果指定为0.5PI则为四分之一个圆
5.ShapeGeometry
&&& PlaneGeometry和CircleGeometry只有有限的方法来定制他们的外观。如果想创建一个自定义的二维图形,可以使用ShapeGeometry。ShapeGeometry没有比的选项可以定制图形。一般都是先创建一个Shape图形。用Shape图形绘图。Shape对象提供的函数绘制函数包括:&&& moveTo(x, y)/将绘图点移动到x、y坐标处&&& lineTo(x, y)/从当前位置绘制一条线到指定的x、y坐标处&&& quadriCurveTo(aCPx, aCPy, x, z)(二次曲面)/定义曲面,可以使用quadraticCurveTo函数或者bezierCurveTo函数绘制曲面。&&& bezierCurveTO(aCPx1, aCPy1, aCPx2, aCPy2, x, y)/画一条曲线。该曲线的绘制是基于两个定义曲线的坐标以及重点坐标(x,y)。起始点是当前位置。&&& splineThru(pts)/该函数沿着提供的坐标集合绘制一条光华曲线。这个参数应该是THREE.Vector2的对象数组&&& arc(ay, ay, aRadius, aSTartAngle, aEndAngle, aClockwise)/画圆或者一段圆弧。圆弧起始于当前位置。ax和ay用来指定圆心与当前位置之间的偏移量。aRadius设置圆大小,而aSTartAgnle和aEndAngle定义圆弧要画多长。布尔aCockwise决定这段圆弧是顺时针还是逆时针&&& absArc(ay, ay, aRadius, aSTartAngle, aEndAngle, aClockwise)/参考arc,其位置是绝对的,而不是相对于当前位置&&& ellipse(aX, aY, xRadius, aStartAngle, aEndAngle, aClockwise))/参考arc。作为补充,通过ellipse函数可以分别制定x轴半径和y轴半径&&& absEllipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise)/参考ellipse描述。起位置时绝对,而不是相对于当前位置的相对值
&&& Shape对象属性holes,通过往这个属性中国添加THEE.Shape对象,你可以在图形中打几个洞。Shape对象本身也有几个辅助函数,可永安里创建几何体。如下所示:
&&& makeGeometry/该函数从shape对象返回一个ShapeGeometry对象&&& createPointsGeometry(divisions)/改函数将图形转换成一个点集。属性divisions分段数定义返回点的数目&&& createSpacedPointsGeoemtry(divisions)/该函数将图形转换为一个点集,但是这一次,分段数是一次性地应用到整个路径上如果用createPointsGeometry或者createSpacedPointsGeometry函数创建一个点集,你可用这些点创建线段&& new THREE.Line(shape.createPointsGeometry(10), new THREE.LineBasicMateial({color: 0xff3333, linewidth: 2})
6.SphereGeometry
&&& 这个几何体非常灵活,可以用来创建所有跟球体相关的几何体。下表中的属性可用来调整结果网格的外观:
&&& 属性/是否必填/描述&&&
&&& radius/否/该属性设置球体的半径
&&& widthSegments/否/指定竖直方向上的分段数。默认为8,最小为2
&&& hieghtSegments/否/指定水平方向的分段数。默认为6,最小为2
&&& phiStart/否/指定从x轴的什么地方开始绘制。取值范围从0到2*PI。默认为0
&&& phiLength/否/指定从phiStart开始画多少。2*PI是整球,0.5*PI是四分之一球
&&& thetaStart/否/指定从y轴的什么地方开始绘制。取值范围从0到PI。默认为0
&&& thetaLength/指定从theata开始画多少。PI是征求,0.5PI只会绘制上半球
7.CylinderGeometry
&&& 创建CylinderGeometry时,没有必须提供的参数。直接调用new THREE.CylinderGeometry()即可创建一个圆柱。属性列表如下:
&&& radiusTop/圆柱顶部尺寸,默认是20
&&& radiusBottom/设置圆柱底部的尺寸,默认是20
&&& height/属性设置圆柱的高度,默认是100
&&& segmentsX/该属性设置沿x轴分成多少段,默认是8.这个数字越大,圆柱越光滑
&&& segmentsY/该属性设置沿y轴分成多少段
&&& openEnded/指定网格的顶部和底部是否封闭。默认为false
8.TorusGeometry
&&& Torus圆环是一种简单的图形,看上去像甜甜圈。创建TorusGeometry没有必须提供的参数。参数列表为:
&&& radius/设置完整环的尺寸,默认为100
&&& tube/设置是管子的半径。默认为40
&&& radialSegments/这个参数设置的是沿圆环长度方向分成的段数。默认是8
&&& tabularSegments/这个参数设置沿圆环宽度方向分成的段数。默认是6
&&& arc/通过该属性值,可以孔子是否绘制一个完整的圆环。默认是 2*PI
9.ConvexGeometry
&&& 通过ConvexGeometry可以在一组点的外面建立一个凸面。所谓凸面就是包围这组点的最小图形。如下面的代码,创建了一组随机的点,使用new THREE.ConvexGeometry(points)初始化这个包面图形。
function generatePoints(){
var points = [];
for(var i = 0; i & 20; i++){
var randomX = -15 + 30 * Math.random();
var randomY = -15 + 30 * Math.random();
var randomZ = -15 + 30 * Math.random();
points.push(new THREE.Vector3(randomX, randomY, randomZ));
spGroup = new THREE.Object3D();
var material = new THREE.MeshBasicMaterial({color: 0xff0000, wireframe: true});
points.forEach(function(point){
var sphereGeometry = new THREE.SphereGeometry(0.2);
var mesh = new THREE.Mesh(sphereGeometry, material);
mesh.position.copy(point);
spGroup.add(mesh);
scene.add(spGroup);
var hullGeometry = new THREE.ConvexGeometry(points);
hullMesh = createMesh(hullGeometry);
scene.add(hullMesh);
10.TubeGeometry
&&& TubeGeometry沿着一条三维样条曲线拉伸出一根管道。你可以通过指定顶点来定义路径,然后TubeGeometry就可以创建这根管子。如下面的代码:
function generatePoints(points, segments, radius, radiusSegments, closed){
spGroup = new THREE.Object3D();
var material = new THREE.MeshBasicMaterial({color: 0xff0000, transparent: false});
points.forEach(function(point){
var spGeom = new THREE.SphereGeometry(0.2);
var spMesh = new THREE.Mesh(spGeom, material);
spMesh.position.copy(point);
spGroup.add(spMesh);
scene.add(spGroup);
var tubeGeometry = new THREE.TubeGeometry(new THREE.SplineCurve3(points), segments, radius, radiusSegments, closed);
tubeMesh = createMesh(tubeGeometry);
scene.add(tubeMesh);
&&& points是一组Vector3集合,但TubeGeometry不能直接使用,必须要转换成THREE.SplineCurve3创建样条。而且这个参数是比传的。其他属性如下列表:
&&& 属性/是否必须/描述
&&& path/是/该属性用一个THREE.SplineCurve3对象指定管道应当遵循的路径
&&& segments/否/管道所有的分段数。默认64.路径越长,指定的分段数应该越多
&&& radius/否/管道半径,默认为1
&&& radiusSegments/否/管道圆周的分段数。默认是8.分段数越多,管道看上去越圆滑
&&& closed/否/如果为true,管道的头和尾会连起来。默认为false
11.textGeometry
&&& text几何体的创建代码可参考如下:
this.asGeom = function(){
scene.remove(text1);
scene.remove(text2);
var option = {
size: controls.size,
height: controls.height,
weight: controls.weight,
font: controls.font,
bevelThickness: controls.bevelThickness,
bevelSize: controls.bevelSize,
bevelSegments: controls.bevelSegments,
bevelEnabled: controls.bevelEnabled,
curveSegments: controls.curveSegments,
steps: controls.steps
text1 = createMesh(new THREE.TextGeometry("Learning", option));
text1.position.z = -100;
text1.position.y = 100;
scene.add(text1);
text2 = createMesh(new THREE.TextGeometry("Three.js", option));
scene.add(text2);
&&& 和其他几何体创建方式一样,只是初始化时调用new THREE.TextGeometry对象,第一个参数是传递的文字。第二个参数是几何体的属性。属性列表如下:
&&& 属性/是否必须/描述
&&& size/否/指定文字的大小。默认100
&&& height/否/指定拉伸的程度。默认是50
&&& weight/否/指定字体的权重。可选的值是normal、bold。默认normal
&&& font/否/指定要使用的字体名。默认是helvetiker
&&& style/否/字体样式。可选值包括normal、italic。默认是normal
&&& bevelThickness(斜角厚度)/否/指定斜角的深度。斜角是前后面和拉伸面之间的倒角。默认是10
&&& bevelSegments(斜角分段数)/斜角的分段数。默认是3
&&& bevelSize/否/指定斜角的高度。默认为8
&&& bevelEnabled/否/如果设置为true,就会有斜角。默认为false
&&& curveSegments(曲线分段数)/否/定义拉伸体被分成几段。默认为1.
&&& steps(拉伸体段数)/否/拉伸体被分成多少段。默认为1
&&& extrudePath/否/指定图形沿着什么路径拉伸。如果没有指定,图形沿着z轴拉伸
&&& material/否/定义前后面所用材质的索引。用函数THREE.SceneUtils.createMultiMaterialObject创建网格
&&& extrudeMateria(拉伸材质)/否/指定斜角和拉伸体所用材质的索引。用函数THREE.SceneUtils.createMultiMaterialObject创建网格
12添加自定义字体
&&& Three.js提供了几种可以在场景中使用的字体。这些字体技术是由typeface.js()提供的字体。typeface.js是一个可以将TrueType和OpenType字体转换为Javascript库。转换出来的Javascript文件可以包含在你的页面,然后即可在Three.js中使用。
&&& 要转换已有的OpenType或TrueType字体,可以使用网页。你可以在这个网站上上传一个字体,然后它就会把该字体转化成javascript。要包含这个字体。只要在html页面顶部引用这个javascript文件即可。
13.使用二元操作组合网格
&&& 我们可以把标准的几何体组合在一起创建出一个新的几何体。实现这个功能,我们可以使用Three.js扩展库ThreeBSP。下载地址为:。这个扩展库提供了三个函数:
&&& intersect(相交)/可以在两个几何体的交集上创建出新的几何体。两个几何体相互交叠的地方就是新的几何体
&&& union(联合)/将两个几何体联合在一起创建出新的几何体。可以将这个函数与mergeGeometry函数想比较
&&& subtract(相减)/可以在第一个几何体中减去两个几何体交叠的部分,从而创建出新的几何体
&&& 下面代码是使用ThreeBSP的代码,使用也比较简单:
function redrawResult(){
showSpinner();
//异步执行,避免锁定线程
setTimeout(function(){
scene.remove(result);
var sphere1BSP = new ThreeBSP(sphere1);
var sphere2BSP = new ThreeBSP(sphere2);
var cubeBSP = new ThreeBSP(cube);
var resultBSP;
switch(controls.actionSphere){
case "subtract":
resultBSP = sphere1BSP.subtract(sphere2BSP);
case "intersect":
resultBSP = sphere1BSP.intersect(sphere2BSP);
case "union":
resultBSP = sphere1BSP.union(sphere2BSP);
case "none":
if(!resultBSP) resultBSP = sphere1BSP;
switch(controls.actionCube){
case "subtract":
resultBSP = cubeBSP.subtract(resultBSP);
case "intersect":
resultBSP = cubeBSP.intersect(resultBSP);
case "union":
resultBSP = cubeBSP.union(resultBSP);
case "none":
if(controls.actionCube === "none" && controls.actionSphere === "none"){
result = resultBSP.toMesh();
result.geometry.computeFaceNormals();
result.geometry.computeVertexNormals();
scene.add(result);
hideSpinner(spinner);
&&& 要使用运算函数,需要把geometry转换成ThreeBSP对象。代码resultBSP = sphere1BSP.subtract(sphere2BSP)最终的结果是sphere1BSP几何体减去和sphere2BSP重叠的部分后剩下的几何体。
&&& 运算完成后直接调用result.BSP.toMesh()函数即可得到网格。但还需要调用computeFaceNormals和computeVertexNromals函数,这是因为执行二元操作之后,几何体中心店和面的法向量可能会变化。Three.js在着色器中会用到面法向量和顶点法向量。明确地重新计算面和顶点法向量,可保证新生成的对象着色光滑。
阅读(...) 评论()《three.js文档》
:帮助手册,three.js引擎所有的对象及其方法和属性的语法格式,初学查询,开发字典
:大量案例,可以参考学习
:下载文件,three.js引擎文件
:简单可视化图形编辑器,可以类比各种三维建模、渲染软件
&&轻量级开源的JavaScript 3D引擎,传播最广泛的WebGL三维引擎。对WebGL底层的东西进行了封装,让非计算机图形学领域的人也可以实现三维世界
WebGL从应用的角度看,在不同领域差别也比较大。对机械而言更多是侧重于建模,工业设计除了建模外,还要进行仿真渲染,游戏的角色模型更侧重于柔性的人
体、动物体。WebGL的引擎比较多,将来会更多,不可能都要掌握背会,比如你的特长是渲染模型,对于你而言不同的框架,只是具体代码不同而已,但是灯光、环境、贴图的概念
是相同的,代码的思想是相同的。所以本文档会把three.js常用的对象及其属性和方法的使用格式一一呈现,大家开发项目时,可以随时查询
three.js引擎文件夹目录结构
不同版本略有差异,大体相同
build:两个文件,执行代码是相同的,three.js引擎,文件three.js有英文注释,three.min.js是压缩过的three.js,文件较小,适合建站使用,使用src引入three.js文件即可
editor:简单可视化图形编辑器,可以类比各种三维建模、渲染软件,通过index.html进入界面
examples:大量三维案例,曲面模型、水、布料、人体、VR等素材,可以查看源码学习,一些扩展的js框架,例如鼠标旋转零件
src:three.js引擎每个部分单独存放成文件
utils:存放一些辅助工具,例如blender文件夹中文件可以与blender软件结合,是blender有导出json等格式模型的功能
docs:帮助文档,学习查询工具
二、three.js中canvas画布控制
单个canvas画布,比如一个全屏显示的游戏
当在html文档中使用three.js文件创建3D场景时,three.js中一段程序默认在body中插入canvas元素,不需要像使用原生WebGL那样要在body标签里面手动创建canvas画布元素
background-color
画布背景颜色
画布透明度
//在style标签里创建style样式即可,下面代码全屏显示
canvas { width: 100%; height: 100% }
一个页面插入多个canvas画布,比如基于WebGL的3D电商页面展示多个可以在线预览的3D商品模型
//创建一个canvas标签的容器
&div id="div" style="width: 200height: 200px"& &/div&
//选择创建的div元素块
var obj=document.getElementById("div");
//three.js引擎的构造函数WebGLRenderer创建的渲染器对象renderer,具有domElement属性,该属性的值就
是一个canvas对象,利用appendChild方法就可以实现在页面某个区域插入canvas画布。
obj.appendChild(renderer.domElement);
三、场景Scene
构造函数Scene()
创建一个场景对象,可以向场景里面添加网格模型、灯光等对象
var Scene = new THREE.Scene();
雾实例,默认空
overrideMaterial
autoUpdate
background
背景,默认空
以JSON格式返回场景数据
构造函数Fog( hex, near, far )
hex:十六进制颜色参数
创建一个场景对象,可以向场景里面添加网格模型、灯光等对象
雾实例,默认空
设置颜色,如果方法函数的参数是黑色,极限远处物体是黑色
fog开始影响的最短距离,默认1
超过某个距离不在计算和应用,默认1000
返回一个参数相同的fog实例/p>
以JSON格式返回fog数据
构造函数FogExp2( hex, density)
hex:十六进制颜色参数
雾指数,密度随距离指数变化
FogExp2实例,默认空
设置颜色,如果方法函数的参数是黑色,极限远处物体是黑色
密度变化速度,默认0.00025
超过某个距离不在计算和应用,默认1000
返回一个参数相同的FogExp2实例/p>
以JSON格式返回FogExp2数据
四、几何体Geometry
构造函数BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments)
创建一个长方体
width — X方向长度
height — Y方向长度
depth — Zx方向长度
widthSegments — X方向分段数,默认1
heightSegments — Y方向分段数,默认1
depthSegments — Z方向分段数,默认1
//长宽高均为1的立方体
var Box = new THREE.BoxBufferGeometry( 1, 1, 1 );
parameters
输出一个对象//{width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined}
geometry.parameters
开发业余时间,会不定期更新,同时完善总结不到位的内容,如果那些内容不够完善,大家可以加QQ群提出来,WebGL和three.js交流群:,
本站版权所有,本站任何内容未经允许不得转载&&&
QQ群: (WebGL-Three.js教程)&& &&& 邮箱:Access denied | threejs.org used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (threejs.org) has banned your access based on your browser's signature (42a99d-ua98).Java1234官方群21:
Java1234官方群21:
《Three js开发指南》PDF 下载
《Three js开发指南》PDF 下载
提醒:假如百度云分享链接失效,请联系站长,我会补上的。
《Three js开发指南》PDF 下载
图书简介:
《Three.js开发指南》
  首部全面讲解Three.js开发的实用指南,循序渐进讲解Three.js的各种功能
  通过大量交互式示例,深入探索使用开源的Three.js库创建绚丽三维图形的实用方法和技巧
相关截图:
图书目录:
第1章 用Three.js创建你的第一个三维场景
1.1 使用Three.js的前提条件
1.2 获取源代码
1.2.1 用Git克隆代码仓库
1.2.2 下载并解压压缩包
1.2.3 测试示例
1.3 创建HTML页面框架
1.4 渲染并展示三维对象
1.5 添加材质、灯光和阴影
1.6 用动画扩展你的首个场景
1.6.1 引入requestAnimation-Frame()方法
1.6.2 转动方块
1.6.3 弹跳球
1.7 使用dat.GUI库简化试验
1.8 使用ASCII效果
第2章 使用构建Three.js场景的基本组件
2.1 创建场景
2.1.1 场景的基本功能
2.1.2 在场景中添加雾化效果
2.1.3 使用材质覆盖属性
2.2 使用几何和网格对象
2.2.1 几何对象的属性和函数
2.2.2 网格对象的函数和属性
2.3 选择合适的相机
2.3.1 正投影相机和透视相机
2.3.2 让相机在指定点上聚焦
第3章 使用Three.js里的各种光源
3.1 探索Three.js库提供的光源
3.2 学习基础光源
3.2.1 AmbientLight&影响整个场景的光源
3.2.2 PointLight&照射所有方向的光源
3.2.3 SpotLight&具有锥形效果的光源
3.2.4 DirectinalLight&模拟远处类似太阳的光源
3.2.5 使用特殊光源生成高级光照效果
第4章 使用Three.js的材质
4.1 理解共有属性
4.1.1 基础属性
4.1.2 融合属性
4.1.3 高级属性
4.2 从简单的网格材质(基础、深度和面)开始
4.2.1 简单表面的MeshBasic-Material
4.2.2 基于深度着色的MeshDepthMaterial
4.2.3 联合材质
4.2.4 计算法向颜色的MeshNormalMaterial
4.2.5 为每个面指定材质的MeshFaceMaterial
4.3 学习高级材质
4.3.1 用于暗淡、不光亮表面的MeshLambertMaterial
4.3.2 用于光亮表面的MeshPhongMaterial
4.3.3 用ShaderMaterial创建自己的着色器
4.4 线段几何体的材质
4.4.1 LineBasicMaterial
4.4.2 LineDashedMaterial
第5章 学习使用几何体
5.1 Three.js提供的基础几何体
5.1.1 二维几何体
5.1.2 三维几何体
第6章 使用高级几何体和二元操作
6.1 ConvexGeometry
6.2 LatheGeometry
6.3 通过拉伸创建几何体
6.3.1 ExtrudeGeometry
6.3.2 TubeGeometry
6.3.3 从SVG拉伸
6.3.4 ParametricGeometry
6.4 创建三维文本
6.4.1 渲染文本
6.4.2 添加自定义字体
6.5 使用二元操作组合网格
6.5.1 subtract函数
6.5.2 intersect函数
6.5.3 union函数
第7章 粒子和粒子系统
7.1 理解粒子
7.2 粒子、粒子系统和BasicParticleMaterial
7.3 使用HTML5画布格式化粒子
7.3.1 在CanvasRenderer类里使用HTML5画布
7.3.2 在WebGLRenderer中使用HTML5画布
7.4 使用纹理格式化粒子
7.5 从高级几何体中创建粒子系统
第8章 创建、加载高级网格和几何体
8.1 几何体组合和合并
8.1.1 对象组合
8.1.2 将多个网格合并成一个网格
8.2 从外部资源中加载几何体
8.3 以Three.js的JSON格式保存和加载
8.3.1 保存和加载几何体
8.3.2 保存和加载场景
8.4 使用Blender
8.4.1 在Blender中安装Three.js导出器
8.4.2 在Blender里加载和导出模型
8.5 导入三维格式文件
8.5.1 OBJ和MTL格式
8.5.2 加载Collada模型
8.5.3 加载STL、CTM和VTK模型
8.5.4 展示蛋白质数据银行中的蛋白质
8.5.5 从PLY模型中创建粒子系统
第9章 创建动画和移动相机
9.1 基础动画
9.1.1简单动画
9.1.2 选择对象
9.1.3 用Tween.js做动画
9.2 使用相机
9.2.1 轨迹球控件
9.2.2 飞行控件
9.2.3 翻滚控件
9.2.4 第一人称控件
9.2.5 轨道控件
9.2.6 路径控件
9.3 变形动画和骨骼动画
9.3.1 用变形目标制作动画
9.3.2用骨骼和蒙皮制作动画
9.4使用外部模型创建动画
9.4.1 用Blender创建骨骼动画
9.4.2从Collada模型中加载动画
9.4.3从雷神之锤模型中加载动画
第10章 加载和使用纹理
10.1在材质中使用纹理
10.1.1加载纹理并应用到网格
10.1.2使用凹凸贴图创建皱纹
10.1.3使用法向贴图创建更加细致的凹凸和皱纹
10.1.4使用光照贴图创建假阴影
10.1.5用环境贴图创建虚假的反光效果
10.1.6高光贴图
10.2纹理的高级用途
10.2.1定制UV映射
10.2.2重复映射
10.2.3在画布上绘制图案并作为纹理
第11章 定制着色器和渲染后期处理
11.1设置后期处理
11.1.1创建EffectComposer对象
11.2后期处理通道
11.2.1简单后期处理通道
11.2.2 使用掩膜的高级效果组合器
11.2.3 用ShaderPass定制效果
11.3 创建自定义的后期处理着色器
11.3.1 定制灰度图着色器
11.3.2 定制位着色器
11.4 总结
第12章 用Physijs在场景中添加物理效果
12.1 创建可用Physijs的基本Three.js场景
12.2 材质属性
12.3 基础图形
12.4 使用约束限制对象移动
12.4.1 用PointConstraint限制两点间的移动
12.4.2 用HingeConstraint创建类似门的约束
12.4.3 用SliderConstraint将移动限制到一个轴
12.4.4 用ConeTwistConstraint创建类似球销的约束
12.4.5 用DOFConstraint实现细节的控制
12.5 总结
下载地址:
电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍:
(责任编辑:小锋)
------分隔线----------------------------
《JavaScript基础教程(第8版)》PDF 下载...
《DOJO权威指南(中文版)》PDF 下载...
《JAVASCRIPT语言精髓与编程实践》PDF 下载...
《JavaScript脚本特效编程给力起飞》PDF 下载...
《HTML5游戏开发实践指南》PDF 下载...
《锋利的JQuery》PDF 下载...
关注Java1234微信公众号
免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除,如果喜欢请购买正版资源!原作者如果认为本站侵犯了您的版权,请QQ告知,我们会立即删除!}

我要回帖

更多关于 angularjs下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信