[OpenGL] 11. GLSurfaceView와 MediaPlayer로 동영상 플레이어 만들기

Video Player based on GLSurfaceView 텍스처 있는 사각형 만들기까지 성공했다면, Android OpenGL ES에서 동영상 플레이어를 구현하는 방법자체는 간단합니다. SurfaceTexture에 대한 기본적인 내용을 알고 계시다면 더욱 이해하기 쉽습니다. 쉐이더 코드부터 차근차근 살펴보겠습니다. 버텍스 쉐이더코드는 텍스처 있는 사각형 더보기…

Android의 SurfaceTexture

SurfaceTexture SurfaceTexture 클래스는 Android 3.0에 도입되었습니다. SurfaceView가 Surface와 View의 조합 인 것처럼 SurfaceTexture는 대략적으로 따지자면 Surface와 GLES 텍스처의 조합입니다. SurfaceTexture를 만들 때 BufferQueue를 생성하게됩니다. 새로운 버퍼가 큐에 저장되면 앱은 콜백 (onFrameAvailable ())을 통해 콜백을 받습니다. 더보기…

안드로이드 그래픽 시스템(BufferQueue and gralloc)

BufferQueue와 gralloc 안드로이드 그래픽 시스템을 이해하는 것은 BufferQueue와 gralloc HAL로 시작됩니다. BufferQueue 클래스는 Android의 모든 그래픽 중심에 있습니다. BufferQueue의 역할은 간단합니다. 그래픽 데이터 버퍼를 생성하는 생성자(Producer)로부터 해당 버퍼를 처리 하거나 화면에 표현할 수 있는 소비자(Consumer)에 더보기…

[OpenGL] 10. Cube(정육면체) 만들기

Cube 만들기 정육면체는 6개의 사각형으로 구성되어있습니다. 즉 OpenGL로 표현하기 위해서는 12개의 삼각형이 필요합니다. 그렇다면 사각형을 그리기위한 정점은 몇개가 필요할까요? 정답은 없습니다. 정점을 삼각형 갯수 만큼 잡는다면, 3개(삼각형 정점 수) * 12개(필요한 삼각형 수) = 36개가 더보기…

[OpenGL] 9. 텍스쳐 있는 사각형 만들기

텍스쳐 있는 사각형 만들기 OpenGL로 사각형을 그리는것까지 성공했다면, 텍스쳐를 입히는것은 어렵지 않습니다.  이미 만들어둔 사각형에서 쉐이더를 포함한 몇가지 코드를 수정하여 텍스쳐를 출력하도록 하겠습니다. 사각형 만들기는 링크를 참조해주세요 UV 좌표계 OpenGL에서 사각형을 그릴때는 삼각형 두개를 이어 더보기…

[OpenGL] 8. MVP Matrix 만들기

사실 앞서 Homogeneous 좌표와 Matrix를 설명한 이유는 지금 알아볼 MVP Matrix 때문입니다. MVP Matrix를 사용안하고도 화면을 무언가 표현을 할수는 있었습니다. 하지만 MVP Matrix를 사용하지 않는 다면 오브젝트에 대한 이동, 회전, 스케일링 같은 변환 등을 통한 더보기…

[OpenGL] 7. Matrix(행렬)

매트릭스의 세계로… 지금까지는 점 , 선, 삼각형 또는 삼각형 결합을 통한 다각형을 그리는 방법에 대해서 알아보았습니다. 하지만 이는 평면상의 2D그래픽이지 3D는 아니였습니다. 또한 정사각형이 나오길 기대했으나 직사각형으로 나타나는 것을 볼 수 있었습니다. 사실 코드로 정사각형으로 더보기…

[OpenGL] 6. Vector와 동차좌표

삼각형, 사각형 흥미있게 잘 그리다가.. 갑자기 이게 무슨 소리입니까? OpenGL에서 도형을 그리기 위해 우리는 정점을 입력해왔고, 정점 하나는 (x, y, z) 였습니다. 기본적으로 정점은 위치를 표현하지만 그 외에도 다른 속성을 갖습니다. 세개의 값을 바로 Vector라는 더보기…

[OpenGL] 5. 사각형 만들기

사각형 만들기 OpenGL ES 2.0에서 사각형(Quad) 그리기를 지원하지 않습니다. 그렇기 때문에 삼각형 두개를 조합해서 그리는 방법을 이용합니다. Note: OpenGL은 OpenGL ES와 달리 사각형을 직접 그리는 것이 가능하지만, 잘쓰이지 않으며 기본적으로 삼각형으로 조합하여 그립니다. 지난 포스팅에서 더보기…

[OpenGL] 4. 도형을 그리는 방식

도형은 어떤식으로 구성될까? 지난 삼각형 그리기에서 glDrawArrays(GL_TRIANGLES, n, m)를 통해 주어진 정점 3개를 통해 삼각형을 그릴수 있었습니다.  OpenGL ES에서는 다양한 평면이나 입체면을 구성하기 위해서 정점을 이어서 도형을 구성합니다.  정점을 이어서 그리는 방식에 대해서 설명하고자 합니다. 더보기…