<OPENGL 11>

여기에 우리가에 초점을 블룸 효과 제기 다양한 문제, 그리고 그들의 솔루션을 제공합니다.

가우시안 블러는 몇 가지 사례를 기록 :

https://www.shadertoy.com/view/XdfGDH

https://www.shadertoy.com/view/ltScRG

https://gamedev.stackexchange.com/questions/166182/my-single-pass-gaussian-blur-looks-awful

https://github.com/Jam3/glsl-fast-gaussian-blur

 

 

이 연습의 원래 저자 :

참고 처음부터 끝까지지도의 원래 저자는 그래서 모두가 아니다 앤티 앨리어싱 (MSAA)이 원활하게 작동 할 수있는 방법입니다. 그리고 몇 가지 간단한 장면 매핑합니다.

리앙 날 FXAA를 생각하자, MSAA가 낭비 크게 얘기했다.

 

 

 

그리고 내 방식이다 :

텍스처 여러 텍스처를 샘플링 hdrFBO. 내가 직접 그 과정에서 후 처리 단계를 버퍼에 전달되는 FBO 생각하기 시작했다.

단지 2 점 장면 렌더링 부 렌더링, 송신의 제 2 부분의 표현은 첫 번째 테스트 사후 2 버퍼.

문제 발생 :

장면이 FBO의 사후 처리에 복사해야합니다 후 1, hdrFBO 멀티 샘플링 FBO 텍스처 렌더링이 완료됩니다.

2 hdrFBO 멀티 샘플링 문제를 처리하지 지난 후 상기 제 장면 FBO 질감 사본.

3 hdrFBO 필요가 통과하도록 (즉, 제 2 색 첨부), 다중 샘플 텍스처 포스트에 제공하는 물질이다 번째 텍스처 멀티 샘플링 :

그 코드가 더 썩은 쓸 수 있도록 4, 그런데이 디자인 MSAA 직접 코드를 제한 인식

vec4 textureMSAA (sampler2DMS 텍스, VEC2의 TexCoords) { 

    ivec2 texSize = textureSize (TEX); 
    vec4 mtex = vec4 ( 1 );
    위한 ( INT 난 = 0 ; I < 32 ; ++ I) 
    { 
        mtex + = texelFetch (TEX, ivec2 (TexCoords는 * texSize)를, I); 
    } 
    mtex = mtex / 32.0f ;
    반환 mtex을; 
}
textureMSAA 기능
#Version을 450 핵심 
#extension의 GL_ARB_shading_language_include는 : 필요 
#INCLUDE " /shaders/common/utils.glsl " 
사용법 #include " /shaders/common/postprocess.glsl " 
밖으로 vec4의 FragColor을;
에서 VEC2 TexCoords; 
균일 sampler2D sceneImage; 
균일 sampler2DMS brightImage; 
균일 한 유동 노출;
무효 메인 () 
{ 
    vec4 장면 = 텍스처 (sceneImage, TexCoords); 
    vec4 mtex = textureMSAA (brightImage, TexCoords); 
    VEC3 결과 =톤 매핑 (scene.rgb 노광); 
    FragColor = vec4 (결과, 1.0F ); 

}

 

추천

출처www.cnblogs.com/gearslogy/p/12623553.html