리눅스에서 DirectX 와 같은 API 구현에 대해

CY71의 이미지

http//www.directfb.org

리눅스의 가속 프레임버퍼를 이용한 API 를 구현하는 프로젝트입니다. 현재로써는 매트록스 G550 이하의 카드만 제대로 지원되는 것 같습니다만, 상당한 아이디어더군요. 무거운 X 서버 없이도 GUI 용 소프트를 개발할 수 있고, xdirectfb 를 이용하면 X 용 어플도 사용할 수 있습니다. 투명창 같은 효과는 덤이더군요.
무엇보다 가속 프레임버퍼만 사용가능하다면 하드웨어 종속성을 피할 수 있다는 점이 강점입니다. 원래부터 임베디드 OS 를 염두에 두고 개발되었다고 하는데, 데스크톱에서도 충분히 가치가 있어 보입니다.

개인적으로 리눅스 진영에서 M$ 에게 가장 밀리는 분야가 DirectX 와 같은 API 라고 생각합니다만... directfb 용 게임 라이브러리까지 개발된 상황이라고 하는데, 향후 directfb 가 리눅스용 DirectX 와 같은 형태로 자리잡을 수 있을런지가 궁금하네요. 어떻게 생각하시나요?

bugiii의 이미지

Linux 에서 3D 가속은 OpenGL 이 대세 아닐까 합니다만... DirectX 전체가 아니라 Direct3D 만 놓고 보자면 그것 못지 않게 훌륭하다고 생각합니다. DirectSound 도 적당한 라이브러리 사용하면 되고... DirectShow 가 조금 그렇긴 하지만 그것도 나름대로 적당한(...) 라이브러리 사용하면 뭐.... 그럭저럭 됩니다.

X 자체의 2D 가속과 3D 하드웨어 가속은 3D UI 가 나오기전까지는 분리된 상태로 남을 것 같습니다.

다크슈테펜의 이미지

리눅스에는 SDL있지 않나요...?

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

버려진의 이미지

allegro도 있죠. 게임용이기는 하지만 ^^

예전엔 리눅스가 그래픽 처리는 윈도보다 떨어지겠지.. 하는 생각을 했는데 퀘이크를 돌려보고는 :shock:

익명 사용자의 이미지

Quote:
"가속 프레임버퍼만 사용가능하다면 "

이 무슨 말인가요?
왕초보라 개념이 잘 안서네요..
nrabbit의 이미지

저희 회사에서 제작하는 온라인 겜이 멀티폴랫폼으로 설계된지라 리눅스용으로도 포팅한 적이 있었는데요... 라이브러리들을 이것저것 가져다 쓰니깐 난장판이더군요...ㅡㅡa 하나의 통합된 프레임워크가 정말 절실하더군요...

-----------------------------------------------
Think Different~!

byung82의 이미지

SDL을 쓰시면 거의 통합환경이 됩니다.

OpenGL을 지원도 하고 mpeg Audio ^^;

한번 SDL을 확인 해보시기 바랍니다.

hys545의 이미지

http://www.khronos.org/openml/
openml도 있습니다
opengl이 포함되어있고
OpenML® is a royalty-free, cross-platform programming environment for capturing, transporting, processing, displaying, and synchronizing digital media - including 2D/3D graphics and audio/video streams. OpenML 1.0 defines professional-grade sample-level stream synchronization, OpenGL extensions for accelerated video processing, the MLdc™ professional display control API and the ML™ framework for asynchronous media streaming between applications and processing hardware.

즐린

cinsk의 이미지

OnlyOne wrote:
저희 회사에서 제작하는 온라인 겜이 멀티폴랫폼으로 설계된지라 리눅스용으로도 포팅한 적이 있었는데요... 라이브러리들을 이것저것 가져다 쓰니깐 난장판이더군요...ㅡㅡa 하나의 통합된 프레임워크가 정말 절실하더군요...
  • Neverwinter Nights (Bioware) : SDL (OpenGL) + Miles (sound)
  • Doom3: OpenGL + OSS(sound)
  • Quake3: OpenGL + OSS(sound)
  • TuxRacer: SDL(OpenGL) + SDL(OSS sound)
등입니다.

보통 SDL wrapper를 써서 OpenGL을 쓰고, sound는 OSS 호환 라이브러리를 사용합니다. 그리고 game을 시작할 때, binary executable을 실행해서 게임을 실행하는 것이 아니고, 게임에 필요한 shared 라이브러리를 모두 같이 설치하게 해 놓은 다음, shell script로 LD_LIBRARY_PATH 등 환경 변수를 써서 shared library 위치를 지정하고 binary excutable로 넘어갑니다. 이런 식으로 하면, 배포판이나 라이브러리 호환 또는 설치 문제에 상관없이 통합된? 설치 배포폰을 만들 수 있습니다.

[/]
ganadist의 이미지

doom3에서는 다중 오디오 채널(5.1 써라운드)을 위해 alsa도 지원합니다.

oss api에 다중채널을 위한것도 있긴하던데.. 좀 삐리리한듯 하더군요.

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

정태영의 이미지

사운드 부분은.. openAL 을 사용하는 것도 있더군요 :)

http://www.openal.org/

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

segfault의 이미지

SDL은 Loki의 포트와 언리얼 엔진 포트에도 쓰이고 있습니다.

(언리얼의 경우 사운드는 OpenAL)

SDL은 상용 프로그램에도 쓰일 수준의 그야말로 '완성된' 라이브러리입니다.

yseun의 이미지

제 생각에 Linux의 저변확대를 위해서는 DirectX를 지원하는 API가 필요한 것 같습니다^^