티스토리 뷰

Game/DirectX 11

SSAO(2)

newpolaris 2017. 5. 7. 15:23

머냐 이건,

Nvidia의 모델을 갸져와서 비교해야지 했는데;

SSAO11의 bin 파일엔 normal 이 없다;

어떻게 한지 신기하기도 하지만, 비교 모델이 사라졌다

GetLinearDepthTexture()
GetColorSRV()

이러면 Light에 반영은 어떻게 하는거지?

float4 Blur_Composite_PS11( PostProc_VSOut IN) : SV_TARGET
{
    float ao = tAO.Sample(PointSampler, IN.uv);
    return pow(ao, g_PowExponent);
}

BlendStateDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_ZERO;
BlendStateDesc.RenderTarget[0].DestBlend = D3D11_BLEND_SRC_COLOR;
BlendStateDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;

Blend Color Part만 factor 를 곱해주는 형태이다.

bin 파일이 복잡하긴 하지만 기본 모델이 있으니 테스트 해보자

//-------------------------------------------------------------------------------
// Vertex shader that generates a full-screen triangle with texcoords
//-------------------------------------------------------------------------------
PostProc_VSOut VS( uint id : SV_VertexID )
{
    PostProc_VSOut output = (PostProc_VSOut)0.0f;
    output.uv = float2( (id << 1) & 2, id & 2 );
    output.pos = float4( output.uv * float2( 2.0f, -2.0f ) + float2( -1.0f, 1.0f) , 0.0f, 1.0f );
    return output;
}

Radius 0.5 일 경우

이건 HBAO Nvidia

너무 차이나네

Radius 를 0.05로 낮춰도 이상한 기운만 돌뿐

이러면 실제에서 쓰긴 골치 아플듯

다른 SSAO Tutorial을 찾으면,

  1. http://john-chapman-graphics.blogspot.kr/2013/01/ssao-tutorial.html
  2. https://learnopengl.com/#!Advanced-Lighting/SSAO

위 2개가 있는데 1번째 껀 Cyteck을 방식을 변형한 거고, 2번째 껀 첫번째 껄 좀더 정리한거다

둘다 동시에 보고 구현하면,

추가로 2번째 것의 RadiusCheck를 구현하면,

위와 같이 된다. 바닥면이 이상하게 그려지네;

완전히 이상한건 아니다

위와 같은 풀잎을

위와 같이 반영해주기도 한다

Depth를 16bit로 담았고, Blur는 여전히 Luna's 11x11 blur 이다

Depth Buffer를 이용해 depth를 담고 그걸 그냥 SSAO 에서 쓰도록 바꿨다

Depth 문제는 아니였나 보다. Radius를 극히 낮췄을 때만 detail 이 산다

blur를 수정해보았다

Average 5x5 kernel

Random size와 같은 4x4 kernel 일 경우

Random은 point sampling mode 로 돌렸다

Nvidia Sample

이건 먼 깡패인지

'Game > DirectX 11' 카테고리의 다른 글

SSAO(4)  (0) 2017.05.10
SSAO(3)  (0) 2017.05.09
Bool HLSL  (0) 2017.05.05
SSAO (1)  (1) 2017.05.05
Renderer (2) - Constant Buffer  (0) 2017.04.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크