1
OrthographicCamera(left, right, top, bottom, near, far);
透视投影 近大远小
1234
THERE.PerspectiveCamera(fov, aspect, near, far);// aspect = width/height// fov 是视景体// far > near
THERE.CubeGeometry(width, height, depth, widthSegments, heightSegments, depthSegments);
THERE.PlaneGeometry(width, height, widthSegments, heightSegments);
THERE.SphereGeometry(radius, segmentsWidth, segmentsHeight, phiStart, phiLength, thetaStart, thetaLength);
THERE.CircleGeometry(radius, segments, thetaStart, thetaLength);
圆柱形/圆台/无顶面底面
THERE.CylinderGeometry(radiusTop, radiusBottom, height, radiusSegments, heightSegments, openEnded);
正四面体、正八面体、正二十面体 radius/detail
THERE.TorusGeometry(radius, tube, radialSegments, tubularSegments, arc);
TextGeometry
自定义形状 3D-Max 创建模型,Therejs导入场景
THERE.Geometry();
基本材质 BasicMaterial
渲染后物体的颜色始始终为该材质的颜色
Lambert材质
不适用金属、镜面
new THERE.MeshLambertMaterial({});// Color 材质对光的反射能力// ambient 对环境光的反射能力// emlssive 材质的自发光颜色
Phong材质
符合Phong光照模型的材质,考虑了镜面反射的效果 Ispecular = ks * Is * (cos(alpha))^n
new THERE.MeshPhongMaterial({});
new THERE.MeshNormalMaterial({});
材质的纹理贴图
Mesh 由顶点、边、面等组成的物体 1 Mesh(geometry, material); // THERE.Mesh 基础自THERE.Object3D 位置 position 缩放 scale 旋转 rotation $6. 动画 库:观测每秒帧数 FPS ,每秒30~60之间 setInterval setInterval 12 renderer.renderer(scene, camera);clearInterval requestAnimationFrame 若你想在浏览器下次重绘之前继续更新下一帧动画,那么回调函数自身必须再次调用 window.requestAnimationFrame() 时间较为敏感的环境 但动画逻辑更加复杂 stat.js 记录FPS FPS和每帧渲染时间 1 new State(); $7. 外部模型 人或动物的复杂模型 以3ds Max为例 OBJLoader(); 有材质的模型 导出材质模型 $8. 光与影 环境光、平行光、点光源、聚光灯 12 THERE.AmbientLight(hex);// 依赖ambient,对应通道反射对应颜色的光 点光源 到不同物体表面的亮度是线性递减的 1234 THERE.PointLight(hex, intensity, distance);// hex 颜光值// intensity 亮度,默认1// distance 光源最远照射的距离,默认0 平行光 对于任意平行的平面,平行光照射的亮度都是相同,与平面所在位置无关 1 THERE.DirectionalLight(hex, intansity); 聚光灯 类似圆锥形的光线 123 THERE.SpotLigth(hex, intensity, distance, angle, exponent);// angle 聚光灯的张角,默认Math.PI/3, 最大值为Math.PI/2// expoent 光强在偏离target的衰减指数,默认10 能形成: THERE.DirectionalLight 与 THERE.SpotLight ,参数因光源定 能表现: THERE.LamberMaterial 与 THERE.PhongMaterial renderer.shadowMapEnabled = true 光源及所有产生阴影物体 xxx.castShadow = true 接收阴影的物体调用 xxx.receiveShadow = true 阴影的深浅 shadowDarkness 范围是0到1,越小越浅
Mesh 由顶点、边、面等组成的物体
Mesh(geometry, material); // THERE.Mesh 基础自THERE.Object3D
position
scale
rotation
库:观测每秒帧数 FPS ,每秒30~60之间 setInterval setInterval 12 renderer.renderer(scene, camera);clearInterval requestAnimationFrame 若你想在浏览器下次重绘之前继续更新下一帧动画,那么回调函数自身必须再次调用 window.requestAnimationFrame() 时间较为敏感的环境 但动画逻辑更加复杂 stat.js 记录FPS FPS和每帧渲染时间 1 new State(); $7. 外部模型 人或动物的复杂模型 以3ds Max为例 OBJLoader(); 有材质的模型 导出材质模型 $8. 光与影 环境光、平行光、点光源、聚光灯 12 THERE.AmbientLight(hex);// 依赖ambient,对应通道反射对应颜色的光 点光源 到不同物体表面的亮度是线性递减的 1234 THERE.PointLight(hex, intensity, distance);// hex 颜光值// intensity 亮度,默认1// distance 光源最远照射的距离,默认0 平行光 对于任意平行的平面,平行光照射的亮度都是相同,与平面所在位置无关 1 THERE.DirectionalLight(hex, intansity); 聚光灯 类似圆锥形的光线 123 THERE.SpotLigth(hex, intensity, distance, angle, exponent);// angle 聚光灯的张角,默认Math.PI/3, 最大值为Math.PI/2// expoent 光强在偏离target的衰减指数,默认10 能形成: THERE.DirectionalLight 与 THERE.SpotLight ,参数因光源定 能表现: THERE.LamberMaterial 与 THERE.PhongMaterial renderer.shadowMapEnabled = true 光源及所有产生阴影物体 xxx.castShadow = true 接收阴影的物体调用 xxx.receiveShadow = true 阴影的深浅 shadowDarkness 范围是0到1,越小越浅
库:观测每秒帧数 FPS ,每秒30~60之间
FPS
setInterval
12
renderer.renderer(scene, camera);clearInterval
requestAnimationFrame
若你想在浏览器下次重绘之前继续更新下一帧动画,那么回调函数自身必须再次调用 window.requestAnimationFrame() 时间较为敏感的环境 但动画逻辑更加复杂
window.requestAnimationFrame()
FPS和每帧渲染时间
new State();
OBJLoader();
环境光、平行光、点光源、聚光灯
THERE.AmbientLight(hex);// 依赖ambient,对应通道反射对应颜色的光
点光源 到不同物体表面的亮度是线性递减的
THERE.PointLight(hex, intensity, distance);// hex 颜光值// intensity 亮度,默认1// distance 光源最远照射的距离,默认0
平行光 对于任意平行的平面,平行光照射的亮度都是相同,与平面所在位置无关
THERE.DirectionalLight(hex, intansity);
聚光灯 类似圆锥形的光线
123
THERE.SpotLigth(hex, intensity, distance, angle, exponent);// angle 聚光灯的张角,默认Math.PI/3, 最大值为Math.PI/2// expoent 光强在偏离target的衰减指数,默认10
能形成: THERE.DirectionalLight 与 THERE.SpotLight ,参数因光源定 能表现: THERE.LamberMaterial 与 THERE.PhongMaterial
THERE.DirectionalLight
THERE.SpotLight
THERE.LamberMaterial
THERE.PhongMaterial
renderer.shadowMapEnabled = true
xxx.castShadow = true
xxx.receiveShadow = true
shadowDarkness