Three.js学习笔记 本篇简单列举一下three.js的核心对象。
scenes
scene
三维场景。
Constructor
var scene = new THREE.Scene();
Main Properties
fog
:定义雾影响场景渲染default:null
fog
受雾影响的三维场景。
Constructor
var fog = new THREE.Fog(hex, near, far);
Main Properties
hex
:定义雾的颜色near
:定义雾效果产生的起始点default:1
far
:定义雾效果的结束点default:1000
cameras
OrthographicCamera
正交投影相机
Constructor
var camera = new THREE.OrthographicCamera( left, right, top, bottom, near, far );
Main Properties
left
:相机可视范围的左平面right
:相机可视范围的右平面top
:相机可视范围的上平面bottom
:相机可视范围的下平面near
:相机可视范围最近的位置far
:相机可视范围最远的位置
PerspectiveCamera
透视投影相机
Constructor
var camera = new THREE.PerspectiveCamera( fov, aspect, near, far );
Main Properties
fov
:相机的视角aspect
:相机可视范围的长宽比near
:相机可视范围最近的位置far
:相机可视范围最远的位置
renderers
WebGLRenderer
WebGL渲染器
Constructor
var webGlRenderer = new THREE.WebGLRenderer({
antialias:false,
shadowMapEnabled:flase
});
Main Properties
antialias
:抗锯齿,进行边缘的优化default:false
shadowMapEnabled
:如果想让光源可以生成阴影,需要开启default:false
lights
AmbientLight
影响整个场景的光源,但是没有特定的光线来源。所以不会产生阴影。
Constructor
var light = new THREE.AmbientLight( color, intensity );
scene.add( light );
Main Properties
color
:光源颜色intensity
:光源的光照强度default:1
PointLight
点光源,照向所有方向的光源
Constructor
var light = new THREE.PointLight( color, intensity, distance, decay );
light.position.set( x, y, z );
scene.add( light );
Main Properties
color
:光源颜色intensity
:光源的光照强度default:1
distance
:光源能投射到的最远距离default:0.0
decay
:光沿着距离变暗的程度default:1
shadow
:存储光的阴影所有相关信息
SpotLight
聚光灯光源,锥形灯光
Constructor
var light = new THREE.SpotLight( color, intensity, distance, angle, penumbra, decay )
light.position.set( x, y, z );
//光源产生阴影
spotLight.castShadow = true;
scene.add( light );
Main Properties
color
:光源颜色intensity
:光源的光照强度default:1
distance
:光源能投射到的最远距离default:0.0
angle
:锥形光源的角度max:Math.PI/2
penumbra
:聚光灯的从照射点的衰减速度属性default:0
decay
:光沿着距离变暗的程度default:1
target
:光投射的目标default:position(0,0,0)
shadow
:存储光的阴影所有相关信息castShadow
:如果设为true则生成动态投影default:false
DirectinalLight
模型类似于太阳的距离很远的光源
Constructor
var directionalLight = new THREE.DirectionalLight( hex, intensity );
directionalLight.position.set( x, y, z );
scene.add( directionalLight );
Main Properties
color
:光源颜色intensity
:光源的光照强度default:1
target
:光投射的目标default:position(0,0,0)
shadow
:存储光的阴影所有相关信息castShadow
:如果设为true则生成动态投影default:false
Materials
材质,决定了几何体外表的样子
Types of Material
MeshBasicMaterial
:基础材质,简单地颜色。MeshDepthMaterial
:根据网格到相机的距离计算颜色。MeshNormalMaterial
:根据物体表面的法向向量计算颜色。MeshFaceMaterial
:一个可以为各个表面指定不同颜色的容器。MeshLambertMaterial
:考虑光照效果,创建颜色暗淡不光亮的物体。MeshPhongMaterial
:考虑光照效果,创建光亮的物体。ShaderMaterial
:自定义着色器程序。LineBasicMaterial
:这种材质可用于THREE.Line
。LineDashedMaterial
:创建虚线效果。
Common Main Properties
ID
:用来标示材质。在创建时赋值。name
:通过这个属性赋予材质名称。opacity
:设置材质的透明度。transparent
:是否透明。如果为true
则用opacity
值渲染物体。overdraw
:过度描绘(如果渲染出的物体有缝隙,则可以设为true
)。visible
:设置材质是否可见。side
:决定哪一面应用材质default:THREE.FrontSide(前面)``THREE.BackSide(后面)``THREE.DoubleSide(双侧)
。needsUpdate
:告诉Three.js库材质是否改变了。如果为true
则使用新的材质刷新缓存。
2DGeometries
二维网格
PlaneGeometry
二维矩形
Main Properties
width
:宽度needed
:trueheight
:高度needed
:truewidthSegments
:宽度段数needed
:falseheightSegments
:高度段数needed
:false
CircleGeometry
二维圆
Main Properties
radius
:半径needed
:truesegments
:分段needed
:falsethetaStart
:起始角needed
:falsethetalength
:角度needed
:false
ShapeGeometry
自定义二维图形
包含了众多的绘图函数。
learn more from http://threejs.org/
3DGeometries
三维网格
CubeGeometry
三维矩形
Main Properties
width
:宽度needed
:trueheight
:高度needed
:truedepth
:深度needed
:truewidthSegments
:宽度段数needed
:falseheightSegments
:高度段数needed
:falsedepthSegments
:深度段数needed
:false
SphereGeometry
三维球体
Main Properties
radius
:半径needed
:falsewidthSegments
:宽度段数needed
:falseheightSegments
:高度段数needed
:falsephiStart
:指定x轴从什么地方开始绘制needed
:falsephilength
:指定从phiStart开始绘制多少needed
:falsethetaStart
:指定y轴从什么地方开始绘制needed
:falsethetaLength
:指定从thetaStart开始绘制多少needed
:false
CylinderGeometry
三维圆柱体
Main Properties
radiusTop
:圆柱体顶部尺寸needed
:falseradiusbutton
:圆柱体底部尺寸needed
:falseheight
:圆柱的高度needed
:falsesegmentsX
:设置沿x轴分多少段needed
:falsesegmentsY
:设置沿y轴分多少段needed
:falseopenEnded
:指定网格顶部和底部是否封闭needed
:false
otherGeometry
还有很多高级的几何图形。
learn more from http://threejs.org/
有感而言
好吧我承认罗列了那么多并没有卵用,但是原谅我有点强迫症,总觉得没有这个不完整。
虽然没有列全我还是感到很不爽。