색조 매핑 및 눈 적응-옅은 색상 및 어두운 이미지


9

눈 적응 및 HDR과 함께 톤 매핑을 구현하려고합니다. 실제로 나는 이것을 이미 구현했지만 결과에 만족하지 못하고 뭔가 잘못했다고 생각합니다.

최종 이미지 (후 처리 전)는 플로트 텍스처를 반으로 저장합니다. 도우미 텍스처도 2 개 있습니다. 첫 번째 것은 마지막 밉맵에 로그 휘도와 평균, 최소 및 최대 색상을 저장합니다. 두 번째는 다음과 같이 계산되는 적응 값을 저장합니다.

prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))

여기서 prevLum은 이전 조정 값입니다 (이 텍스처의 크기는 1x1 임). 로그 휘도 텍스처는 R8B8G8 형식이고 두 번째는 R8입니다. 튜토리얼에서는 절반의 플로트 텍스처가 사용되는 것을 보았지만 제 경우에는 너무 밝은 이미지 (거의 흰색)가 있습니다.

최종 포스트 프로세싱 셰이더에서는이 코드를 사용하여 눈 적응과 톤 매핑을 얻기 위해 모든 값을 사용하고 있습니다.

float autokey(in float lum) {
    return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}

float hejl(in float color) {
    float x = max(0.0, color - 0.004);
    return (x * (A * x + B)) / (x * (A * x + C) + D);
}

float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;

result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY

result.z = hejl(result.z);

result.xyz=xyY2RGB(result.xyz);

그리고 내 결과는 다음과 같습니다.

  • 눈 적응 및 톤 매핑이 켜져 있습니다. 눈 적응 및 색조 매핑
  • 눈 적응 만 눈 적응
  • 톤 매핑 만 톤 매핑
  • 모든 것 떨어져 떨어져서

보시다시피 톤 매핑이 켜져있을 때 토끼 색상이 더 옅습니다. 눈 적응이 켜지면 최종 이미지가 훨씬 어둡습니다. 누군가 내가 그 원인을 설명 할 수 있습니까? 여기서 뭔가 잘못되었다고 생각하기 때문입니다. 어쩌면 내가 이해하지 못하는 색 공간이있는 것일 수 있습니까? 또는 톤 매핑 및 눈 적응 전에 적용되는 블룸이 있습니까?

나는 눈 적응과 함께 또 다른 이상한 행동을했습니다. 어두운 곳을 보면 배경 (하늘)이 더 밝아집니다. 괜찮지 만 카메라의 중심이 검은 색 영역에있을 때 항상 발생합니다 (카메라 가이 영역에서 얼마나 멀리 떨어져 있든 상관없이).

이 페이지의 프로젝트에 포함 된 구현을 기반으로합니다 : John Chapman , Nutty Software


시작하려면 bloom을 비활성화하고 절대적으로 필요한 것만 사용하십시오. 또한 톤 매핑으로 인해 흰색이 어두워지면 0-1 범위에서 매핑되지 않으므로이 값을 변경하거나 그에 따라 조명을 조정해야합니다.
akaltar

잘 했어, 프로젝트와 연결되어 있습니까?
danijar

감사합니다. 현재 링크가 없습니다. 그러나 마스터 논문을 완성 할 때 YouTube 또는 .exe 파일에 일부 비디오를 게시하려고합니다.
Harry

답변:


1

블룸, 흐림 또는 피사계 심도를 톤맵하지 않습니다.

이러한 효과는 무엇보다 중요합니다. 값을 실험 해보십시오.


고마워, 시간을 찾을 때 자세히 살펴볼 게
Harry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.