본문 바로가기

게임엔진5

[번역] 렌더링 엔진 동작 원리 찍먹해보기-2 원문을 공부하며 번역/의역한 것입니다. 이 과정에서 오류가 있을 수 있습니다. 오류가 있을 시 알려주시면 다시 공부해서 고치도록 하겠습니다! Basic Shader Operation 가장 기본적인 OpenGL 연산은 Vertex position (attibutes)와 Model-World-View 공간(Uniform) 데이터를 필요로 한다. Vertex Shader는 Attribute 뎅이터를 Model-World-View 공간 데이터로 변환하고 Fragment Shader에 전달해 준다. 그리고 Fragment shader는 받아온 Fragment의 색을 채우는 역할을 한다. 여기까지는 이전 포스트에서 OpenGL의 파이프라인을 다루면서 이해한 바 있다. Manipulating 2D/3D Views w.. 2022. 4. 5.
[번역] 렌더링 엔진 동작 원리 찍먹해보기-1 원문을 공부하며 번역/의역한 것입니다. 이 과정에서 오류가 있을 수 있습니다. 오류가 있을 시 알려주시면 다시 공부해서 고치도록 하겠습니다! 렌더링 엔진을 개발하기 위해서는 OpenGL 과 GPU Shader가 어떻게 동작하는 지를 이해하고 있어야 한다. 본문에서는 이에 대해 간략하게 소개하려고 한다. GPU의 주요 데이터 타입을 살펴보고 셰이더에 대해 간단하게 설명하므로 어떻게 렌더링이 이뤄지는지 찍먹해보도록하자. GPU의 데이터 화면의 픽셀을 렌더링 하기 위해서는 GPU와 데이터 교환을 해야한다. 그 교환을 위해 거쳐가는 매개체가 되는 것이 바로 OpenGL이다. 프로그래밍 언어라기보다 API에 가깝고, CPU와 GPU사이의 데이터를 교환해주는 목적을 지닌다. 즉, 그래픽 개발자라고 한다면 데이터를 .. 2022. 4. 5.
[감 익혀보기] Strategy Design Pattern with C++ 본문을 공부하며 정리한 내용입니다. 프로그래밍을 하다보면 변경은 꼭 일어나기 때문에 항상 대비를 해둬야한다. 너무 딱딱하게 작성하면 안되고 유연해야한다. 그러기 위해 디자인 패턴을 사용하는 것이고, 디자인 패턴은 프로그램을 유연하고 독립적이고 유지관리가 편하고 사용성 높도록 도와준다. 그 중 Strategy 패턴은 계속 달라지는 행위를 정의할 때 클래스를 수정하지 않아도 되게끔 해준다. 몇 가지 원칙을 보면서 본 디자인 패턴을 익혀보자 Principle 1. 변하는 것은 항상 캡슐화 하자! 항상 클래스가 어떻게 행동(behavior)하는지를 살피고, 찾았다면 이를 캡슐화 해야한다. 예를 들어서 오리 클래스를 생각해보자면 울음과 비행이 행동(behavior)이 되겠다: class Duck{ void qua.. 2022. 3. 31.
게임엔진에 사용되는 디자인 패턴(Harold Serano) 원문: Design Patterns in Game Engine Development 이제 막 프로그래밍 언어들의 구문/문법을 알게 된 것이 프로그래머가 되었다는 말은 아니다. 아니라고 하고 싶지만 트루다. 진짜 프로그래머가되려면 데이터구조, 알고리즘, 그리고 디자인 패턴에 대한 지식이 필요하다. 문법을 아는 것은 알파벳 아는 정도이다. 누구든지 일주일이면 프로르램의 구문이나 문법을 배울 수 있지만, 모듈화 되어있고 유연하고 유지관리한 프로그램을 개발하는 것은 불가능하다. 이게 독자분의 동기를 오히려 감쇠시킨 것 같지만, 디자인패턴을 배워서 훌륭한 개발자가 되어 봅시다! 제일 많이 사용되는 디자인 패턴은 아래와 같습니다. Singleton Design Pattern: 프로그램이 시작될 때 클래스가 최초 한.. 2022. 3. 28.
물리엔진 개발 로드맵(Harrold Serrano) Harrold Serrano 는 Untold Engine이라는 인디 게임엔진을 개발하였다. 그가 물리엔진을 개발하는 방법에 대해 공유하고 있어 이를 번역하려 한다. 어떻게 게임엔진 개발자가 되는가? Step 1: 선형대수학을 배우자! 선형대수학을 먼저 배우자. 벡터나 행렬 계산을 자유롭게 할 수 있도록 익혀두자. 예를들면 내적, 외적, 회전행렬이 있다. Step 2: 프로그래밍 언어를 배우자 (C++) 다음으로는 프로그래밍을 할 수 있어야 한다. 일단 추천하는 언어는 C++이다. 전문가가 될 필요는 없으나, 꼭 알아야할 개념이 있다: classes, methods, inheritance, polymorphism and encapsulation. Step 3: 이제 수학 엔진을 만들자 이전에 익힌 벡터와 .. 2022. 3. 27.