꾸준히 개발하자

고정 헤더 영역

글 제목

메뉴 레이어

꾸준히 개발하자

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (115)
    • Computer Graphics (58)
      • SCOP (9)
      • HumanGL (9)
      • Graphics Pipeline (10)
      • ALEngine (21)
      • Hiking (9)
    • 자료구조와 알고리즘 (43)
      • 백준 (14)
      • 자료구조, 알고리즘 (29)
    • Java 공부 (5)
      • Java 공부 (1)
      • Java 주차별 공부 (3)
      • 더 자바, 코드를 테스트하는 다양한 방법 (1)
    • 리눅스 (8)
      • 리눅스 기초 (8)

검색 레이어

꾸준히 개발하자

검색 영역

컨텐츠 검색

Computer Graphics/ALEngine

  • FT_Newton: 『게임 물리 엔진 개발』 vs Box2D - (4)

    2025.01.15 by Banjosh

  • FT_Newton: Initialization, Integrate, Broad Phase - (3)

    2025.01.10 by Banjosh

  • FT_Newton: 물리 엔진 개요 - (2)

    2025.01.10 by Banjosh

  • FT_Newton: Vulkan 공부 및 리팩토링 - (1)

    2025.01.06 by Banjosh

  • FT_Newton: 나만의 물리 엔진 제작 - (0)

    2025.01.06 by Banjosh

FT_Newton: 『게임 물리 엔진 개발』 vs Box2D - (4)

Narrow Phase와 Solve 단계를 설계하면서 『게임 물리 엔진 개발』 책과 Box2D 코드를 함께 참고해보았다. 사실 물리 엔진은 정해진 구현 방식이 따로 있는 것이 아니기에, 두 자료에서 제시하는 구현 방법이 다를 수밖에 없었고, 그중 하나를 골라 적용해야 했다. 먼저 각 방법의 특징을 요약해보자.1. 『게임 물리 엔진 개발』이 책에서는 대략 아래와 같은 흐름으로 충돌을 처리한다.Broad Phase에서 추려진 충돌 쌍을 Narrow Phase에서 실제 충돌인지 판별실제 충돌로 확인되면 해당 충돌에 우선순위 점수를 설정모든 충돌을 우선순위 큐에 삽입우선순위가 높은 충돌부터 순서대로 처리충돌 처리 후 오브젝트가 움직이면서 새롭게 발생한 충돌들은 다시 우선순위 큐에 삽입이 과정을 정해진 횟수(예:..

Computer Graphics/ALEngine 2025. 1. 15. 16:02

FT_Newton: Initialization, Integrate, Broad Phase - (3)

이번 글에서는 팀원이 구현한 부분인 Initialization, Integrate, 그리고 Broad Phase 단계를 간단히 살펴보려 한다. 물리 엔진의 큰 틀에서 이 단계들은 초기화와 첫 번째 물리 연산 루프에 해당한다.Initialization - World물리 엔진의 초기화 단계는 물리 연산이 이루어질 환경을 설정하는 과정이다. 이 중에서도 가장 중요한 World 클래스 설계부터 살펴보자.World 클래스class World{ public: World(uint32_t size, App &app); ~World(); void startFrame(); void runPhysics(); // ... ContactManager contactManager; App &app; private..

Computer Graphics/ALEngine 2025. 1. 10. 13:11

FT_Newton: 물리 엔진 개요 - (2)

물리 엔진을 설계하기 전, Box2D 코드를 분석하고 『게임 물리 엔진 개발』 책을 통해 기본 개념을 공부했다. 덕분에 물리 엔진의 구조를 어느 정도 이해하고 큰 틀을 잡을 수 있었다.결론적으로, 물리 엔진의 큰 흐름을 이해할 수 있었다.물리 엔진의 구조Initialization (초기화)렌더링 루프에 들어가기 전, 물리 엔진이 작동할 환경을 설정하는 단계Generate World물리 엔진이 작동하는 세계를 생성.World 내부에는 물리 처리를 위한 여러 객체가 존재한다.Rigidbody: 물체의 물리 속성을 관리.Fixture: 충돌 감지와 관련된 데이터.Shape: 물체의 모양 정보.Proxy: Broad Phase를 위한 데이터.Generate Tree For Broad PhaseBroad Phas..

Computer Graphics/ALEngine 2025. 1. 10. 11:47

FT_Newton: Vulkan 공부 및 리팩토링 - (1)

이번 프로젝트부터는 OpenGL 대신 Vulkan API를 사용하기로 했다. OpenGL과 Vulkan을 비교하며 어떤 차이가 있는지, 그리고 실제로 사용하면서 느낀 점들을 정리해보자. Vulkan과 OpenGL둘의 차이를 쉽게 말하면, Vulkan은 개발자가 직접 해야 할 일이 많은 대신 성능에서 이득을 볼 수 있고, OpenGL은 자동으로 처리해주는 부분이 많아 개발 편의성이 높지만 그만큼 오버헤드가 있다. 아래의 간단한 비교를 통해 이를 확인해보자.OpenGLVulkan에 비해 고수준 API로, 드라이버 내부에서 작업을 자동으로 처리기본적으로 단일 스레드로 설계드라이버가 많은 작업을 자동 처리하기 때문에 오버헤드가 높을 수 있음메모리 관리를 자동으로 처리VulkanOpenGL에 비해 저수준 API로..

Computer Graphics/ALEngine 2025. 1. 6. 12:46

FT_Newton: 나만의 물리 엔진 제작 - (0)

FT_Newton는 4명이서 진행 중인 게임 엔진 프로젝트의 물리 엔진 파트다. 원래는 OpenGL을 사용해왔지만, 이번에는 Vulkan을 사용해 물리 엔진을 만들기로 결정했다. 사실 블로그에 작업 과정을 정리하는 게 조금 늦어져버렸는데, 이제라도 어느 정도 완료된 부분들을 정리해보려고 한다.Vulkan 공부지금까지 프로젝트에는 OpenGL을 사용했지만, 최종적으로는 Vulkan 기반 엔진이 목표라 Vulkan으로 전환했다. Vulkan은 OpenGL보다 저수준 API라 GPU에 원하는 작업을 더 디테일하게 지정해줄 수 있고, Fence나 Semaphore 같은 동기화 도구를 통해 멀티 스레드 렌더링이 가능하다는 장점이 있다. 물리 엔진의 구조 공부Vulkan 공부를 마친 후, 물리 엔진 자체를 잘 몰라..

Computer Graphics/ALEngine 2025. 1. 6. 11:16

추가 정보

인기글

최신글

페이징

이전
1 2 3
다음
TISTORY
꾸준히 개발하자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바