반응형

Android/OpenGL ES 3

0) Android Graphics architecture

OpenGL을 시작하기전에 안드로이드의 그래픽구조와 요소들을 먼저 파악한다. 이글은 안드로이드 공식 문서와 'Tech Writing의 끝장' 블로그의 글을 참고 하였습니다. 1. BufferQueue 및 Gralloc 안드로이드에서 모든 그래픽 요소들의 중심에는 BufferQueue라는 클래스가 있다. 그래픽 데이터 버퍼들을 생성하는 컴포넌트 ("생산자")와 이 데이터를 받아서 디스플레이 하거나 추가 프로세싱을 하려는 컴포넌트 ("소비자")를 연결시켜주는 것이다. 생산자와 소비자는 서로 다른 프로세스에 존재할 수도 있다. 시스템 전반에 걸쳐 그래픽 데이터 버퍼를 이동시키는 거의 모든 작업들이 BufferQueue를 통해 처리된다. dequeueBuffer()를 호출하여 BufferQueue에서 프리 버퍼..

Android/OpenGL ES 2021.09.28

2) OpenGL ES로 삼각형 그리기

1. 삼각형 클래스 생성 package com.example.study.opengl.triangle import android.opengl.GLES30 import com.example.study.opengl.GLES30Renderer import java.nio.ByteBuffer import java.nio.ByteOrder import java.nio.FloatBuffer class Triangle { // 삼각형의 정점 좌표는 FloatBuffer 객체인 vertexBuffer에 1차원 버퍼의 형태로 들어갈 것입니다. private var vertexBuffer: FloatBuffer private val mProgram: Int // Vertex Shader는 정점의 좌표 데이터를 받아 출력하는..

Android/OpenGL ES 2021.09.28

1) OpenGL ES란?

Android에서는 OpenGL ES API가 포함된 고성능 2D 및 3D 그래픽을 지원합니다. OpenGL은 3D 크로스 플랫폼 그래픽 API입니다. OpenGL의 사용 이유) 게임과 같은 높은 수준의 그래픽을 빠르게(30~60fps) 화면에 그리기 위해서는 일반적인 안드로이드의 위젯으로는 구현하는데 한계가 있습니다. 그렇기 때문에 빠른속도의 반복된 화면 출력이 필요한 경우에는OpenGL을 이용한 빠르게 화면 그리는 작업을 해야하며, GDI쓰레드가 아닌 별도의 쓰레드 사용이 반드시 필요합니다. GDI : Graphic Device Interface의 약자로 그래픽을 기반으로 하는 사용자 인터페이스 OpenGL 지원모델) 1.X이후 버전에서는 큰 차이가 있다. 2. X 이전(1.X) 에는 Fixed Fu..

Android/OpenGL ES 2021.09.27
반응형