본문 바로가기

서평/코딩, 개발

세이더프로그래밍입문 후기

반응형

알라딘 전자책 PC뷰어

※ 저는 게임개발자가 아니어서 게임업계에 대해 틀린 내용이 있을 수 있음을 알려드립니다.

 

 

 김포프님의 셰이더 프로그래밍 입문.

절판된 책이지만 알라딘에서 전자책 구매가 가능하길래 사서 공부해봤습니다.

렌더몽키를 이용한 HLSL와 C++로 DirectX9 실습을 하면서 셰이더 프로그래밍의 기본을 배울 수 있습니다.

 

 

 프로그래머가 알아볼 수 있는 언어로 구성되어 있고, 그 안의 프로세스도 지극히 하드코어 한 공학적 내용입니다. 그렇지만 그런 수학적 프로그래밍 결과물이 예술이 되어 나오는, 공학과 예술이 조합된 신기한 세계라고 할 수 있습니다.

- 셰이더 프로그래밍 입문, 정종필님의 추천의 글

 

 

 많은 초보 개발자들에게 셰이더는 미지의 영역입니다.

커뮤니티를 살펴보면 많은 사람들이 관심을 가지고 정보를 물어보기는 하지만, 만족할만한 성과를 내기 전에 그만두는 사람이 대부분인 듯합니다. 아마 셰이더를 프로 수준으로 잘하기 위해서는 미적 감각 + 코딩 + 수학적 지식을 모두 충족해야 하기 때문이 아닐까 생각합니다. 많은 분들이 이 준비과정에 대해 겁을 먹어 관심을 접고 다른 관심사를 찾아보는 것처럼 보였습니다.(특히 수학에 겁을 먹는 사람이 많은 듯합니다)

 

 저는 뭐든지 꼭 현업 수준으로 잘해야 될 필요는 없다고 생각합니다. 현업에서 당장 테크니컬 아티스트(TA) 업무를 할 수 있는 수준으로 공부를 할 수 없다고 해도, 수학 지식이나 깊은 수준의 코딩이 필요 없는 입문 수준이라도 알고 있으면 개발을 할 때 도움이 되는 경우가 많았기 때문입니다. 특히 이 책의 '정반사와 난반사' 챕터가 그렇습니다. 이것만 알아도 라이팅이 기괴하게 적용되는 현상을 빠르게 개선할 수 있었습니다. 용어와 개념이라도 알면 엔진이 제공하는 기본적인 기능들의 수치 조절을 할 줄 알게 되고, 그 정도만 돼도 50%의 일은 해결할 수 있다고 생각합니다. 그렇게 우연히 공부한 지식이 도움이 되거나, 취미 겸 공부를 하다가 수학 같은 셰이더에 필요한 지식에 흥미가 생겨 공부하게 될 수도 있고, 그러다 보면 뛰어난 쉐이더 개발자가 되어 일을 하게 될 수도 있다고 생각합니다.

 

 새로운 분야에 발을 디뎌보는 것이 중요하다고 말하고 싶습니다. 꼭 상위 1퍼센트가 될 필요는 없고, 입문 수준의 정보만 가지고 있어도 나중에 은근히 잘 쓰이는 경우가 많습니다. 그리고 셰이더의 기본 개념은 3D 공간을 다루는 개발자와 아티스트들에게 은근히 큰 도움이 되는 분야라고 생각합니다.

 

 

 

왼쪽: 그림자매핑, 가운데: 엠보싱, 오른쪽: 외곽선 찾기

 

 

 

 이 책은 아티스트도 쉽게 접할 수 있으며 프로그래머에게도 기본개념 실습을 통해 좀 더 기초를 탄탄히 다지게 해 줄 수 있는 책입니다. 행렬의 곱과 벡터의 내적, 외적 정도의 지식을 가지고 있으면 이 책을 이해하는데 큰 무리가 되지 않으며, 기초 수준의 C/C++을 알고 있다면 프로그래머를 위한 DirectX 9 강의도 어려움 없이 따라 할 수 있습니다. 책의 난이도가 낮지만 이 책이 알려주는 기초지식은 매우 탄탄하다고 생각합니다. 지금까지 감으로 셰이더를 하면서 제대로 이해하지 못했던 부분들(UV나 노말 맵 등)을 조금은 이해할 수 있게 되었습니다. 특히 유니티를 하시는 분들이라면 정종필 님의 '유니티 쉐이더 스타트업'과 같이 읽으시는걸 매우 추천드립니다.

 

 

 

 

 

