Thumbnail
개발 · 프로그래밍 기타 (개발 · 프로그래밍)

OpenGL 쉐이더 (5) shader 3D 그래픽스 - 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인 대시보드

(5)
3개의 수강평 ∙  86명의 수강생

26,400원

지식공유자: 드립커피+한모금더
총 29개 수업 (4시간 3분)
수강기한: 
36개월
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[개발 · 프로그래밍, 게임 프로그래밍] 강의입니다.

✅ 전체 (1) ~ (8)의 시리즈 중, (5) 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인 ✅ OpenGL, 3D 그래픽스 프로그래밍, 기초 이론부터 ✅ 고급 GLSL 쉐이더 코드 (벡터, 행렬, 블린-퐁 쉐이딩, 텍스처 매핑) 까지 다룹니다.

✍️
이런 걸
배워요!
게임 엔진 / 클라이언트 단의 3D 그래픽스 핵심 기능
3D 그래픽스 이론 + 수식 + 구현 코드
OpenGL 쉐이더 랭귀지 (GLSL) + 게임엔진 알고리즘
이 강의는 - 파트 (5) 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인
로드맵 "OpenGL 쉐이더"에서 ✅묶음 할인 쿠폰✳️ 제공

이론으로 배우고, 코드로 구현하는 
3D 그래픽스 프로그래밍 with OpenGL! 

OpenGL을 활용한 
3D 그래픽스 프로그래밍

  • OpenGL 쉐이더 랭귀지(GLSL)로 3D 그래픽스 프로그래밍을 설명합니다.
  • 게임 엔진에서 사용되는 3D 그래픽스의 핵심 기능을 GLSL 프로그램으로 직접 구현합니다.

"OpenGL 쉐이더 shader 3D 그래픽스 프로그래밍" 강의는 GLSL 프로그래밍 언어를 사용해 생동감 있는 3D 그래픽스를 구현하는 방법을 배우게 됩니다. 다양한 영역에서 광범위하게 쓰이는 OpenGL 기반으로 3D 그래픽스 프로그래밍에 대한 이론과 실습을 함께 익힐 수 있도록 강의를 구성하였습니다. 

👉 3D 그래픽스 프로그래밍에 관심이 있으셨다면, 이번 강의를 통해 3D 그래픽스 마스터에 도전해 보세요!
👉 로드맵 강의 "OpenGL 쉐이더"로도 제공됩니다. 꼭 체크해 보세요! ✅


혹시 내 얘기 아닌가요?

3D 그래픽스 기초 이론, 3D 좌표계, 카메라 시뮬레이션 등을 체계적으로 공부하시려는 분

OpenGL로 게임 렌더링 엔진 등, 3D 그래픽스 출력 프로그램을 작성하시려는 분

PC, 휴대폰, 웹 등에서 두루 쓰이는 GLSL 쉐이더 랭귀지를 이해하려는 분

게임 엔진의 각종 용어 및 설정 파라미터의 정확한 의미를 이해하고 싶으신 분

  •  기하학 개념과 수식을 따라가다 보면, 컴퓨터 프로그램으로 카메라를 시뮬레이션해서 정확한 이미지를 만들어 낼 수 있습니다.
  •  게임 엔진에서 사용하는 파라미터들의 정확한 의미를 이해할 수 있습니다.

3D 컴퓨터 그래픽스 핵심 3-Step

탄탄한 개념 설명

컴퓨터 그래픽스 기초 개념부터 수학적 전개 과정, 실제 코드까지 차근차근 필요한 개념을 학습합니다.

실습은 필수!

풍부한 프로그래밍 실습을 통해 실제 작동하는 소스 코드를 기반으로 하나하나 따라해볼 수 있습니다.

중요한 부분에 집중해서

이미 설명한 소스 코드에 대해서는 중복 설명을 최대한 줄이고, 바뀌었거나 강조해야 할 부분에 집중하여 학습합니다.


OpenGL 쉐이더 (5) 3D 그래픽스 
학습 내용 살펴보기

이 강의에서는 (5) 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인에 대한 이론과 실제 코드를 소개합니다.

3D 카메라 뷰잉

3D 프로젝션

뷰포트 설정


Q&A 💬

Q. 유료 강의의 수강평은 어떤가요?

유료 강의가 (1) ~ (7) 로 순차적으로 오픈되어서, 수강평이 흩어져있고, 아직 비공개입니다. 유료 강의는 현재 다음과 같은 수강평들을 받았습니다.

  • 지금까지 들었던 OpenGL 강의 중 가장 잘 정리된 강의라고 생각합니다.
  • 설명이 자세하고 친절합니다. OpenGL 공부하기가 어려웠는데 많은 도움을 받았습니다.
  • (3D 그래픽스 관련된 수식들은) 수식 자체가 어렵진 않아도 도출해내는 과정이 이해하기가 쉽지 않은데 자세하게 설명해주셔서 이해에 도움이 됐습니다.

