답장을 보내 주셔서 감사합니다.
나는 단지 A-Frame, Three.js, Javascript 및 html을 배우고 있습니다.
A-Frame으로하는 일은 정말 멋지다.
는 완벽하지 않다, 다음을 완료,하지만 지금은 작동합니다
registerComponent 초기화에서
:() 함수
를 메쉬에서 그림자 캐스트 :
el.getObject3D을 ('mesh'). castShadow = data.shadow; //data.shadow = 메쉬에서받을
사실 그림자 :.
el.getObject3D ('메시') receiveShadow = data.shadow; //data.shadow = 진정한 스포트 라이트
:
this.spotlight = new THREE.SpotLight(data.colorm);
el.setObject3D('spotlight', this.spotlight);
el.getObject3D('spotlight').castShadow = data.shadow;
el.getObject3D('spotlight').shadow.camera.near = data.shadowcameranear;
el.getObject3D('spotlight').shadow.camera.far = data.shadowcamerafar;
el.sceneEl.systems.light.registerLight(el);
그리고 다음 장면을 사용하여로드 이벤트 :
function setShadows()
{
aframeRenderer.shadowMap.enabled = true;
aframeRenderer.shadowMap.type = THREE.PCFSoftShadowMap;
aframeRenderer.setClearColor(0x000000, 1.0);
aframeRenderer.setSize(window.innerWidth, window.innerHeight);
aframeRenderer.shadowMap.enabled = true;
threeSpotLight.shadowCameraNear = 0.01;
threeSpotLight.castShadow = true;
threeCube.castShadow = true;
threeCube.receiveShadow = false;
threePlane.castShadow = false;
threePlane.receiveShadow = true;
threeSpotLight.visible = true;
}
메시에서 활성화해야합니까? 'cubeEntity.getObject3D ('mesh')'. A-Frame 코어에서 그림자를 활성화하기위한 PR도 있습니다 https://github.com/aframevr/aframe/pull/2350 – ngokevin
아마도'plane.getObject3D ('mesh'). material.needsUpdate = true'를 시도해보십시오. PR, tl; dr은 A-Frame에 실제 지원을 추가하는 과정에 있습니다. –