현재 WebGL에서 직설적 인 직접 처리 (다중 통과 또는 후 처리 없음) 렌더링을하고 있습니다. 모든 프레임을 수행 할만큼 효율적으로 전체 렌더링 된 이미지 (즉, 단일 숫자)의 평균 밝기/휘도를 결정하고 싶습니다.WebGL에서 평균 장면 밝기는 어떻게 결정합니까?
내가 달성하고자하는 것은 현실적인 조명과 장면 전환없이 실내 및 실외 장면을 모두 볼 수 있도록 장면에서 "노출"조정 (비디오 카메라 또는 인간의 눈으로)을 구현하는 것입니다. 현재 프레임의 밝기는 다음 프레임의 밝기에 대한 음의 피드백이됩니다.
현재 내 장면 데이터를 통해 몇 개의 광선을 보내서 CPU 측에서 매우 대략적인 근사값을 계산하여 해당 지점의 밝기를 찾습니다. 이 방법은 효과가 있지만 샘플 수가 너무 적어서 (광선이 광원을 가로 지르는 것처럼보기 각도에 따라 밝기가 크게 달라집니다). 내 응용 프로그램이 일반적으로 CPU 바운드이기 때문에 가능한 경우 GPU로 작업을 오프로드하는 것을 선호합니다.
WebGL에 전달 된 정보를 사용하거나 이미지 기반 솔루션을 원하십니까? 솔루션이 정확해야하나요? 아니면 근사값으로 충분합니까? –
@StefanHanke 편집을 참조하십시오. 간단히 말하면, 근사값은 괜찮습니다. 빛은 세계 데이터에서 쉽게 추출되지만 더 많은 CPU 작업을 추가하고 싶지는 않습니다. –
내 생각은 : MRT를 사용하여 해상도가 다른 두 가지 색상의 첨부 파일로 렌더링합니다. 작동하지 않는 이유는 WebGL이 [단색 부착 만 지원하기 때문에] (http://stackoverflow.com/q/9820496/1262542) 새로운 OpenGL 버전에서도 다중 해상도를 사용한 렌더링이 지원되는지 여부를 모르겠습니다. –