|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# |% v3 D0 \, |" i- g8 F4 w5 L) P5 e9 g# g, b9 ?6 M
官方提供的实例如下 ' d: ?) {0 d( p; }5 [) M
/ a5 t6 Z* H! |6 {/ r, I1 H. v' j
1。 首先在Scene里面激活 渲染 ShadowMap
7 d* B |. n' y: w//Create a WebGLRenderer and turn on shadows in the renderervar renderer = new THREE.WebGLRenderer();renderer.shadowMap.enabled = true;renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap
9 T2 O% Q: z9 b8 z7 q4 Q; d/ A k
# u- ?7 q8 l" c0 u! k# f- B8 M/ b2。 创建平行光,并可以投射Shadow//Create a DirectionalLight and turn on shadows for the lightvar light = new THREE.DirectionalLight( 0xffffff, 1, 100 );light.position.set( 0, 1, 0 ); //default; light shining from toplight.castShadow = true; // default falsescene.add( light );
4 y+ e& k m& u5 O k f
) W. |; G7 ~) u! F" j5 w//Set up shadow properties for the lightlight.shadow.mapSize.width = 512; // defaultlight.shadow.mapSize.height = 512; // defaultlight.shadow.camera.near = 0.5; // defaultlight.shadow.camera.far = 500; // default
7 W- Y O4 |- s% I9 u' {( n
2 L$ A3 s9 Z3 W( P& C+ m3. 创建接受shadow的物体 //Create a sphere that cast shadows (but does not receive them)var sphereGeometry = new THREE.SphereBufferGeometry( 5, 32, 32 );var sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } );var sphere = new THREE.Mesh( sphereGeometry, sphereMaterial );sphere.castShadow = true; //default is falsesphere.receiveShadow = false; //defaultscene.add( sphere );
" y3 d7 @$ P2 p# }, u- { E2 g2 e7 J4 [$ m, y" ~: ^. C/ r
4. 创建获取投影的平面 //Create a plane that receives shadows (but does not cast them)var planeGeometry = new THREE.PlaneBufferGeometry( 20, 20, 32, 32 );var planeMaterial = new THREE.MeshStandardMaterial( { color: 0x00ff00 } )var plane = new THREE.Mesh( planeGeometry, planeMaterial );plane.receiveShadow = true;scene.add( plane );//Create a helper for the shadow camera (optional)var helper = new THREE.CameraHelper( light.shadow.camera );scene.add( helper );
1 h. i/ K2 _, U, [& [- Q4 |/ k5 T
! I* }% S; L& X8 d0 p2 I# W' N$ Z
1 s% b u( [1 B
b% Z' E7 b* w# `/ x" h0 O; ?' U! P; V$ C' L& f/ M9 @; }2 Z* s
效果如下!6 o! n" S% q- u L
- A. J$ k" y# M ~
. ?, C1 v2 c D: G7 r9 s
+ H5 N6 q- g# o/ |7 m' h4 [
|
|