提交 80bc18fb 编写于 作者: A alteredq

Added shadow casting for SkinnedMeshes.

上级 d82d0df7
因为 它太大了无法显示 source diff 。你可以改为 查看blob
此差异已折叠。
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -6,7 +6,7 @@ THREE.ShadowMapPlugin = function ( ) {
var _gl,
_renderer,
_depthMaterial, _depthMaterialMorph,
_depthMaterial, _depthMaterialMorph, _depthMaterialSkin,
_frustum = new THREE.Frustum(),
_projScreenMatrix = new THREE.Matrix4(),
......@@ -24,9 +24,11 @@ THREE.ShadowMapPlugin = function ( ) {
_depthMaterial = new THREE.ShaderMaterial( { fragmentShader: depthShader.fragmentShader, vertexShader: depthShader.vertexShader, uniforms: depthUniforms } );
_depthMaterialMorph = new THREE.ShaderMaterial( { fragmentShader: depthShader.fragmentShader, vertexShader: depthShader.vertexShader, uniforms: depthUniforms, morphTargets: true } );
_depthMaterialSkin = new THREE.ShaderMaterial( { fragmentShader: depthShader.fragmentShader, vertexShader: depthShader.vertexShader, uniforms: depthUniforms, skinning: true } );
_depthMaterial._shadowPass = true;
_depthMaterialMorph._shadowPass = true;
_depthMaterialSkin._shadowPass = true;
};
......@@ -267,6 +269,10 @@ THREE.ShadowMapPlugin = function ( ) {
material = _depthMaterialMorph;
} else if ( object instanceof THREE.SkinnedMesh ) {
material = _depthMaterialSkin;
} else {
material = _depthMaterial;
......
......@@ -1930,12 +1930,14 @@ THREE.ShaderLib = {
vertexShader: [
THREE.ShaderChunk[ "skinning_pars_vertex" ],
THREE.ShaderChunk[ "morphtarget_pars_vertex" ],
"void main() {",
"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
THREE.ShaderChunk[ "skinning_vertex" ],
THREE.ShaderChunk[ "morphtarget_vertex" ],
THREE.ShaderChunk[ "default_vertex" ],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册