유니티 쉐이더 스타트업 서평

아티스트가 기술을 이해하면, 놀라운 일이 일어납니다! (프로그래머가 아트를 이해하면 놀라운 일이 일어납니다!) ​ 국내 최고의 유니티 셰이더 입문 서적, 대마왕 정종필 교수님이 작성하시고

doobudubu.tistory.com

 

셰이더 프로그래밍 입문

이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서이다. 이 책에서는 정점셰이더와 픽셀셰이더를 이용한 셰이더 기법을 다루고 있다.

www.aladin.co.kr

 

 

 

 

 


책과 관련 없는 이야기

 

어느 커뮤니티의 답변

 

 저는 저 자신을 당당하게 테크니컬 아티스트라고 부를 수 있는 존재가 되기 위해 공부하고 있습니다. 최신 기술 동향을 놓치지 않고 문제를 해결할 수 있는 사람이 되기 위해 기본을 충실히 공부하자 다짐하였습니다. 기초를 위해 영어, 수학, 일본어, C++, OpenGL을 공부하고자 생각하고 있습니다. 위에서는 입문 정도만 해도 쓸모 있다고 말했지만, 저는 입문이 아니라 제대로 파보고 싶은 마음이 생겼기에.. 여기저기서 그래픽스 공부를 위해 모은 정보들을 정리해보았습니다. 저는 공학과 예술이 조합된 신기한 세계를 발전시키기 위해 계속 발전해나가겠습니다.

 

 


 

어느 인디게임 커뮤니티의 답변(사실 제가 질문 안 했어요 ㅎ)

질문: 테크니컬아티스트가 되려면 필요역량이 뭐가 필요할까요? 
A: 수학이요
A: 선형대수-미분
A: 그리고 hlsl..?
B: 그래픽스, 수학이 제일 기본 소양이라고 생각해여

질문: 아하 어느 부분에서 수학이 필요한지 알 수 있을까요?
C: 미적감각....
D: 렌더링 파이프라인에 대한 이해
D: 최소 아트 1개분야 이상의 시니어급 스킬
A: 유니티에서 TA라고 한다면 픽셀에 어떤 색을 입히거나 버텍스 위치를 어케 바꾸거나
A: 혹은 심지어 버텍스자체를 추가하기도 하는데
A: 이 모든게 벡터와 행렬로 표현되고 이를 다룰라면 선형대수는 기본적으로 아셔야해요
A: 거기에 그래픽스 최신기술들도 다 미적분학 기초로 되어있어서
A: 공부 문서를 읽기 위한 기본조건이 선형대수랑 미적분학
D: 수요는 꽤 있습니다
E: 모든것
E: 렌더링할때 거의 모든 연산이 수학에 기반하기 때문이죠


 

 

OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛미디어

Tutorial Learning OpenGL

 

https://learnopengl.com

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V 9th Edition

OpenGL Superbible: Comprehensive Tutorial and Reference

 

 

 

 

OpenGL – GIS Developer

OpenGL을 처음 접하는 분들에게 단계적으로 쉽고 빠르게 OpenGL을 익힐 수 있는 튜토리얼입니다. OpenGL을 이미 알고 계시는 분들에게도 Reference로써 활용될 수 있습니다. 개인적으로도 OpenGL을 이용한

www.gisdeveloper.co.kr

 

DirectX, OpenGL 무엇을 공부해야 하는가

​​한줄요약 : 어느걸 선택해도 상관없다.​게임을 만들고 싶다. 영화 속 특수효과에 관심이 있다. CG(...

blog.naver.com

 

새로운 그래픽 프로그래머가 OpenGL 대신 Vulkan을 학습해야합니까?

 

qastack.kr

 

chan blog

 

chanhaeng.blogspot.com

 

반응형