셰이더(Shader) 최적화란 무엇인가?

    728x90
    반응형

     

    콜오브듀티 시리즈를 하는 분에게는 셰이더라는 말이 많이 익숙할 것이다. 그런데 셰이더가 뭐길래 최적화를 할때까지 메인 메뉴에서 기다려야 하는지 잘 몰랐을 것이다. 오늘은 그 궁금증에 대해서 풀어드리고자 한다.

     

    셰이더란 무엇인가

     

    우선 셰이더는 소프트웨어 명령 집합으로써 하드웨어 렌더링 효과가 얼마인지 계산을 하는데 사용되는 것으로써 한마디로 그래픽카드에서 정보(색조 채도 블러 밝기 등등) 를 얼마나 처리해야 하는지 알려주는 것을 의미한다. 

     

    여기서 색조, 블러, 채도라는 것은 FPS기준으로 물체를 바라볼때마다 달라지는 빛을 의미하는데 예시로 왼쪽으로 움직이면 빛은 왼쪽에서 보는 빛이 다르고 오른쪽에서 빛이 다른 상황을 계산하는 것 이게 셰이더의 역할이다.

     

    또한 셰이더는 그래픽카드가 3차원 그래픽을 인지할 수 있도록 렌더링 파이프라인을 프로그래밍 할때 주로 사용이 되는데 아무것도 없는 무지(untitled)에서 3D를 구현해내면 셰이더를 통해 입체 광원, 블러, 라이트 블룸, 심도 효과 크로마키 모션 검출 등을 실행가능하게 만든다.

     

    셰이더 최적화란 무엇인가

     

    셰이더 최적화는 그래픽카드마다 연산처리량이 다르고 각자 설치되어 있는 OS버전 그리고 그래픽카드 드라이버에 따른 연산 구조 등이 다를 수 있기 때문에 콜오브듀티에서는 매 그래픽카드 드라이버 업데이트 마다 셰이더 최적화라는 것을 실시하게 된다. 

     

    셰이더 최적화를 안하면 문제가 생기는가

     

    당연히 생길 수 있다. 콜오브듀티를 개발할때 사용된 그래픽카드는 콜오브듀티가 어떤 명령어 구조를 갖고 있는지 잘 모른다. 자동으로 인식되는 것이 아니라 수동으로 일일이 인식을 해줘야 하기 때문에 만약 셰이더 최적화를 실행하지 않는다면 끊김 및 인풋렉과 색감표현 등 그래픽과 시스템이 일부 깨져보이는 등의 문제가 발생할 수 있다. 

     

    가끔 99%에서 한참을 멈춰 있는 경우가 있는데 이 경우는 그냥 버그일뿐이므로 99%에서 한 5분정도 기다린 후 게임에 참가했다가 다시 로비로 나오면 어느샌가 없어진 것을 볼 수 있다. 

     

    셰이더 최적화는 언제 하는가?

     

    그래픽카드 드라이버가 최신 업데이트 되었을때 셰이더 최적화를 1회 실시한다. 그 이후에는 최적화 작업없이도 실행이 가능하므로 이를 인지하시면 좋을 것 같다. 

     

     

    728x90
    반응형

    댓글

    Designed by JB FACTORY