DirectX 를 이용해서 WAV 파일 재생 - 원래 이렇게 번거로운가요?

2권에서 새로 도입된 오디오 프로그래밍 섹션에 대한 게시판입니다.

Moderator: 류광

Locked
비회원

DirectX 를 이용해서 WAV 파일 재생 - 원래 이렇게 번거로운가요?

Post by 비회원 »

안녕하세요. 올해도 벌써 9월에 접어들었네요.
회원가입 할려고해도 이상하게 잘 안되네요. 다른 분들은 잘 되시는지...


요즘 책을 보면서 DirectX 공부를 하고 있습니다.
(책제목 : Visual C++ 게임제작 고수열강 / 구민미디어)

이책의 2부에 보면 WAV 파일을 재생하는 예제가 나오는데
CWaveFileSound 클래스 파일을(CWaveFileSound.h, CWaveFileSound.cpp) 프로젝트에 추가하고
일단 WAV 파일을 CWaveFileSound 변수에 로딩을 했다가
그런 후에 다시 LPDIRECTSOUNDBUFFER라는 변수에 복사를 하네요.

다른 분들도 이렇게 하나요?
WAV 파일을 바로 로딩하는건 안되나요?
MP3 파일은 지원 안되나요?

제가 예전에 DirectX 말고 다른 사운드 라이브러리를 사용해서 WAV와 MP3 파일을 재생해 본적이 있습니다.
차라리 그게 더 편한것 같네요.

즐건 9월 보내세요.
비회원

Re: DirectX 를 이용해서 WAV 파일 재생 - 원래 이렇게 번거로운가요?

Post by 비회원 »

대부분의 상용화 게임은 사운드라이브러리를 사서 쓰죠...당연이 그게 더 편하니까요...
재생기능만 한다면 모를까...각종 잡기능과 효과처리, 3디지원 같은것 생각해야한다면
사서 쓰는게 훨씬 이득입니다....
그레이오거
Posts: 322
Joined: 2006-01-18 13:25

Post by 그레이오거 »

바로 로딩한다는게 내부과정을 전혀 몰라도 api 하나만 호출하면 사용 준비가 끝나는걸 말씀하시는 건가요?

WAVE 로딩 부분은 길어봐야 100라인 안쪽입니다. 중요한 것들은 이미 direct sound가 모두 해주기 때문에
프로그래머가 할 일은 사실상 파일 열고 내부값을 읽어 포맷에 맞게 생성한 버퍼에 락걸고 복사하는 것 뿐이죠.
각종 버전의 풀소스가 인터넷에 돌아다닙니다. 이 정도면 다른 여타의 기능 구현에 비해서는 정말 환상적인
환경이라고 보여집니다만...

mp3는 상용 포맷입니다. 마일즈같은 사운드 라이브러리야 구매하면 같이 포함된다지만 그런 경우가 아니라면
상업화시 비용을 지불해야 합니다. 물론 개인 취미로 쓰는거는 문제 없지만요. 그래서 게임쪽에서는 라이센스
측면에서 자유로운 ogg를 쓰는 경우도 많습니다.

엔드유저 입장에서 편하기로 따지면 이미 구성된 라이브러리를 쓰는 편이 당연히 좋습니다. 다만 괜찮은 것들은
비용을 지불해야 하고, 아닌 것들은 어짜피 손을 대야 합니다. 즉 공짜로 쓸거면 사실 거기서 거기입니다.

한데... 기술수준이 낮아서 그런지는 모르겠습니다만 사운드 쪽은 의외로 별거 아니다로 치부되는 경향이 있더군요.
이넘도 나름 메모리 많이 먹고 관리 좀만 잘못하면 안드로메다로 가버릴 수 있는 부분인데도요. 비트레이트에
따라 다르긴 합니다만 CD음질급 3분짜리 배경음악 하나가 풀로 메모리에 올라가면 50~60메가 먹습니다. 만약
게임중 배경음이 자주 바뀌고 이펙트사운드가 많이 쓰인다면 사운드 관리도 중요한 이슈가 됩니다.

스트리밍을 쓸거냐 로딩타임때 끝내버릴거냐, 디코딩을 한번에 하느냐 나눠서 하느냐, 동일 음원의 경우 클론을
쓸거냐 말거냐, 버퍼를 필요한 만큼 한번에 생성하느냐 필요할때만 생성하느냐, 3d 사운드의 경우 플레이
명령시 유효범위 안/밖에 따라 어떤식으로 관리할거냐. 음원이 omni냐 cone이냐. 도플러는 어떻게, 반사음까지
재현할 것인가, 차폐물 너머의 사운드 효과는 등등등... 파고들면 이것도 참 골치가 아픕니다.

가져다 쓰는 입장에서는 이런 세밀한 관리가 어려울 수 밖에 없습니다. 안쪽이 어케 되어있는지를 모르니까요.
만들어 쓰는거야 당연히 힘듭니다만 남이 만든거 잘 가져다 쓰기도 만만치 않습니다.
이 동네가 원래 그렇죠 머. 에효... ㅡ,.ㅡ
imays
Posts: 1044
Joined: 2003-02-18 10:29
Contact:

제 답변

Post by imays »

http://www.gpparty.com/viewtopic.php?f=11&t=74 에 답변을 달았습니다.
온라인 게임 서버 엔진 ProudNet
http://www.nettention.com
Locked