2009-12-10 2 views
0

OpenGL을 배우기 시작했고, (Ubuntu) Linux에서 어떻게 설정해야할지 모르겠습니다.gtkmm 및 교차 컴파일을 위해 Linux에서 OpenGL 설정하기

나는이 방법이 될 수 있다고 생각한다

의 OpenGL은 그래픽 언어 사양 (또는 인터페이스) 제대로 나는 (특정 OS에 대한) 일부 라이브러리를 다운로드 구현하는 필요가 그것을 사용하는 OpenGL 사양입니다.

오랜 검색 후 여러 소스에서 Mesa 3D 그래픽 라이브러리가 가장 적합하다는 것을 알았습니다.

SDL (Simple DirectMedia Layer) 라이브러리도 있지만 그래픽 (예 : GUI, 사운드, 키보드 및 마우스 입력 ...) 이외의 다른 모든 라이브러리의 라이브러리처럼 보입니다. 그래픽 라이브러리 만 필요하므로 OpenGL 사양을 구현할 것입니다.

그래픽 사용자 인터페이스로서 나는 Gtkmm 라이브러리를 사용하고 있으며 지금까지는 "매우 만족"했습니다. 그래서 gtkmm을 OpenGL과 "연결"하고 싶습니다. - gtkmm 라이브러리의 확장자는 gtkglextmm입니다. GUI에서 OpenGL 애니메이션을 창 (또는 Gtkmm 전문 용어의 DrawingArea)에 그릴 수 있어야한다는 것을 의미합니다 (그러나 아직 시도하지는 않았으므로 그것이 잘 작동하길 바랍니다 :-)).

마지막 문제는 Linux에서 Windows 로의 교차 컴파일 (MinGW 크로스 컴파일러 사용)입니다. 지금까지 Gtkmm 라이브러리로 수행 한 모든 작업을 (Linux에서 Windows로) 성공적으로 컴파일했습니다.

OpenGL과 결합 할 때 크로스 컴파일에 아무런 문제가 없습니다 (예 : Gcc 컴파일러로 컴파일 할 때 특별한 것을 링크해야하거나 응용 프로그램과 함께 일부 Windows OpenGL 라이브러리를 배포해야합니까?) ?

나는 당신이 내가 올바른 방향으로 가고 있거나 올바른 방향으로 나를 돌렸다는 것을 기쁘게 생각합니다. 나는 더 쉽고 좋은 방법으로 뭔가를 할 수있었습니다.

답변

2

와 Windows에서 내 응용 프로그램을 컴파일 팩에는 자신의 libGL.so가 포함되며 libGL.la (.so와의 링크) 및 관련 헤더 파일도 포함됩니다.

  • 는 엔비디아는 - OpenGL을 라이브러리와 헤더는 독점 드라이버 패키지에 포함되어 있습니다.
  • ATi FGLRX - OpenGL 라이브러리 및 헤더는 독점 드라이버 패키지에 포함되어 있습니다.
  • 오픈 소스 드라이버 - OpenGL 라이브러리 및 헤더는 Mesa의 일부로 제공됩니다. 배포본에 따라 필요한 헤더와 링크 가능한 라이브러리를 얻으려면 * -devel 패키지를 설치해야 할 수도 있습니다.

Intel 또는 Matrox 카드를 사용하거나 오픈 소스 드라이버를 사용하는 rage, radeon 또는 radeonhd 드라이버가있는 ATi 카드를 사용하는 경우.

GLUT는 작업 프로그램에 대한 최단 경로입니다. 그렇지 않으면 OpenGL 컨텍스트 (OS 고유)를 직접 작성하는 코드를 작성해야합니다.

문제가 계속되는 경우 효과가없는 것에 대해 Google에 알려주세요.

EDIT 다음은 관련성이 있거나 유용한 몇 가지 샘플 명령/코드입니다.

GCC 컴파일 :

gcc -lGL glprogram.c -o glprogram 

포함 :

#include <GL/gl.h> 
#include <GL/glu.h> 
#include <GL/glut.h> 
+0

일부 쿼리 ... 모든 닫힌 소스 (엔비디아/ATI)를 수행하고 MESA의 headears & libs와 설치시 공통 경로에 이동 기본적으로 (내가 알고있는 ofcourse 내가 그것을 바꿀 수 있습니다 atleast 메사 - 컴파일 될 것입니다 ..)? OpenGL 버전 3.2의 사용 가능 여부는이 드라이버 설치 (GL dir 및 recpective .so)에 따라 결정됩니까 ?? 예. 그렇다면이 드라이버에서 컴파일 된 상위 레벨 툴킷은 OpenGL 3.2 표준을 지원한다고 말할 수 있습니다 ... 맞습니까? 감사합니다. . – ashishsony

+0

그리고 v3.2가 아직 메사에서 지원되지 않는다고 생각합니다 ?? – ashishsony

+0

헤더는 항상 공통 경로에 설치됩니다. 그리고 예, 메사는 여전히 OpenGL 3을 위해 노력하고 있습니다.x 지원 (S3 Texture Compression 확장과 관련된 문제가 있으며 대부분의 오픈 소스 드라이버는 여전히 필요한 기능을 개발 중입니다). –

0

저는 리눅스 영역에서별로 도움이되지 않습니다. OpenGL과 관련해서는 시대에 뒤떨어져 있습니다. 그러나 NeHe has a new set of tutorials처럼 멋진 기본 코드를 작성합니다. 그들이 사이트에서 말하는 것처럼

:

새로운 튜토리얼을 쓸 때 우리는 몇 가지 목표를 가지고 :

  • 쓰기 현대를 사용하여 깨끗하고 간단하고 일관된 코딩 표준
  • 쓰기를 사용하여 C++
  • 전적으로 크로스 플랫폼 (결국 OpenGL의 강점)
  • 사람들이 영감

그래서 내가보기 엔 적어도 자신의 코드 시도를주는 것을 권 해드립니다 우리의 기본 코드를 기반으로 자신의 수업을 제출합니다. NeHe는 아주 훌륭한 자습서를 만드는 오랜 전통을 가지고 있습니다.

1

올바른 패키지가 제공된 상태에서 모두 제대로 작동해야합니다.

Debianrgl 패키지 (OpenGL 장치에서 R을 제공)를 빌드하는 데 사용되는 Build-Depends의 관련 청크가 있습니다.

libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \ 
libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev 

| 대체를 의미한다, 그래서 당신은 메사 기반 패키지 또는 사람들이 다양한처럼 (그래픽 카드와 일치 사용할 수 있습니다 Ubuntu 패키지의 자신의 빌드에 대해 동일한 설정을 사용하여, 당신은 정말 설정 베팅한다 nvidia- * 패키지).

어딘가에있는 OpenGPl 예제를 들고 시도해보십시오.

0

당신은 올바른 방향으로 가고 있습니다. 나는 우분투 리눅스에서 내 응용 프로그램 개발을위한 이클립스 CDT + SDL + OpenGL을 사용 (내가 설정을위한 튜토리얼 사용 : http://www.ferdychristant.com/blog/articles/DOMM-72MPPE)를하고 성공적으로 독점 드라이버는 그래픽 카드에 따라 어느 정도 데브 C++

관련 문제