OGRE

OGRE는 Object-Oriented Graphics Rendering Engine의 약칭으로, C++로 작성된 공개 3차원 렌더링 엔진이다. 게임뿐 아니라 시뮬레이션과 시각화 프로그램에서도 사용하는 범용 그래픽스 라이브러리이며, 다른 기능을 묶은 완성형 게임 엔진과는 구별된다. 프로...

정식 명칭Object-Oriented Graphics Rendering Engine
분류실시간 3D 렌더링 엔진, 그래픽스 라이브러리
개발 주체OGRE 개발 공동체
작성 언어C++
게임 개발 언어C++ 및 외부 바인딩
그래픽스 APIDirect3D, OpenGL, Vulkan, Metal 등 버전별
장면 구성Scene Manager, Scene Node
주요 기능3D 메시·재질·조명, 셰이더, 애니메이션, 공간 컬링
비포함 기능게임 규칙·오디오·AI·네트워크는 별도 통합
확장 구조플러그인형 장면·렌더링 시스템
주요 플랫폼Windows, Linux, macOS, 모바일 등 버전별
관련 기술OGRE Next
라이선스MIT License
개발 사이트ogre3d.org
소스 코드OGRECave/ogre

OGRE는 Object-Oriented Graphics Rendering Engine의 약칭으로, C++로 작성된 공개 3차원 렌더링 엔진이다. 게임뿐 아니라 시뮬레이션과 시각화 프로그램에서도 사용하는 범용 그래픽스 라이브러리이며, 다른 기능을 묶은 완성형 게임 엔진과는 구별된다. 프로젝트 자체도 오디오·네트워크·AI와 물리 시스템은 사용자가 필요에 따라 통합하는 구조라고 설명한다.[1]

OGRE는 객체 지향 API와 Scene Manager를 통해 카메라·조명·모델·재질 및 화면 렌더링을 관리한다. 화면에 표시할 객체를 장면 그래프와 공간 관리 구조로 조직하고, 시야 밖 객체를 걸러내는 컬링 및 렌더링 순서를 처리한다. 애플리케이션은 장면을 구성하고 각 프레임의 갱신과 입력·게임 로직을 외부 코드에서 관리할 수 있다.

엔진은 Direct3D와 OpenGL 등 여러 그래픽 API를 추상화하고 버전별로 Vulkan·Metal을 포함하는 백엔드 지원을 발전시켰다. 메시·텍스처·셰이더와 물리 기반 재질 및 후처리 기능을 제공하며, 별도 렌더링 경로와 플랫폼 기술은 OGRE의 세대와 모듈 구성에 따라 차이가 있다.[2]

OGRE의 범위는 주로 실시간 그래픽스이므로 게임을 완성하려면 입력, 충돌·물리, 사운드, 네트워크와 게임 데이터 저장 체계를 추가해야 한다. 이 부분은 단점이라기보다 프로젝트에 맞춰 라이브러리를 조합할 자유를 남기는 설계로 볼 수 있다. Scene Manager와 확장 가능한 플러그인 구조는 서로 다른 공간 표현과 렌더링 요구를 수용하도록 한다.

OGRE의 현재 소스 코드는 MIT 라이선스로 공개되며 상용 프로그램에서도 사용할 수 있다. 과거 릴리스에는 다른 라이선스가 적용된 시기가 있었으므로 이전 버전을 재배포할 때는 해당 소스의 라이선스를 확인해야 한다. Irrlicht Engine과 마찬가지로 게임 개발의 그래픽스 구성 요소를 제공하지만 그 자체를 모든 기능이 내장된 게임 엔진으로 단정하지 않는다.[3]

역사

개발과 기술적 배경

엔진 아키텍처

3D 렌더링과 그래픽스

맵·장면과 게임 객체

시뮬레이션·AI·물리

언어와 스크립팅

자산·편집기·개발 도구

지원 플랫폼

라이선스 및 소스 공개

적용 게임·프로젝트

관련 엔진과 문서

  1. OGRE 프로젝트 소개 ↩
  2. OGRE 기능 목록 ↩
  3. OGRE 라이선스 안내 ↩