• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

프레임 및 텍스쳐 관련 질문입니다

21.08.14 16:23 작성 조회수 198

0

강의 영상을 보면 프레임 제한 없이 프레임이 2천 이상 뽑히는 것을 볼 수 있는데요.

저는 프레임이 모니터 주사율에 맞게 VSync가 걸립니다.

드라이버 제어판이나 리바튜너 같은 프로그램으로 글로벌 프레임 제한은 따로 걸어두지 않았습니다.

문제는 아니지만 궁금해서 질문 드립니다.

또 질문이 하나 더 있는데요.

텍스쳐 파일을 불러오는 API를 보면 DDS, TGA, HDR, WIC의 4가지로 나뉘어져 있는데 왜 앞의 3개의 확장자를 가지는 파일에 대하여 별도의 API를 가지는지 궁금합니다.

또 텍스쳐를 jp(e)g나 png로 불러올 경우 채도가 높아지는 듯 한 느낌을 받는데 왜 이런 결과가 나오는지도 궁금합니다.

답변 2

·

답변을 작성해보세요.

1

한장석님의 프로필

한장석

2021.09.19

1. V Sync가 걸리는건 DirectX 12의 스왑체인 초기화 도중에 Vsync 옵션을 건드린게 아닌가 확인하시면 됩니다. 

스왑체인 디스크립션 구조체의 refresh rate 부분의 

이 쪽 부분을 확인하시고, 

       if (m_vsync_enabled)

        {

            swap_chain_desc.BufferDesc.RefreshRate.Numerator   = m_numerator;

            swap_chain_desc.BufferDesc.RefreshRate.Denominator = m_denominator;

            //강의 파일 기준으로는 60과 1로 되어 있습니다. 

        }

        else

        {

            swap_chain_desc.BufferDesc.RefreshRate.Numerator   = 0;

            swap_chain_desc.BufferDesc.RefreshRate.Denominator = 1;

        }

그리고 스왑체인의 프레젠트 함수도 한번 확인해 보세요.

  if (m_vsync_enabled)

        {

            // Lock to screen refresh rate.

            m_swap_chain->Present(1, 0); 

            //이렇게 되면 V싱크가 걸려버립니다.

        }

        else

        {

            // Present as fast as possible.

            m_swap_chain->Present(0, 0);

        }

만약 모두 강의파일과 같다면 다른 이유로 모니터 주사율에 맞춰질 가능성이 있습니다. (드라이버 제어판 및 관련 소프트웨어의 전역설정을 다시 확인해 보세요;;)

 

2. DDS 텍스처와 다른 텍스처의 로딩방식의 차이는 DDS 포맷의 경우 텍스처가 일반적인 그림파일이 담고 있는 정보 외에 다른 별도의 정보들을 가지고 있을수 있기 때문입니다.

밉맵 정보나 압축 방식 등등 여러가지로 알고 있습니다. 당연히 그걸 활용하는것도 렌더링 파이프라인과 에셋 파이프라인에 맞춰서 돌리기 때문에 그렇습니다.

HDR 역시 HDR 데이터를 담고 있어야 하기 때문이고요. 사실 텍스처 포맷들은 각각의 구성이 다르기 때문에 확장자 마다 개개의 방법으로 로딩하는거라 보시면 됩니다.

 

0

LeeBokA님의 프로필

LeeBokA

질문자

2021.09.24

시간이 지난 질문에도 자세한 답변 정말 감사드립니다.