작성
·
389
1
안녕하세요 언리얼 클라이언트 프로그래머를 지망하고 있는 학생입니다.
벡터,행렬,변환 이외에도 게임에서 사용되는 수학들을 학습하고 싶어 해당 강의를 수강하게되었습니다.
다름이 아니라 책에 추가된 내용이 복소수,쿼터니언,오일러 공식,스켈레탈 계층구조 등등이지 않습니까?? 물론 이들을 추가적으로 학습한다면 direct X를 보는 시야가 넓어질 것 같긴한데
엔진 프로그래머를 할 게 아닌데 너무 깊이 들어가는게 아닌가?? 고민이 됩니다
이 강의를 통해 대략적인 게임 세계를 이해했다면 물리 공부를 해서 게임 세계를 표현하는데 좀 더 힘 쓰는 게 맞을지? 아니면 책에 추가된 내용들을 학습해 좀 더 깊이있게 엔진을 바라보는게 맞는지 답변 부탁드리겠습니다.
대략적인 사용 이유는 아는 상태입니다
오일러 각을 통해 회전을 표현하는데 이 경우엔 짐벌락 현상이 발생할 수 있어 쿼터니언을 사용하고 스키닝 애니메이션에서 본에 가중치를 둬서 메시가 늘어나게 한다던가? 그런것들?
답변 1
4
네 관련해서는 사람마다 의견이 다를 수 있으므로, 제 개인적인 의견만 전달드리니 감안하고 취사선택해주세요.
개인적으로 DX는 코어 기술이 아닌 그래픽 하드웨어와 연관된 엔지니어 기술이라고 생각합니다. 그래서 그래픽 프로그래머로 진로를 잡지 않는 다면, DX를 공부하는 것은 그다지 효과적인 방법으로 보이진 않습니다.
작년에 집필한 수학책도 C++ 프로그래밍을 활용하고, 게임 그래픽의 기반지식을 배우기 위해서는 소프트래스터라이저(소프트렌더러) 가장 좋다고 생각해, OpenGL이나 DirectX를 배제한 C++ 프로그램으로 예제를 고안했습니다.
또한 책을 집필할 때, 제목에 그래픽스 수학이라는 단어를 사용하지 않고 게임수학 및 메타버스라는 용어를 쓴 까닭은, 책에서 다루는 수학이 그래픽스를 떠나 벡터 공간이라는 논리적 가상 세계를 구축하는데 필수적인 지식이기 때문입니다. 이는 흔히 셰이더라 불리는 그래픽스 프로그래밍과 조금 다른 영역이라고 이해해주시면 좋을 것 같습니다.
책의 초반에서 다루는 선형대수, 행렬은 컴퓨터를 다룬다면 반드시 알아야 하는 기본 지식이고, 이후 게임에 특화된 수학으로는 사원수와 3차원 공간의 트랜스폼 계층 구조등이 있는데, 이들을 올바로 이해하는 것은 차후 게임 엔진이 제공하지 못하는 기능을 구현할 때 필요하기 때문에 중요하다고 생각합니다.
제가 학생에게 즐겨 내는 문제 중 하나로 긴 경로로 보간하는 Slerp 회전 코드를 짜는 과제가 있습니다. 해당 기능은 학생들이 즐겨쓰는 유니티 API에서는 지원하지 않기 때문입니다.
많은 경력자들의 글을 보더라도 행렬, 사원수와 같은 기본 메커니즘의 이해를 중요시하는데, 이는 비단 그래픽스 뿐만 아니라 가상 공간을 다루는 분야라면 다양한 문제 해결에 도움이 되기 때문이라고 생각합니다.
정리하자면, 그래픽스 엔지니어로 진로를 정하신게 아니라면 하나에 올인하기보다 수학, 물리, 렌더링 파이프라인을 두루 아는 것이 더욱 좋다고 생각합니다.
제 수학책에서 정리한 내용을 모두 제대로 이해하셨다면, 향후 논리적 가상 공간을 다루는데 있어 큰 문제는 없을 것으로 보여지고, 향후 전문 분야를 어떤 것을 정하셔도 모두 도움될 내용이라 생각합니다.
수학, 물리, 렌더링 파이프라인은 어느 정도까지 알면 좋을까요?
모기업에서는 수학을 고등학교 이과 수준의 수학적 지식을 요구하던데 그 정도면 충분한가요?
물리는 고전 역학 정도만 두루 알면 될까요?
렌더링 파이프라인은 DX나 엔진 공식 문서에 나와 있는 렌더링 파이프라인을 두루 알고 있으면 되나요?
입사를 위한 수학이나 물리는 회사 담당자마다 케바케다 보니 가이드해드리기는 어려울 것 같습니다.
만약 제가 담당자라면 무엇을 알고 있는가보다 벡터의 정의라던가 선형 독립과 같은 기본적인 내용을 제대로 알고 있는가를 궁금해할 것 같습니다. 내적/외적/사원수라던지 트랜스폼 계층 구조의 메커니즘까지 올바로 알고 있으면 더욱 좋고요.
렌더링 파이프라인의 경우 소프트렌더러(소프트래스터라이저)를 한번 짜보는 것이 가장 좋다고 생각합니다. 한번 짜보면 렌더링 파이프라인 과정이 왜 그렇게 설계되었는지 이해됩니다. 굳이 DX나 엔진 공식 문서를 보면서 암기할 필요는 없을 것 같습니다.
일단 답변을 달아봤는데 모두 시간의 문제네요.. ㅜㅜ
와 퀄리티 있는 답변 너무 감사합니다. 말씀해주신대로 추가적인 내용 학습하는 것이 큰 도움이 될 것같네요 해당 내용들 학습 후에 물리를 학습하는 방향으로 가겠습니다 언리얼5 강의도 잘 듣고있습니다 감사합니다