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

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

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

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

글쓴이 Charlezz,

Android Profiler로 네트워크 디버깅 하기

안드로이드 스튜디오가 3.3으로 업데이트 됨에 따라 Android Profiler 기능이 개선되었습니다. 이전에는 네트워크 프로파일러의 페이로드의 Raw텍스트만 표시되었는데 JSON, XML, HTML 형식을 지원합니다. View Parsed 또는 View Source를 클릭해서 서식있는 텍스트와 Raw텍스트를 번갈아가며 확인할 수 있습니다. Charles보다는 기능이 약하긴 하지만, 프록시 붙이는 작업이 없어서 편하네요(잠금화면, 인증서설치 등) 그 외 JSON이 구조화되어서 보이지 더보기…

Android Studio 3.3 주요 변경 사항

https://developer.android.com/studio/releases/ 을 번역한 내용입니다. Navigation Editor Navigation Achitecture Component 가 정식 릴리즈 됨에 따라 Navigation Editor를 사용하여 빠르게 액티비티와 프레그먼트의 이동을 가시화 시킬 수 있습니다. 사용하지 않는 안드로이드 스튜디오 디렉토리 삭제 Android Studio의 메이저 버전을 처음 실행할 때  캐시, 설정, 색인 및 로그가 포함 된 디렉토리를 찾습니다. 그런 다음 사용되지 않는 더보기…

글쓴이 Charlezz,

List와 LiveData의 사용시 Observer 에게 Notify 언제, 어떻게 해야할까…?

AAC LiveData의 등장으로 데이터바인딩 라이브러리 사용시 MVVM아키텍처와 맞물려 데이터와 UI간의 동기화하는 코드를 많이 사용하고 있습니다. 단수의 Data를 다루는데 있어서 LiveData는 편리했습니다. 기존 BaseObservable을 구현한 클래스에서 notifyChange 또는 notifyPropertyChange를 처리할 필요도없고, 생명주기를 알고있다는 점이 좋았습니다. 하지만, 복수의 Data인 List 또는 ArrayList 타입을 LiveData로 감싸서 사용하는 경우가 왕왕 생기곤 하는데요. 이 경우에 더보기…

글쓴이 Charlezz,

[OpenGL] 8. MVP Matrix 만들기

사실 앞서 Homogeneous 좌표와 Matrix를 설명한 이유는 지금 알아볼 MVP Matrix 때문입니다. MVP Matrix를 사용안하고도 화면을 무언가 표현을 할수는 있었습니다. 하지만 MVP Matrix를 사용하지 않는 다면 오브젝트에 대한 이동, 회전, 스케일링 같은 변환 등을 통한 3D 공간감을 얻긴 힘들 것입니다. MVP Matrix MVP는 Model, View, Projection의 약자입니다.   글로는 개념을 더보기…

[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의 더보기…