Q. WebGL 과는 어떤 관계가 있나요?

WebGL 은 이 강의에서 설명하는 OpenGL 의 JavaScript 버전 입니다.

OpenGL 은 원래 C/C++ 언어용으로 개발되었고, 이 강의에서도 C/C++ 언어를 기준으로 설명합니다. 나중에 HTML5 가 나오면서, web에서 사용할 수 있는 3D 그래픽스 표준으로 OpenGL 이 채택되었고, JavaScript 에서 OpenGL 을 사용할 수 있도록, 일부 문법을 변경한 것이 WebGL 입니다.

JavaScript를 사용하시는 분이라면, 기본 이론과 C/C++ 기준 설명이더라도 응용하시는데 큰 문제가 없습니다. WebGL 을 공부할 때 어려운 부분은 문법이 아니고, OpenGL / WebGL 의 기능, 내부 구조, 수학 이론, 광학 계산 등인데, 그 부분은 OpenGL 이든, WebGL 이든, 동일한 이론을 배우셔야 하고, 이 강의에서 잘 설명하고 있습니다. 실제로 이 강의를 들으면서 WebGL 을 공부하시는 분들도 있으십니다. 

Q. Vulkan 과는 어떤 관계가 있나요?

3D 그래픽스 라이브러리의 출현 순서로는 Vulkan 이 OpenGL 이후에 나왔습니다만, OpenGL 은 application programmer 수준에 맞추었고, Vulkan 은 일부 system programmer 수준에 맞춘 측면이 있습니다. 그래서, 많은 경우에, Vulkan 의 학습 난이도가 훨씬 높다고 이야기 합니다. 

많은 경우에, 3D 그래픽스에 많은 경험이 없는 경우라면, Vulkan 보다는 OpenGL 을 먼저 공부하고, 충분한 준비가 되었을 때, Vulkan 으로 전환하시기를 권하고 있습니다. 실제로 외국 사례에서도, Vulkan 강의는 전문가 과정으로 개설되지, 초보자용으로 개설되는 경우는 거의 없습니다. 

Vulkan 강의는 이번 OpenGL 강의가 완결된 후에, 전문가 심화 과정으로 개설될 예정입니다.

Q. 실습에 필요한 하드웨어 사양은 어느 정도인가요?

OpenGL 3.3 이상 버전을 기준으로 실습을 하게 됩니다. 최근 5년 이내의 데스크탑 또는 노트북이라면 실습에 큰 지장은 없을 것으로 보입니다. (NVIDIA 또는 AMD 그래픽카드 및 그래픽 칩이 장착된 경우가 좋습니다. 최소한 Intel GMA 계열이라면 최근 칩들이 좋습니다.)

다만, 필요한 개발용 소프트웨어들을 깔아서 개발 환경을 만들어야 할 필요는 있습니다.

Q. 실습 환경으로 소프트웨어를 깔아야 하나요?

OpenGL 3.3 이상이 지원되는 그래픽스 드라이버를 깔아야 하고, GLFW, GLEW, GLM 등의 공개 라이브러리 들을 설치해야 합니다. 강의 중간에 해당 라이브러리를 설치하는 방법을 설명하고 있습니다만, 단순히 exe 파일을 클릭하면 그냥 깔리는 방식은 아닙니다. WIndows의 DLL 폴더, Visual Studio 컴파일러의 include 폴더, lib 폴더에 각각 필요한 것들을 설치해야 합니다. (리눅스에서는 apt 명령으로 설치 가능합니다.)

Q. 수강 기한을 설정하는 이유가 있나요?

수강 기한을 설정한 것은, 컴퓨터 분야 특성상 그 정도의 시간이 지나면 이 강의 내용이 이미 옛날 이야기가 될 가능성이 크기 때문입니다. 
그때쯤엔, 새로운 강의에서 다시 찾아뵙겠습니다. 😄

Q. 동영상에 자막이 들어가 있나요?

일부 수업 영상에는 자막이 들어가 있습니다만, 대부분 자막을 지원하지 않습니다. 자막이 새로 제작될 경우 자막이 있는 영상으로 예고없이 교체할 수도 있습니다.

