[OpenGL] 7. Matrix(행렬)

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

[OpenGL] 6. Vector와 동차좌표

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

딥링크(Deeplink)와 앱링크(Applink)의 차이점

Applink? Deeplink? 딥링크는 인텐트필터의 일종으로 사용자들이 직접적으로 안드로이드 앱내의 액티비티에 접근하는것을 허용합니다. 다른 앱에서 또는 웹브라우저에서의 링크를 클릭했을때 해당 링크의 scheme을 보고 앱을 실행하게 되며, 해당 링크를 처리하는 2개이상의 앱이 있다면 사용자에게 다이얼로그를 띄어 앱을 실행할 수 있도록 유도 합니다.  앱링크는 인증된 웹사이트 URL을 기반으로 하는 딥링크입니다. 링크 클릭시 앱이 설치되어있다면 더보기…

글쓴이 Charlezz,

Dagger2와 AAC ViewModel을 같이 썼을 때 생길 수 있는 문제점

이 포스팅에서 Dagger2와 ViewModel에 대한 설명은 다루지 않습니다. Dagger2와 AAC의 ViewModel같이 썼을때의 문제점 Dagger2와 ViewModel을 같이 쓰다가 생긴 문제가 하나 있습니다. AAC뷰모델을 쓴다면, 액티비티의 configurationChange가 발생했을때 ViewModel의 인스턴스를 새로 만들지 않고 유지하는게 장점중 하나인데, Dagger2를 통해 ViewModel인스턴스를 인젝션했을 때 매번 새로운 인스턴스를 만들어낸다는 것입니다. 원인은 appcompat Support Library에 있었습니다. Activity의 더보기…

[OpenGL] 5. 사각형 만들기

사각형 만들기 OpenGL ES 2.0에서 사각형(Quad) 그리기를 지원하지 않습니다. 그렇기 때문에 삼각형 두개를 조합해서 그리는 방법을 이용합니다. Note: OpenGL은 OpenGL ES와 달리 사각형을 직접 그리는 것이 가능하지만, 잘쓰이지 않으며 기본적으로 삼각형으로 조합하여 그립니다. 지난 포스팅에서 삼각형을 그려보았다면, 사각형 그리기도 쉽게 따라 할수 있을 것입니다. 사각형 그리기 위한 정점 찍기 삼각형 더보기…

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

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

[OpenGL] 3. 삼각형 만들기

삼각형 만들기 지난 1. Android OpenGL ES의 개요 포스팅에서 간단히 삼각형을 만들었고, 삼각형을 그리기위해서 Activity, GLSurfaceView, Renderer가 필요했었습니다. 이번 시간에는 삼각형을 그리는 프로세스에 대해서 알아보도록 하겠습니다. 안드로이드 프로젝트 설정 디바이스가 OpenGL ES 2.0을 지원해야하기에 다음과 같이 메니페스트에 선언해줍니다. <manifest> <uses-feature android:glEsVersion=”0x00020000″ android:required=”true” /> … </manifest> MainActivity.kt OpenGL ES 2.0 버전을 사용하기 더보기…

[OpenGL] 2. Shader와 Rendering pipeline

OpenGL ES 2.0이 화면을 그리는 과정 이전 포스트에서 간단하게 OpenGL을 이용한 삼각형을 만들어보았습니다.  삼각형을 화면에 나타내기 위해 여러가지 과정을 거쳐 처리를 하게 되고 이러한 과정들을 렌더링 파이프라인이라고 합니다. 그리고 이 파이프라인을 이용하려면 셰이더(Shader)라는 서브루틴(프로그램)을 이용해야합니다. Shader(셰이더)란? 셰이더는 그래픽 처리 장치 (GPU)에 데이터를 그리는 방법을 알려줍니다. 셰이더에는 두 가지 유형이 있으며 더보기…

새로운 안드로이드 백그라운드 실행 정책

https://android-developers.googleblog.com/2018/10/modern-background-execution-in-android.html 안드로이드 공식 블로그 내용을 번역한 글 입니다. 의역 및 오역 다수 있을 수 있습니다. 안드로이드 백그라운드 실행 정책 애플리케이션은 언제 백그라운드 상태로 있을까? 백그라운드 실행을 이해하기 전에 애플리케이션이 포어그라운드인지 백그라운드인지 명확하게 파악해야합니다. 다음 중 하나라도 해당되면 애플리케이션이 포어그라운드에있는 것으로 간주됩니다. 어떤 애플리케이션이 액티비티가 시작(started),중지(pause)와 상관없이 가시적일 때 어떤 애플리케이션이 포어그라운드 더보기…

안드로이드의 PendingIntent란?

PendingIntent   PendingIntent는 Intent를 가지고 있는 클래스로, 기본 목적은 다른 애플리케이션(다른 프로세스)의 권한을 허가하여 가지고 있는 Intent를 마치 본인 앱의 프로세스에서 실행하는 것처럼 사용하게 하는 것입니다. PendingIntent 용도 Notification으로 작업을 수행할 때 인텐트가 실행되도록 합니다. Notification은 안드로이드 시스템의 NotificationManager가 Intent를 실행합니다. 즉 다른 프로세스에서 수행하기 때문에 Notification으로 Intent수행시 PendingIntent의 사용이 더보기…