제 목 3강 bloom 질문입니다.
작성자 제원 등록날짜 2022-01-03 17:24:58 / 조회수 : 67
강좌명 [단과] DirectX 11 3D 게임프로그래밍 Part 8
  • 3강에서 Blur Y 방향으로 쉐이더가 적용됬을시 위의 스샷처럼 화면 하단의 색상이 화면 윗부분으로 혼합되어 나타납니다.

    (스샷에서 타일부분 회색이 화면 맨 윗부분에 초록색과 혼합되어서 나타남)

     

    bloom 쉐이더에서 아래 빨간색 부분 코드를 넣어 예외처리를 하니 정상적으로 보이는 듯한데 혹시 다른 수정방법이 있나 궁금합니다. (뭔가 깔끔한거 같지 않아서, 쉐이더 기능이나 텍스쳐 셋팅 등으로 수정될지 해서요)

    float4 PS_Blur(VertexOutput input) : SV_Target
    {
        float4 color = 0;
        
        for (int i = 0; i < SampleCount; i++)
        {
            if ((input.Uv.y + Offsets[i].y) < 0)
            {
                color += DiffuseMap.Sample(LinearSampler, input.Uv) * Weights[i];
                continue;
            }

            color += DiffuseMap.Sample(LinearSampler, (input.Uv + Offsets[i])) * Weights[i];

        }

        return color;
    }

  • 작성자 : 게임클래스 / 등록날짜 : 2022-01-04 11:44:57
  • 안녕하세요 게임클래스 입니다.

    문제가 해결이되었다면 코드야 어떻게 되었던 다행입니다.

    선생님께 물어본 결과

    텍스쳐에서 샘플링할때 Uv.v 값이 0 ~ 1 범위를 벗어나서 생긴 문제라 하십니다.

    Saturate를 통해서 0 ~ 1 범위로 값을 가두거나

    샘플러스테이트 어드레스모드를 clamp로 써서 해결하는 방법이 있다고 합니다.

     

    감사합니다.

    게임 개발자가 되는 그날까지 함께 하겠습니다!

    게임클래스