판 비교

이전빈 문서 (처음 만든 판)
이후#171 · AI 조사: 게임 엔진 문서 · GGWiki 자동 ·
+59줄−0줄+5,014자
1번째 줄 근처
추가: ## 개요
추가: OpenAL(Open Audio Library)은 크로스 플랫폼 3차원 오디오 렌더링을 위한 애플리케이션 프로그래밍 인터페이스(API)다. 다채널 위치 오디오를 효율적으로 처리하도록 설계되었으며, API 스타일과 관례를 OpenGL과 의도적으로 유사하게 만들어 그래픽스 개발자가 쉽게 익힐 수 있게 했다[1][2][3]. 환경 음향 라이브러리로서 음향 감쇠(거리에 따른 소리 감소), 도플러 효과(움직임에 따른 주파수 변화), 물질 밀도 시뮬레이션 등을 제공해 게임과 가상 환경의 사실감을 높인다[2][3]. 원래는 다이렉트사운드(DirectSound), 코어 오디오(Core Audio) 등 서로 호환되지 않는 사유 3D 오디오 API를 대체할 개방형 표준이자 오픈 소스 소프트웨어를 목표로 했으나, 실제로는 여러 플랫폼에서 해당 사유 API를 감싸는 래퍼 라이브러리나 벤더 특정적인 사유 포크 형태로 주로 구현되었다[2][3]. 참조 구현은 나중에 사유화되고 유지보수가 중단되었으나, OpenAL Soft 같은 오픈 소스 구현체를 사용할 수 있다[2][3].
추가: ## 특징과 기능
추가: ### API 구조: 소스, 버퍼, 리스너
추가: OpenAL의 핵심 기능은 소스 객체(Source), 오디오 버퍼(Buffer), 단일 리스너(Listener) 세 가지 객체로 인코딩된다[2][3].
추가: - **소스 객체**: 버퍼에 대한 포인터, 소리의 속도·위치·방향, 소리의 강도(intensity)를 포함한다[2][3].
추가: - **버퍼**: 8비트 또는 16비트, 모노럴 또는 스테레오 형식의 펄스 부호 변조(PCM) 오디오 데이터를 담는다[2][3].
추가: - **리스너 객체**: 리스너의 속도·위치·방향, 모든 소리에 적용되는 일반 게인(gain)을 포함한다[2][3].
추가: 렌더링 엔진은 거리 감쇠, 도플러 효과 등에 필요한 모든 계산을 수행한다[2][3].
추가: ### 코어 API와 ALC, ALUT
추가: OpenGL 사양과 달리 OpenAL 사양은 두 가지 서브섹션 API를 포함한다[2][3].
추가: - **코어(Core)**: 실제 OpenAL 함수 호출로 구성된다[2][3].
추가: - **ALC(Audio Library Context)**: 렌더링 컨텍스트, 리소스 사용, 잠금(locking)을 크로스 플랫폼 방식으로 관리한다[2][3].
추가: - **ALUT(Audio Library Utility Toolkit)**: OpenGL의 GLUT과 유사하게 상위 수준의 편의 기능을 제공하는 별도 라이브러리다[2][3].
추가: ### 확장 메커니즘과 고급 효과
추가: 향후 기능 추가를 위해 확장 메커니즘을 활용한다[2][3]. 개별 벤더는 사유 하드웨어의 추가 기능을 노출하기 위해 자체 확장을 배포판에 포함할 수 있다. 확장은 ARB 상태로 승격될 수 있으며, 이는 하위 호환성을 위해 유지될 표준 확장을 의미한다. ARB 확장은 일정 기간 후 코어 API에 추가될 가능성이 있다[2][3]. 고급 디지털 신호 처리 및 하드웨어 가속 사운드 효과를 위해 EFX(Effects Extension) 또는 환경 음향 확장(EAX)을 사용할 수 있다[2][3].
추가: ### 공식 사이트에서 강조하는 특징
추가: 공식 사이트는 OpenAL을 "효율적(Efficient)", "간단함(Simple)", "개방형 API(Open API)"로 소개한다[4]. "EAX와 A3D를 잊으라. OpenAL은 벤더 중립적이다"라고 강조하며, 라이브러리가 3D 공간에서 움직이는 오디오 소스 집합과 그 공간 어딘가에 있는 단일 리스너를 모델링한다고 설명한다[4]. 기본 객체는 리스너, 소스, 버퍼이며, 버퍼는 오디오 데이터를 담고 여러 소스에 연결될 수 있고, 소스는 3D 공간에서 오디오를 방출하는 점을 나타내며, 오디오 컨텍스트당 항상 하나의 리스너 객체가 존재해 렌더링은 리스너 관점에서 수행된다[4].
추가: ### 지원 플랫폼
추가: 데스크톱·모바일·임베디드·게임 콘솔 등 광범위한 플랫폼에서 사용할 수 있다[2][3].
추가: - **데스크톱/서버 OS**: 마이크로소프트 윈도우(다이렉트사운드, Windows Multimedia API, MMDevice API 지원), 리눅스(ALSA, OSS, PortAudio, 펄스오디오 지원), macOS/Mac OS X/Mac OS 8/9(코어 오디오 지원), BSD, OpenBSD, 솔라리스(Solaris), IRIX, QNX, AROS, 모르프OS(MorphOS), 아미가OS 3.x/4.x[2][3].
추가: - **모바일/임베디드 OS**: 안드로이드(OpenSL ES 지원), iOS(코어 오디오 지원), 바다(Bada), 블랙베리 10, 블랙베리 플레이북[2][3].
추가: - **게임 콘솔**: 게임큐브(GameCube), 플레이스테이션 2, 플레이스테이션 3, 엑스박스, 엑스박스 360, Wii, 플레이스테이션 포터블(PSP)[2][3].
추가: ### 라이선스와 구현체
추가: 위키데이터는 OpenAL을 "사유 소프트웨어", 라이선스를 "사유 라이선스"로 분류한다[1]. 그러나 실제로는 여러 구현체가 서로 다른 라이선스로 존재한다[2][3].
추가: - **OpenAL SI(Sample Implementation)**: 로키가 만든 원래 구현체로 현재는 유지보수되지 않는다[2][3].
추가: - **OpenAL Soft**: LGPL 라이선스의 크로스 플랫폼 소프트웨어 구현체다. 사유화되고 폐기된 OpenAL SI를 대체할 자유 호환 업데이트로 제작되었다. 모노, 스테레오(HRTF 및 UHJ 포함), 4채널, 5.1, 6.1, 7.1, B-Format 출력을 지원하며 앰비소닉 자산도 지원한다. 현재 널리 쓰이며 활발히 유지보수·확장되고 있다[2][3].
추가: - **AeonWave-OpenAL**: LGPL 라이선스의 OpenAL 에뮬레이션 레이어로, 아달린 B.V.(Adalin B.V.)의 저비용 비자유 4D 오디오 라이브러리 AeonWave의 하드웨어 가속을 활용한다. 동일 조건에서 OpenAL SI나 OpenAL Soft보다 5~7배 빠르게 3D 오디오를 렌더링한다고 주장하며, HRTF와 최대 8개 스피커까지의 공간화된 서라운드 사운드를 지원한다[2][3].
추가: - **Rapture3D OpenAL Driver**: 블루 리플 사운드(Blue Ripple Sound)가 만든 비자유 상용 윈도우 전용 소프트웨어 구현체다. 고성능 드롭인 교체용으로 설계되었으며, 32비트 부동소수점 오디오 경로, 고품질 샘플 레이트 변환(도플러 이동 포함), 고품질 효과·필터, 다채널 음원 지원(앰비소닉 인코딩 자산 포함), 음원·효과 수 제한이 CPU 성능에만 의존(비교적 오래된 하드웨어에서도 수백 개 음원과 다중 효과 렌더링 가능), 최대 4차(fourth order) 고차 앰비소닉(HOA) 버스 등의 특징을 가진다[2][3].
추가: - **Apple OpenAL**: 애플이 macOS와 iOS에 기본 제공하는 구현체로, 운영체제의 3D Mixer(kAudioUnitSubType_3DMixer) 기능 위에 얹힌 얇은 레이어다. 원래 라이언 C. 고든이 알티벡(AltiVec) 맥 OS X 시스템을 위해 작성했다[2][3].
추가: - **MojoAL**: 라이언 C. 고든이 SDL2 위에 구축한 초소형(단일 파일) 전체 OpenAL 1.1 구현체다[2][3].
추가:
추가: ## 사용 게임
추가: 자료에 구체적인 게임 제목 목록은 명시되지 않았으나, "다음 비디오 게임들은 OpenAL을 사용하는 것으로 알려져 있다"는 문구와 함께 게임 섹션이 존재한다[2][3]. GGWiki 문서 목록에 포함된 타이틀 중 OpenAL 사용이 확인된 경우 별도 표기가 필요하나, 제공된 자료만으로는 특정 게임명을 특정할 수 없다.
추가:
추가: ## 평가
추가: ### 한계와 비판
추가: 자료에 명시된 기술적 한계는 다음과 같다[2][3].
추가: - **단일 리스너 모델**: 단일 인간 사용자에 맞춰져 있어 인공지능·로봇 시뮬레이션이나 협업 음악 공연 같은 다수 참여자 상황에 적합하지 않다. 다중 리스너 모델이 필요하나 제공하지 않는다[2][3].
추가: - **소리 전파 지연 미고려**: 음속을 도플러 효과 계산에만 사용하며, 음원까지의 거리를 진폭 효과(감쇠)로만 변환하고 지연으로 변환하지 않는다. 따라서 도달 시간 차이(Time Difference of Arrival) 계산에 사용할 수 없다[2][3].
추가: - **벤더/하드웨어 전용 구현 의존성**: 풀 스피드 이점을 누리려면 벤더/하드웨어 전용 구현이 필요하나, 이들은 오픈 소스로 공개되는 경우가 드물다[2][3].
추가: - **래퍼 라이브러리 위주 구현**: 지원되는 많은 플랫폼이 사실상 네이티브(종종 사유인) 오디오 API로 호출을 변환하는 래퍼 라이브러리로 OpenAL을 구현한다[2][3].
추가: - **윈도우에서 제네릭 하드웨어 가속 중단**: 윈도우에서 벤더 전용 구현이 감지되지 않으면 `wrap_oal.dll` 래퍼를 통해 다이렉트사운드(제네릭 소프트웨어) 또는 다이렉트사운드3D(제네릭 하드웨어)로 대체된다. 윈도우 비스타 이후 다이렉트사운드3D가 제거됨에 따라 최신 윈도우에서 제네릭 하드웨어 가속이 사실상 중단되었다[2][3].
추가: ### 오픈 소스 대안의 존재
추가: 참조 구현이 사유화되고 유지보수가 중단되었으나, OpenAL Soft가 널리 사용되는 오픈 소스 대안으로 활발히 유지보수·확장되고 있어 실질적인 공백을 메우고 있다[2][3].
추가:
추가: ## 그 밖의 주제
추가: ### 기타 응용 애플리케이션
추가: 게임 외에 다음과 같은 소프트웨어가 OpenAL을 사용하는 것으로 알려져 있다[2][3].
추가: - **블렌더(Blender)**: 비디오 에디터에 OpenAL 사용
추가: - **3DMark06**: 게이머용 벤치마킹 도구
추가: - **돌핀(Dolphin) 에뮬레이터**: 게임큐브 및 Wii 에뮬레이터
추가: - **Vanda Engine**: 2D 및 3D 사운드 시뮬레이션을 위해 OpenAL 1.1 사용
추가: - **Croquet Project**
추가: - **Bino**: 입체 3D 비디오 및 다중 디스플레이 비디오를 지원하는 비디오 플레이어
추가: ### 최신 판 정보
추가: 위키데이터 기준 최신 판은 1.1(인스톨러 2.1.0.0, 2.0.7.0)이며, 프로그래밍 언어는 C, 운영체제는 크로스 플랫폼이다[1].
추가:
추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.