현재 씬에 direct3d로 그림자를 그려보고 있습니다. 몇 가지 패스 렌더링을 시도하고 블렌드 모드를 사용/설정하는 방법을 이해하는 데 어려움이 있습니다.Direct3D 9 그림자 맵핑 블렌드 모드
나는 깊이 버퍼를 채우는 깊이 패스를했는데 장면의 모든 조명을 반복하는 루프가 있습니다. 그 루프 내에서 나는 2 개 루프가 장면의 모든 모양을 통해하는 두 루프
내가 실행할 때 내가하지만 난 그게 각각의 빛을 통해 루프 것을 알 수있다 PIX에서
for(number of shapes)
{
//render from camera position and fill depth buffer
}
for(number of lights)
{
for(number of shapes)
{
//render to shadow map
}
for(number of shapes)
{
//render to screen
}
}
설정의 종류가 광원 배열의 마지막 조명 만 표시됩니다. 블렌드 모드와 관련이 있다고 생각합니다.
블렌드 모드를 살펴본 결과 소스 및 대상 혼합에 대한 정보를 찾았습니다. 이게 내가 필요로하는 것이거나 누군가가 설명해 줄 수 있겠 니? 사전에
감사합니다,
마크
[편집] 나는
hr = device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
hr = device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
hr = device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
그림자가 올바른 보이지 않는 다음 코드를 사용하여 두 조명 볼 수있어하지만 난 더 가까워지고 있어요 원하는 결과로
더 이상의 조언은 좋은 것,
감사합니다,
마크
고정 기능 파이프 라인을 사용하고 있지 않습니다. 현재 3 세트의 쉐이더가 있습니다. 깊이 미리 패스에서 사용되는 첫 번째 세트. 두 번째 세트는 라이트 위치에서 장면의 깊이를 출력하고 세 번째 세트는 그림자 맵 텍스처 깊이를 사용하여 장면에서 그림자를 렌더링하는 데 사용됩니다. 내가 생각하는 문제는 패스 간의 블렌딩이다. – MulletDevil
대상이 렌더링 대상이라고 가정합니다. 출처는 무엇입니까/어떻게 설정합니까? – MulletDevil
Destination은 렌더링 대상이며 source는 혼합하도록 설정된 텍스처의 색상입니다. – mkaes