(2줄 요약 있)



여기에 수많은 똑같은 모델들이 있다. 100개는 족히 넘는다.



아주 자세히 보면 각 모델은 직육면체가 여러개 모여 만들어진 집합체다. AAA급 게임에서 보는 복잡한 사람, 몬스터 모델이 절대 아니다.






약간의 수정을 가했다.



왼쪽 하단을 보면 알겠지만 프레임이 말도 안 되게 상승했다.



뭘 수정했을까? 폴리곤 수를 줄였을까? 텍스처 해상도를 낮췄을까?



사실 모델은 그대로다. 폴리곤이든 텍스처든 전부 그대로.



뭘 수정했냐 하면... 모델을 하나로 묶어버렸다.



그러니까 1짤은 쬐끄만 모델을 100개 넘게 생성시킨 거고,



2짤은 그것들을 하나의 파일로 합쳐 모델 1개가 된 것이다.



이렇게 만들면 드로우 콜도 하나가 되어 cpu가 효율적으로 계산할 수 있다.







드로우 콜이란, CPU가 그래픽 API에 "이거 렌더링해" 하고 보내는 명령이다.



그래픽 API는 이 명령을 해석해서 GPU가 렌더링하게 만든다.



이 원리는 다이렉트 X, 불칸, OpenGL 등 어떤 API라도 똑같다. 어떤 게임이든 통용되는 사실이다. 팀포도 마찬가지고.



만약 드로우 콜이 많아지면?






흔히 말하는 병목 현상이 생긴다.



이런 현상은 CPU를 좋은 걸로 사도 해결되지 않을 거다.



4GHz의 벽 + 팀포의 멀티스레딩 때문인데,



4GHz의 벽은 쉽게 말해서 90년대 마냥 CPU의 클럭을 높이는 방법이 한계에 달했단 뜻이다. 실제론 4GHz 이상의 CPU가 나오긴 했지만 발전 속도가 굉장히 느려지긴 했다.



그래서 지금은 CPU의 개발 방향을 멀티코어/스레딩으로 넘어갔는데



팀포는 스레드를 단 4개밖에 안 쓴다. (요즘 CPU 기준 코어 2개)



그러니 최신 CPU 구매가 약간의 성능 향상은 있을지언정 드라마틱한 발전은 없을 거다.



다른 옛날 게임들이 최신 컴퓨터로 랙이 걸리는 이유가 이것 때문이다. 전부 사정 똑같음



그러니 최적화를 하려면 드로우 콜에 영향을 미치는지, 안 미치는지만 보면 된다.



텍스처 낮음? 거리별 lod로 모델 뭉개기? 지금은 알빠노 (그리고 거리별 lod로 모델을 뭉개는 건 더 많은 드로우 콜을 생성시킨다)




다음 커맨드들은 드로우 콜에 큰 영향을 준다:

r_drawworld
r_drawdisp
r_drawstaticprops 
r_drawentities 
r_drawdecals 
r_drawdetailprops 
r_drawsprite 
r_drawparticles 
r_drawropes 
r_drawviewmodel 
r_shadows 
r_3dsky 
r_renderoverlayfragment 
cl_drawhud



거의 다 r_이 붙지?



얘넬 끄면 렌더링을 안 한단 거다



sv_cheats 1 해야 되거나, 렌더링 안 하면 겜하는데 지장가는 것도 있을 텐데 알아서 설정하셈... 지금 군대라 내가 다 걸러내긴 힘듦



드로우 콜에 영향을 주지만 추가 설명 필요한 것들:

mat_dxlevel: 다이렉트 x 버전 맞추는 거. 다렉 8이 드로우 콜을 낮추긴 하는데, 원리가 원래 작동되어야 할 셰이더들을 꺼버려서 생기는 현상임. 8로 하면 못 들어가는 곳이 간혹 있으니 조심 (경쟁전, 일부 게임모드 대축제 서버, 해외 맵 테스트 서버)

cl_new_impact_effects: 새로운 스레딩 시스템을 쓰는 파티클 활성화. 말을 이렇게 하긴 했는데 멀티스레딩은 그대로다. 알아서 써

cl_burninggibs: 불타는 시체 조각. 자주 볼일 없긴 한데 프레임 신경쓰면 끄셈

r_lod, r_rootlod: 아까 언급했지? 그래픽 울트라를 원하든 프레임을 원하든 무조건 0으로 해놔라

-no_texture_stream: 시작 옵션이다. 텍스처 스트리밍이란 기능을 끄는 건데, 이 기능은 텍스처를 처음에 저품질로 불러오되 로딩 시간을 단축시키는 기능이다. 드로우 콜을 많이 생성시키는 주제에 울트라 그래픽에도 무쓸모다. 그러니 무조건 시작옵션에 적어놓자.






2줄 요약:



이렇게 그래픽 뭉개지 마렴
프레임은 똑같단다

- dc official App