지금 dx11 사용중이고 어느정도 화면에 그릴 수는 있게 됐는데
쉐이더나 머티리얼, 각종 스테이트들을 최대한 적게 바꾸면서 렌더링을 해야하지 않나 싶은데 어캐 해야 할지 모르겠어 ㅠㅠ
보통 포워드 쉐이딩인지 디퍼드 쉐이딩인지에 따라 렌더패스가 다른건 알겠는데 좀 표준적인 코드가 없으니까 현기증난다
그냥 좆대로 하기는 너무 싫고…
혹시 레퍼런스삼을 렌더링 엔진 오픈소스 프로젝트 있으면 추천해줄 수 있을까?
쉐이더나 머티리얼, 각종 스테이트들을 최대한 적게 바꾸면서 렌더링을 해야하지 않나 싶은데 어캐 해야 할지 모르겠어 ㅠㅠ
보통 포워드 쉐이딩인지 디퍼드 쉐이딩인지에 따라 렌더패스가 다른건 알겠는데 좀 표준적인 코드가 없으니까 현기증난다
그냥 좆대로 하기는 너무 싫고…
혹시 레퍼런스삼을 렌더링 엔진 오픈소스 프로젝트 있으면 추천해줄 수 있을까?
개인적으로 추상화 할려고 하기보단 일단 필요한거 어떻게든 만든 다음에 필요없거나 쓸때 이상하거나 어색하다 싶을 때 한 번 중복되는 기능들 정리/통합하고 그런식으로 하는 중
처음에야 API 거의 처음사용해보고 하는 상태에서 만들기 때문에 100% 완벽하게 추상화 하는 것은 불가능한 일인 것 같고.. 자신이 이해한 범위 내에서 만들고 계속 공부해나가면서 확장해나가고 보충해나가는게 맞는 것 같음..
그러니까 결국 하고싶은 말은 일단 하고싶은대로 막 만들어서 자기가 만든 구조의 확장성 한계를 느껴봐야 결국 그때서야 어디를 건드려야 할 지, 뭐를 어떻게 만들어야할 지 보인다는 것.. 당연히 힘들고 어렵고 하기싫은게 맞음.. 한번도 해본적이 없는 영역에 도전하는 거니까.
레퍼런스라고 해도 별거는 없고 깃헙에 direct3d 11 game engine 이런식으로 검색해서 쭉 보고 이정도면 분석해볼만큼 규모가 적당하다 싶으면 한번 슥 보고 그러면 될 것 같아.. 어차피 내가 그 엔진을 쓸것도 아니고, 비슷한걸 만들때는 하나하나 꼼꼼히 읽기보다는 전체적으로 어떤 흐름으로 흘러가는지를 보면 좋았던 것 같음.
혹시 루나책에서 렌더링 초기화부분 1달째 계속 보고있는데 ( 완벽히 이해하려고 ) 나중에 게임 설계할 때 어느정도 프레임워크로 Direct기능 추상화하려면 이 부분 이해도가 중요해보이는데 이 부분 처음에 공부할 때 어떻게 진행해나갔는지 조언좀 해줄 수 있어?
초기화 부분은 이해한다기 보단 초기화는 이런 순서(흐름, 예를들어 Device만들고.. Device로 부터 Immediate context 만들고..)로 진행된다는 것만 알면 되고 기본적으로 중요한건 렌더링 파이프 라인의 각 단계의 순서와 역할 뭐 Input assembly는 버텍스랑 설정된 topology에 기반해서 Vertex buffer에 공급해주고
ㄳㄳ 라이브러리나 함수들 구구절절 외울 필요는 없고 전체적인 흐름만 파악해두기만 해도 된다는 이야기로 이해해도될까?
Vertex buffer에선 공급 받은 vertex들 변환시키고.,. geometry shader에서 필요하면 정점 없애거나 더 만들어지고 tessellation에선 정점가지고 세분화(또는 반대) 작업 하고.. 래스터라이저에서 정점들로 픽셀만들어내고 pixel shader 거쳐서 화면(render target)에 뿌릴 값 계산하고..
암튼 이걸 아는게 제일 중요하고 API에서 제공하는 Resource들은 어떤게 있는지(Texture, Buffer), View들은 왜 있는지.. 실제로 사용할때 어떤식으로 사용되야할지를 이해하는게 중요함
그렇구만.. ㄳㄳ 참고할게 조언 구할땐 뭔가 사례라도 해야하는데 디시라 뭐 줄 수 있는게 없구만 ㅠ
전체적인 흐름과 구성요소들을 파악하고 그 이후엔 필요한것만 찾아서 자세하게
설양님 밑에 댓글 보고 답좀 부탁드릴게요 ㅠ
설양님 감사합니다 근데 추상화를 안하면 코드가 너무 난잡해져서 저는 무조건 하는걸 선호하는 편인데 힘드네요 ㅠㅠ 그래도 많은 사람들이 사용하니까 대중적인 추상화 패턴이 있겠지 싶었죠 저는 배우는 입장이고 두번 일 하기 싫어해서 그냥 막 하면서 고치고 또 고치고 하는 것 보단 처음부터 추상화시키면서 확장시키는걸 선호했습니다
책이나 웹 자료들이 다들 10년도 넘게 된거라 진짜 사람을 지치게 만들고 힘들게 만드네요 ㅠㅠ 하면서도 이게 맞나 의구심만 들어요 화면에 그리기만 하면 뭐하나 싶어요 결국엔 효율적이어야죠 글에 쓴 것처럼 렌더 컨텍스트를 최대한 적게 변경해야 하는데 이런걸 제시해주는 정보는 진짜 별로 없는 거 같아요 메시 배칭이라던가, 런타임에 자동 인스턴싱
일반적인 렌더링 패스, 이런 걸 알아야 어떻게 짜야 할지 계획하고 작성하지 않을까요? 그리기는 그냥 샘플 코드 따라치는 걸로도 얼마든지 가능해 보여서요 웹에 수많은 정보가 있지만 현재도 통용되는 건지, 내 프로젝트에 넣어도 될지 의구심만 생기니까 진척이 없네요
그래서 더 믿을 수 있는 레퍼를 찾으려고 하고 대중적으로 받아들여지는 추상화 패턴을 찾아보려는데 ㅠㅠ 힘드네요 그래픽스 api가 한 두명 쓰는 것도 아니고 저는 좀 스탠다드하고 대중적인 추상화 패턴이 있을 거라고 생각했거요
정말 도움이 되는 글이다