GLSL로 효율적인 블룸 쉐이더를 만들려면 어떻게해야합니까?


12

GLSL을 사용하여 블룸 효과를 렌더링하는 것과 관련된 리소스를 인터넷에서 검색했지만 아무것도 찾지 못했습니다. Philip Rideout 웹 사이트자습서 는 훌륭하지만 내 Nvidia GPU에서 성능이 좋지 않습니다.

누구 든지이 문제에 어떻게 접근하고 블룸 효과를 상당히 효율적으로 구현 해야하는지 안내 할 수 있습니까?


1
오픈 소스 자바 3d 엔진 인 Ardor3d는 블룸 쉐이더를 구현했습니다. 오픈 소스이기 때문에 쉽게 확인할 수 있습니다 (www.ardor3d.com). 그러나 기본적으로 프레임 버퍼, 다운 스케일, 블러, 첨가제 블렌딩을 복사하는 것입니다.
Pjotterke

1
어떤 종류의 GPU가 있습니까?

1
사용중인 GPU / 비디오 카드를 알려주는 것이 매우 중요합니다. +! @JoshPetrie
Patrick Hughes

내 노트북에 Nvidia GeForce GT
230M

6
@snape : 얼마나 큰 가우시안 커널을 사용하고 있으며 가장 큰 희미한 FBO의 해상도는 무엇입니까? 성능을 향상시키는 가장 쉬운 방법은 더 작은 커널과 더 작은 FBO를 사용하는 것입니다. (제 작품에서는 디스플레이 해상도에 관계없이 512x512 해상도 FBO 내부에서 흐리게 처리합니다.)
Trevor Powell

답변:


3

Trevor가 그의 의견에서 언급했듯이, 유일한 옵션은 커널 크기를 줄이거 나 추가 다운 샘플링을 수행하는 것입니다.

그러나 당신이 연결 한 튜토리얼을 철저히 읽었습니까? 저자가 "비밀 한"버전이라고 부르는 하드웨어 필터링 활용에 대한 팁이 있습니다. 아마도 품질에 영향을 미치지 않으면 서 블룸 효과를 최적화하는 데 사용할 수있는 가장 좋은 방법 일 것입니다.


예, 튜토리얼을 자세히 읽었습니다. 마지막으로 오프라인 렌더링을 사용하여 성능을 개선했으며 그래픽 응용 프로그램에 대한 하드웨어 지원을 일찍 활성화하지 않았습니다.
Snap :

0

두 번의 패스로 매우 유사한 문제 (흐리게하지만 블룸 필터가 흐려짐)를 해결했습니다.

첫 번째 패스에서 나는 X 방향으로 흐려지고 두 번째 패스에서 나는 Y 방향으로 흐려진다.

나는이 트릭을 가지고있는 곳에서 dunno하지만 시간 복잡성을 n²에서 2n으로 줄입니다.

방향이없는 커널에 대해서만 작동합니다 (따라서 보케 커널을 최적화 할 수 없습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.