반응형 [C++로 배우는 게임 엔진 개발] Day 24: 카메라 시스템 구현 카메라 시스템 구현오늘은 3D 씬을 탐색하고 조작할 수 있는 카메라 시스템을 구현하는 방법을 학습하겠습니다. 카메라 시스템은 게임 엔진에서 중요한 역할을 하며, 사용자가 3D 세계를 탐색하고 상호작용할 수 있도록 합니다.1. 카메라 클래스 설계카메라의 위치, 방향 및 프로젝션을 관리하는 Camera 클래스를 설계합니다. 헤더 파일 작성include/Camera.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef CAMERA_H#define CAMERA_H#include #include enum Camera_Movement { FORWARD, BACKWARD, LEFT, RIGHT};const float YAW = -90.0f;const float PITCH = 0.0f;cons.. 2024. 8. 1. [C++로 배우는 게임 엔진 개발] Day 26: 스카이박스와 환경 맵핑 스카이박스와 환경 맵핑오늘은 스카이박스와 환경 맵핑을 통해 3D 씬의 시각적 품질을 향상시키는 방법을 학습하겠습니다. 스카이박스는 게임의 배경을 설정하여 더 몰입감 있는 환경을 제공하며, 환경 맵핑은 물체가 주변 환경을 반사하는 효과를 추가합니다.1. 스카이박스 구현먼저 스카이박스를 구현합니다. 스카이박스는 6개의 텍스처로 이루어진 큐브 형태의 배경입니다. 헤더 파일 작성include/Skybox.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef SKYBOX_H#define SKYBOX_H#include #include #include #include #include #include class Skybox {public: Skybox(); ~Skybox(); bool Initial.. 2024. 8. 1. [C++ 게임 개발 시리즈] Day 25: 3D 게임 프로젝트 시작 (2) 3D 게임 프로젝트 시작 (2)어제는 3D 게임 프로젝트의 기본 구조를 설정하고 간단한 3D 장면을 렌더링하는 방법을 학습했습니다. 오늘은 프로젝트를 확장하여 카메라 컨트롤과 조명을 추가해 보겠습니다.카메라 컨트롤카메라는 3D 장면을 관찰하는 가상 카메라입니다. 카메라를 이동하고 회전시키는 기능을 추가하여 플레이어가 장면을 자유롭게 탐색할 수 있도록 합니다.Camera 클래스 작성카메라의 위치와 방향을 관리하는 클래스를 작성합니다.#ifndef CAMERA_H#define CAMERA_H#include #include #include #include // 카메라 이동 방향 상수enum Camera_Movement { FORWARD, BACKWARD, LEFT, RIGHT};// 기본.. 2024. 8. 1. [C++ 게임 개발 시리즈] Day 23: 3D 모델링과 텍스처링 3D 모델링과 텍스처링3D 모델링과 텍스처링은 게임에서 현실감 있는 그래픽을 표현하기 위해 필수적인 기술입니다. 3D 모델링은 객체의 형태를 정의하고, 텍스처링은 객체의 표면에 이미지를 입히는 작업입니다. 오늘은 간단한 3D 모델을 로드하고, 텍스처를 적용하는 방법을 학습하겠습니다.3D 모델 파일 형식3D 모델 파일 형식은 다양한 종류가 있습니다. 오늘은 간단하고 널리 사용되는 Wavefront OBJ 파일 형식을 사용하겠습니다. OBJ 파일은 3D 모델의 정점, 면, 텍스처 좌표 등을 텍스트 형식으로 저장합니다.OBJ 파일 로딩OBJ 파일을 로드하기 위해 간단한 로더를 작성합니다. 이 로더는 정점, 텍스처 좌표, 면 정보를 읽어들여 OpenGL에서 사용할 수 있는 형태로 변환합니다.#include #i.. 2024. 8. 1. [C++ 게임 개발 시리] Day 24: 3D 게임 프로젝트 시작 (1) 3D 게임 프로젝트 시작이제까지 학습한 3D 그래픽 기법을 활용하여 간단한 3D 게임 프로젝트를 시작하겠습니다. 오늘부터 3일간에 걸쳐 3D 게임 프로젝트를 단계별로 완성해 나갈 것입니다. 첫 번째 단계로 게임의 기본 구조를 설정하고, 간단한 3D 장면을 렌더링해보겠습니다.프로젝트 설정프로젝트 구조먼저, 프로젝트 디렉토리 구조를 설정합니다.3DGameProject/|-- include/|-- src/| |-- main.cpp| |-- Shader.h| |-- Shader.cpp|-- resources/| |-- textures/| |-- models/|-- CMakeLists.txtCMake 설정프로젝트를 빌드하기 위해 CMake 설정 파일을 작성합니다.cmake_minimum_requ.. 2024. 8. 1. [C++ 게임 개발 시리즈] Day 22: 3D 그래픽 기초 3D 그래픽 기초3D 그래픽은 2D 그래픽보다 복잡하지만, 게임을 더욱 몰입감 있게 만들어 줍니다. 오늘은 3D 그래픽의 기본 개념과 함께 OpenGL을 사용하여 간단한 3D 장면을 렌더링하는 방법을 학습하겠습니다.3D 그래픽의 기본 요소3D 그래픽은 3차원 공간에서 객체를 표현하고, 이를 2차원 화면에 렌더링하는 과정입니다. 3D 그래픽의 주요 요소는 다음과 같습니다:좌표 시스템(Coordinate System): 3D 공간에서 객체의 위치를 나타내는 방법입니다.카메라(Camera): 3D 장면을 관찰하는 가상 카메라입니다.모델(Model): 3D 객체의 형태와 구조를 정의하는 데이터입니다.광원(Lighting): 3D 장면에 조명을 추가하여 현실감을 더합니다.쉐이더(Shader): 그래픽 처리 파이프.. 2024. 8. 1. 이전 1 다음 반응형