2012-02-16 2 views
2

없이 OpenGL을 developement에 환경 : 드라이버는 OpenGL은 하드웨어 렌더링 동안 http://www.linuxquestions.org/questions/linux-software-2/opengl-vs-mesa-whats-the-diff-351037/설정 방법 내가 여기서 무엇을 읽고에 따르면 메사

메사, 소프트웨어 렌더링입니다.

모든 튜토리얼은 전체적으로 Mesa를 설치하는 방법 만 보여주었습니다. 진정한 (하드웨어 가속화 된) OpenGL을 어떻게 설정합니까? 드라이버를 설치하면 헤더가 설치됩니까? 그렇다면 어떤 헤더입니까? 메사 (mesa)로 컴파일 된 프로그램을 가지고 있다면 하드웨어를 가속화하기 위해 재 컴파일해야합니까? 드라이버를 설치하면 필요한 라이브러리와 헤더를 설치하면 메사는 어떻게됩니까?

뾰족한 사이트의 마지막 게시물에서 : "NVidia 드라이버가 설치되어 있다면 메사 패키지를 제거해야합니까?"

는 또한, 지금 OpenGL을 지금 버전 4, 5,하지만 난 그 버전 만 버전 3 최대의 컨텍스트를 만드는 방법을 보여 모든 자습서 ...

당신이 볼 수처럼를 찾을 수 없습니다, 메신저 어떻게이 작품이 잘 모르겠습니다.

마지막으로 한 책인 http://glprogramming.com/red/은 OpenGL 버전이 무엇입니까? 가이드 버전은 1.1이지만 그것이 어떤 버전으로 작성되었는지는 밝히지 않았습니다.

+0

여기에 * 많은 * 질문이 있습니다. 당신은 정말로 하나의 주제로 좁혀 야합니다. –

+0

나는이 모든 질문에 당신을 도울 수는 없지만 이러한 링크는 당신이 시작하는 데 도움이 될 수 있습니다. http://developer.nvidia.com/nvidia-graphics-sdk-11 http://developer.amd.com/sdks/Pages/default.aspx 물론, https://www.opengl.org/sdk/ – spaaarky21

+1

Btw OpenGL 버전 5와 같은 것은 없습니다. 현재 GL 버전은 4.2 –

답변

7

메사는 소프트웨어 렌더링이며 드라이버 OpenGL은 하드웨어 렌더링입니다.

No. Mesa는 OpenGL API의 오픈 소스 구현이며 소프트웨어 래스터 라이저 대체를 제공합니다. 그러나 메사는 인텔, 라데온, radeonhdnoveau에 대한 오픈 소스 GPU 드라이버의 기초입니다.

모든 튜토리얼은 전체적으로 Mesa를 설치하는 방법을 보여주었습니다. 진정한 (하드웨어 가속화 된) OpenGL을 어떻게 설정합니까?

OpenGL은 단지 API 일뿐입니다. 즉, 개발에 사용하는 OpenGL 구현은 중요하지 않습니다. Mesa로 개발할 수는 있지만, 프로그램은 독점 드라이버와도 잘 작동합니다.

드라이버 설치 중 헤더를 설치합니까?

간혹 있습니다. 하지만 대부분의 Linux 배포판에서는이를 방지하고 Mesa 헤더를 표준 개발 리소스로 간주합니다.

메사로 컴파일 된 프로그램이 있다면 하드웨어 가속을 활용하기 위해 다시 컴파일해야합니까?

아니요. 올바르게 실행했으면 libGL.so와 동적으로 실행 파일을 연결하면 프로그램이 OpenGL 구현과 함께 작동합니다.

드라이버를 설치하면 필요한 라이브러리와 헤더를 설치하는 경우 메사가 어떻게됩니까?

배포판에 따라 다릅니다. 일부 배포판에서는 공급 업체 드라이버가 libGL.so를 대체하지만 Mesa 개발 파일은 대체하지 않습니다. 일부 배포판은 libGL.so와 헤더를 대체합니다. 그리고 몇몇 배포판은 OpenGL 구현을/usr/lib/opengl에두고 심볼릭 링크 (Gentoo)를 설정하는 도구를 제공합니다. 실제로 그것은 중요하지 않습니다.

뾰족한 사이트의 마지막 게시물에서 : "NVidia 드라이버가 설치되어 있다면 메사 패키지를 제거해야합니까?"

배포판 패키지 관리자는 경고 메시지를 표시합니다. 하지만 내가 말한 것처럼 : 메사 구현은 OpenGL-2.1 만 지원한다는 것을 제외하고는 걱정할 필요가 없습니다. 그렇다고해서 OpenGL-3 및 상위 프로그램을 컴파일 할 수 없다는 의미는 아닙니다. OpenGL-3 컨텍스트를 만들거나 오류 메시지로 중단하거나 OpenGL-2로 폴백 할 수 없습니다.

+0

입니다. Mesa 구현은 OpenGL-2.1 만 지원합니다. 그렇다고해서 OpenGL-3 및 상위 프로그램을 컴파일 할 수 없다는 의미는 아닙니다. OpenGL-3 컨텍스트를 생성하고 오류 메시지로 중단하거나 OpenGL-2로 폴백 할 수 없습니다. 설명 할 수 있습니까? 어떻게해야 opengl-3을 OpenGL 3 컨텍스트없이 사용할 수 있습니까? – user1115057

+0

@ user1115057 : OpenGL-3은 소위 말하는 "확장"메커니즘을 통해 액세스됩니다. 확장 기능을 사용하면 프로그램에서 OpenGL 구현의 추가 기능을 동적으로로드 할 수 있습니다 (지원되는 경우). 확장 API는 OpenGL-1.1 이후로 수정되었으며 그 이후로 변경되지 않았습니다. 그래서 메사를 사용하여 확장 기능을 사용하여 프로그램을 컴파일 할 수 있습니다. Mesa가 OpenGL 런타임 구현 인 경우 OpenGL-3 기능을 사용할 수 없다고보고하고 프로그램은 OpenGL-2로 되돌아갑니다. 런타임에 OpenGL-3 구현이 가능하다면이 인터페이스에 액세스 할 수 있습니다. – datenwolf

+0

Mesa가 OpenGL 런타임 구현 인 경우 사용할 수없는 OpenGL-3 함수를보고하고 프로그램 muss가 OpenGL-2로 폴백합니다 ... Mesa = no opengl-3 또는 메사 + 확장 없음을 의미합니다. = no opengl-3? 어디에서 연장을받을 수 있습니까? – user1115057

관련 문제