개발 · 프로그래밍

/

개발 · 프로그래밍 기타

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

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

(5.0) 수강평 3개

수강생 93명

Thumbnail

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

이런 걸
배워요!

  • 게임 엔진 / 클라이언트 단의 3D 그래픽스 핵심 기능

  • 3D 그래픽스 이론 + 수식 + 구현 코드

  • OpenGL 쉐이더 랭귀지 (GLSL) + 게임엔진 알고리즘

  • 이 강의는 - 파트 (5) 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인

upgrade된 "시즌 2"가 9개의 시리즈 강의로 5월 말 오픈됩니다.

  • "시즌 1"은 (1) ~ (7) 번 강의를 이대로 유지할 예정입니다.
  • "시즌 2"는 "시즌 1"의 (1) ~ (7)을 upgrade 했고, 새로 (8), (9)를 추가했습니다.
  • "시즌 1"의 (1) ~ (n) 까지 수강한 분은 "시즌 2"의 (n+1) 부터 들으시면 그대로 연결됩니다.

 

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

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

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

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

👉 3D 그래픽스 프로그래밍에 관심이 있으셨다면, 이번 강의를 통해 3D 그래픽스 마스터에 도전해 보세요!


혹시 내 얘기 아닌가요?

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 구조, 운영체제 역할

One more cup of drip coffee for the road

커리큘럼

전체

29개 ∙ (4시간 3분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!