반응형 [C++로 배우는 게임 엔진 개발] Day 16: 2D 조명과 그림자 효과 2D 조명과 그림자 효과오늘은 OpenGL과 GLSL을 사용하여 2D 조명과 그림자 효과를 구현하는 방법을 학습하겠습니다. 이를 통해 게임 그래픽을 더욱 현실감 있게 만들 수 있습니다.1. 조명 효과의 개요조명 효과는 물체의 밝기와 색상을 변경하여 현실적인 느낌을 주는 그래픽 기법입니다. 2D 게임에서는 주로 점광원(Point Light)을 사용하여 조명 효과를 구현합니다.2. GLSL 쉐이더 수정조명 효과를 구현하기 위해 기존의 버텍스 쉐이더와 프래그먼트 쉐이더를 수정하겠습니다. 버텍스 쉐이더shaders/vertex_shader.glsl 파일을 다음과 같이 수정합니다.#version 330 corelayout(location = 0) in vec3 aPos;layout(location = 1) in .. 2024. 8. 1. [C++로 배우는 게임 엔진 개발] Day 17: 입자 시스템 구현 입자 시스템 구현오늘은 OpenGL과 GLSL을 사용하여 입자 시스템을 구현하고, 다양한 시각 효과를 만드는 방법을 학습하겠습니다. 입자 시스템은 폭발, 연기, 불꽃, 눈, 비 등 다양한 시각 효과를 표현하는 데 사용됩니다.1. 입자 시스템의 개요입자 시스템은 작은 입자들로 구성되어 특정한 규칙에 따라 움직이는 시스템입니다. 각 입자는 위치, 속도, 색상 등의 속성을 가지며, 시간에 따라 변화합니다.2. 입자 클래스 설계먼저 입자를 관리하기 위한 Particle 클래스를 설계합니다. 헤더 파일 작성include/Particle.h 파일을 생성하고 다음과 같이 작성합니다.#ifndef PARTICLE_H#define PARTICLE_H#include struct Particle { glm::vec3 .. 2024. 8. 1. [C++로 배우는 게임 엔진 개발] Day 15: 쉐이더 프로그래밍 기초 (GLSL) 쉐이더 프로그래밍 기초 (GLSL)오늘은 OpenGL 쉐이더 언어(GLSL)를 사용하여 기본적인 쉐이더를 작성하고, 다양한 그래픽 효과를 구현하는 방법을 학습하겠습니다. 쉐이더는 GPU에서 실행되는 작은 프로그램으로, 그래픽스 파이프라인에서 중요한 역할을 합니다.1. GLSL 쉐이더의 개요버텍스 쉐이더(Vertex Shader): 각 정점의 위치와 속성을 처리합니다.프래그먼트 쉐이더(Fragment Shader): 각 프래그먼트(픽셀)의 색상을 계산합니다.2. OpenGL 초기화먼저 OpenGL 컨텍스트를 초기화하고, GLSL 쉐이더를 로드하고 컴파일하는 방법을 구현하겠습니다. 헤더 파일 수정include/GameEngine.h 파일에 OpenGL 초기화와 쉐이더 로딩을 위한 함수를 추가합니다.#ifnd.. 2024. 8. 1. 이전 1 다음 반응형