OpenGL Programming
OpenGL이란 무엇인가?
- Open Graphics Library의 약자.
- 1992년 Silicon Graphics라는 회사에서 만든 2D와 3D 그래픽스와 관련된 API.
하지만 그때는 저걸 제대로 지원하는 하드웨어가 집 몇채값 - 약 250개의 Function Call로 이뤄져 있다.
어떻게 사용할 것인가?
- 하드웨어별로 특성을 많이 타는 라이브러리고, 가상머신에서 제대로 도는 꼴을 아직 못 보고 있다.
- 보통 Unity Engine이나 Cocos2D 등의 상위 레이어 라이브러리들을 사용하는게 낫다.
Raspberry Pi
- Raspberry Pi에서 OpenGL을 사용하기는 비교적 쉽다.
- Application Processor 안에 VideoCore4라는 코어가 내장되어 있다.
- OpenGL ES 2.0까지 지원한다.
- Raspbian 2014.1 기반으로 설명한다.
- 각종 라이브러리는 /opt/vc/src 에 들어가 있다.
- 일반적으로, /opt/vc의 내용을 홈 디렉토리로 가져와 변경하여 쓰는 방법도 있고, /usr/local에 라이브러리를 집어넣는 방법도 있다.
- 나도 귀찮고 글 보는 여러분도 귀찮을테니, /opt/vc의 내용을 홈디렉토리에서 적용하는걸로 해보자.
- 실무에서 사용될 일은 거의 없다고 봐도 된다. 상위 라이브러리들이 있으니..
<source lang="bash"> $ cp -r /opt/vc/src/* ~ </source>
- hello_pi라는 디렉토리가 생겼다.
- 라이브러리부터 컴파일해놓자.
- ~/hello_pi 로 들어간다.
<source lang="bash"> $ make -C libs/ilclient $ make -C libs/vgfont </source>
- 기본제공되는 Hello 프로그램은 다음과 같다.
- hello_audio - audio 예제
- hello_dispmanx - 디스플레이 지원 프로그램 예제
- hello_encode - 인코딩 예제
- hello_fft - 부동소수점과 쓰레드 예제
- hello_font - 폰트 출력 예제
- hello_jpeg - jpeg 디코더 예제
- hello_teapot - 간단한 3D 예제
- hello_triangle - 간단한 텍스쳐 폴리곤 예제
- hello_triangle2 - 간단한 폴리곤 예제 2
- hello_video - h264 하드웨어 디코딩 예제
- hello_videocube - h264 하드웨어 디코딩을 텍스쳐로 표현하는 예제
- hello_world - 그냥 C 헬로월드
- 일단 이거 다 돌려보고 소스 한번 훑어보는걸 추천한다.