HSLS 픽셀 쉐이더를 사용하여 이미지의 모든 픽셀 합계를 효율적으로 계산하려면 어떻게해야합니까? Pixel Shader 2.0에 관심이 있습니다. WPF 쉐이더 효과로 호출 할 수 있습니다.모든 픽셀의 효율적인 픽셀 쉐이더 합
6
A
답변
-1
WPF의 효과는 시각적 결과를 생성하는 데 훨씬 적합합니다. 당신이 다른 유형의 계산을 위해 사용하고자하는 것처럼 들리지만, 이렇게하려면 이미지 결과를 데이터로 처리해야합니다. 소프트웨어에서 RenderTargetBitmap이 필요합니다. GPGPU 용으로 설계된 이러한 프로젝트를 살펴볼 수 있습니다.
Accelerator 나는 OpenTK에서 OpenCL을 바인딩의 상태를 잘 모릅니다. 다이렉트 컴퓨 트 (DirectCompute) 및 쿠다 (CUDA)와 같은 다른 기술도 한발 가치가 있습니다.
6
셰이더를 사용하지 않는 훨씬 간단한 솔루션이 있습니다. 이미지를 텍스처로로드하고, 밉맵 체인을 만들고, 마지막 밉맵 (1x1 픽셀)의 값을 다시 읽습니다. 이 트릭은 게임에서 광범위하게 (예 : HDR 톤 매핑을 적용하기 위해) 장면의 평균 밝기를 계산하는 데 사용됩니다. 정확성보다 단순성과 효율성을 중시한다면 위대한 트릭입니다.
3
는 화상 R/G/B를 채널 값을 합산하도록 가정 (그리고 원래 픽셀을 파괴 할 수있는 것으로 가정) - 여기 내 부분적인 해결책이다
- 각각 10 화소의 평균 색을 계산하는 것 이웃하는 10 개의 픽셀을 이미지에 평균화합니다.
- 그런 다음 각 10 번째 픽셀의 CPU 측 합계
Pix_Value*10
.
이 경우 우리는 CPU 측의 픽셀 값 합산에 비해 약 10 배의 속도 향상을 얻습니다.
'모든 픽셀의 합'이라고 말하면 무슨 의미입니까? 모든 R/G/B 값의 합 또는 다른 값입니까? –