2013-02-23 4 views
2

단순한 장면 (방을 시뮬레이션하는 입방체와 그림자를 테스트하기위한 두 개의 작은 입방체로 만들어 짐)에 대해 WebGLDeferredRenderer를 사용하지만 생성 된 그림자를 표시 할 수 없습니다. areaLight 장면에서 사용!Three.js - 지연 렌더링을 사용하여 영역 조명에 그림자 추가

this demo에는 3 개의 영역 조명이 있지만 그 중 아무 것도 단일 대상 위에 그림자를 생성하지 않습니다 (방금 "방"을 비 춥니 다).

이 문제를 해결하기 위해 사용할 수있는 특정 셰이더가 있습니까? 또는 더 나은 ... 지연된 렌더링에서 그림자를 드리울 기회가 있습니까? :)

답변

3

그림자는 현재 WebGLDeferredRenderer의 지연 렌더링을 사용하는 three.js r.56에서 지원되지 않습니다.

point lights와 spot lights가 three.js에서 지연 렌더링을 사용하여 그림자를 투영하는 두 가지 예가 있지만 수정 된 라이브러리을 사용하고 있습니다.

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap_point.html

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap.html

그러나, 아직 지역 등의 더 예 없습니다.

원하는대로 할 수 있고, 아직 지원되지 않으며 지역 조명이 아닙니다.

three.js를 r.56

+0

예 이미 그 데모를 보았고 그들이 다른 버전의 three.js 라이브러리 (너무 압축 됨)를 사용하고 있지만 "공식적인"방법이 있다고 생각했습니다. –

+0

위의 링크에서 alteredqualia는 r55를 기반으로 한 3js의 사용자 정의 버전을 사용했습니다. 그렇게 공식적인 방법은 없습니다.그래서 지금은 잊어 버리거나 직접 구현하십시오. –

0

방향 또는 점 등을 사용하십시오. 영역 조명은 그림자를 투영하지 않습니다.

+0

지연 렌더링 모드에서 (점, 방향, 영역) 그림자를 드리 우지 않습니다. –

0

나는 누군가가 아마도 그것에 대해 작업하고 있기 때문에, 영역 빛의 그림자가 아직 구현되지 않았다고 믿는다. 당신은 스스로 해보기 위해 노력할 수도 있지만 해결하기 쉬운 문제는 아닙니다. :)

저는 현재 지연 렌더러에서 스포트 및 방향성 라이트 쉐도우를 사용할 수 있다고 생각합니다. 라이트 쉐도우를 가리킬 수도 있습니다.

그림자의 강도가 낮은 다른 조명 유형을 사용하여 그림자를 가짜로 만들 수는 있지만 다소 어색해 보일 수 있습니다.

+0

이 답변으로 뭔가 더 추가됩니까? – gaitat

+0

무엇을 의미합니까? – yaku

+0

다음과 같은 답변을 더 많은 단어로 작성했습니다. – gaitat

0

난 당신이 지역이 얼마나 큰지에 따라 shadowmapping 소스를 다시 밀어 생각 ... 당신은 또한 안구 당신이 얼마나 멀리 뒤쪽에 따라 비율 가까이 필터링을 가지고 작업 할 수 있습니다 너의 쉐도우 스터를 밀어야 해.