📢 수강 전 확인해주세요!

  • 이 강의는 "OpenGL 쉐이더 shader 3D 그래픽스 프로그래밍" 시리즈의 5번째 강의입니다.
  • 강의는 Windows 10/11 운영체제 + Visual Studio 2019/2022 C++ 컴파일러를 기준으로 설명합니다.
  • 학습 내용에 맞춰 강의에 쓰인 PPT를 PDF 파일로 제공합니다.
  • 강의 영상 및 PDF 파일에 사용한 그림 및 사진 중 일부는 Public Domain이 아니라 별도의 저작권 보호를 받습니다. 이 경우 따로 저작권자로부터 지식공유자가 제한된 사용 허가를 받아서 사용했기 때문에, 만약 다른 분께서 사용하시려면 반드시 원저작권자의 사용 허가를 받으셔야 합니다. 주의하시기 바랍니다.
  • PDF에 쓰인 한글 폰트로는 "본고딕" Noto Sans KR, 영문 폰트로는 Source Sans Pro 및 Source Serif Pro를 사용하였습니다. 링크를 통해 모두 무료로 내려받으실 수 있습니다.

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
3D 그래픽스 기초, 카메라 시뮬레이션, 쉐이딩
OpenGL 로 3D 그래픽스 출력 프로그램 작성
GLSL 쉐이더 랭귀지로 3D 그래픽스 프로그램 작성
게임 엔진의 설정, 용어, 파라미터의 의미 이해
📚
선수 지식,
필요할까요?
C/C++ 프로그래밍 경험
컴퓨터 구조 지식 - 프로세서, 메모리, 레지스터 구조
컴퓨터 전반에 대한 상식 - PC 구조, 운영체제 역할

안녕하세요
드립커피+한모금더 입니다.
드립커피+한모금더의 썸네일

꽤 오랜 시간동안 프로그래머, 또한 개발자와 강사로서 활동해 오고 있습니다.

병렬 처리, CUDA, 3D 그래픽스, OpenGL, OpenCL, Vulkan 에 대한 🏃

용역, 외주, 개발, 상품화, 강의, 자문, 과제 등등을 수행 중 입니다 🙊

커리큘럼 총 29 개 ˙ 4시간 3분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 51. 3D 뷰잉 viewing
51-0 오프닝 미리보기 00:54
51-1 뷰잉 viewing (강의 PDF 포함) 14:13
51-2 모델 변환 model transform (소스 코드 포함) 15:53
51-3 뷰 변환 view transform 26:19
51-4 뷰의 회전 미리보기 08:47
51-5 look-at 방법 10:16
51-6 look-at 추가 내용 06:08
51-7 다른 뷰잉 방법들 04:44
51-F 클로징 00:37
섹션 1. 52. 3D 프로젝션 projection
52-0 오프닝 미리보기 00:58
52-1 카메라 세팅 (강의 PDF 포함) 06:04
52-2 orthographic 프로젝션 (소스 코드 포함) 18:37
52-3 직사각형 윈도우 프로그램 13:15
52-4 orthographic 프로젝션 추가 내용 미리보기 04:18
52-5 perspective 프로제션 10:58
52-6 view frustum 20:33
52-7 view frustum 프로그램 04:25
52-8 view frustum 추가 내용 07:25
52-9 view frustum 추가 프로그램 03:31
52-F 클로징 00:33
섹션 2. 53. 뷰포트 viewport
53-0 오프닝 미리보기 00:53
53-1 field of view, FOV (강의 PDF 포함) 06:46
53-2 MVP: model, view, projection (소스 코드 포함) 04:38
53-3 뷰포트 세팅 15:50
53-4 뷰포트 프로그램 미리보기 07:57
53-5 scissor 프로그램 13:19
53-6 뷰포트 사이즈 세팅 14:50
53-F 클로징 00:30
강의 게시일 : 2023년 05월 12일 (마지막 업데이트일 : 2023년 05월 12일)
수강평 총 3개
수강생분들이 직접 작성하신 수강평입니다.
5
3개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
몽크in도시 thumbnail
5
강의 잘 들었습니다. 수식의 의미와 해석이 명확해서 이해하기 쉬웠습니다.
2023-07-19
지식공유자 드립커피+한모금더
안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 🍀 OpenGL 이나 3D 그래픽스 분야의 수식들이 쉬워 보이면서도, 얼른 이해하기는 까다로운 경우가 많습니다. 이 강의에서는 원리부터 자세하게 설명하고 있습니다. 감사합니다. 🍀
2023-07-19
염동환 thumbnail
5
잘보고있어요
2023-07-16
지식공유자 드립커피+한모금더
안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 🍀
2023-07-16
thestand9 thumbnail
5
수식이 많이 나오는데 수식 자체가 어렵진 않아도 도출해내는 과정이 이해하기가 쉽지 않은데 자세하게 설명해주셔서 이해에 도움이 됐습니다.
2023-06-03
지식공유자 드립커피+한모금더
안녕하세요.🌞 좋은 평가를 해주셔서 감사합니다. 그래픽스에서 나오는 수식을 잘 이해해야 게임 엔진이나 다른 응용에서 사용 가능해서, 되도록 자세히 설명하려고 노력했습니다. 감사합니다. 🍀
2023-06-04
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!