분류 전체보기
-
OpenGL 끄적임 - 5. Screen Aspect RatioGraphics/OpenGL ES 2.0 2018. 5. 31. 19:09
Adjusting to the screen’s aspect ratio 가로모드일 때, 우리가 그린 table이 찌그러지는건 OpenGL에 좌표를 바로 보내서 그렇다. 원하는 화면은 아래다. 점만 찍어서 되는게 있고 matrix넘겨야되는게 있고 차이가 뭔지? 모든 디바이스와 화면 방향을 고려할 수는 없다.-선형대수와 matrix, vector를 배워본다.-matrix로 투영을 해본다. screen크기가 단말마다 다른데 테이블이 screen에 어떻게 투영을 결정하는지? 정답은 우리가 그릴 물체를 정사각형 안에 들게 그리면 된다. 이를 orthographic projection (직교투영) 이라고 한다. 720x1280의 device에 물체를 그린다고 하자. 720의 작은 범위를 1이라고 하고, 1280의 큰..
-
OpenGL 끄적임 - Compiling shader카테고리 없음 2018. 5. 25. 07:33
OpenGL로 작성한 코드에 대해서 디버깅 방법도 매우 중요함. 컴파일 시, 컴파일 성공/실패 상태 취득방법final int[] compileStatus = new int[1];glGetShaderiv(shaderObjectId, GL_COMPILE_STATUS, compileStatus, 0); 컴파일이 실패했는지 또는 성공했는지 여부를 확인하기 위해 먼저 길이가 1 인 새로운 int 배열을 만들고 compileStatus라고 부릅니다. 그런 다음 glGetShaderiv (shader- ObjectId, GLES20.GL_COMPILE_STATUS, compileStatus, 0)를 호출합니다. 이것은 OpenGL에게 shaderObjectId와 관련된 컴파일 상태를 읽고 compileStatus의 ..
-
OpenGL 끄적임 - 2 Vertices, ShadersGraphics/OpenGL ES 2.0 2018. 4. 8. 23:15
Vertex 작성방법OpenGL의 도형들은 다 vertex로 시작한다.vertex 하나당 (x,y) float[] tableVetices = { 0f, 0f, 0f, 14f, 9f, 14f, 9f, 0f }sequential list 를 사용함. 각각의 점들이 합쳐져서 삼각형이되고 OpenGL은 점을 어떻게 연결하냐에 따라 재밌는 것들을 볼 수 있다. curve를 표현하기 위해서는 더 많은 점들이 필요하다. 삼각형을 그리는 순서1.반시계방향(counter-clockwise order)으로 그린다. (winding order라고도 한다.) 아래 기본적인 OpenGL 구동 방식을 이해해야한다.1. 에뮬레이터 또는 장치에서 Java 코드를 컴파일하고 실행하면 하드웨어에서 직접 실행되지 않습니다. 대신 Dalv..
-
OpenGL 끄적임 - GLSurfaceView, RenderGraphics/OpenGL ES 2.0 2018. 2. 25. 22:07
1.3 OpenGL 초기화 GLSurfaceView는 OpenGL의 초기화도 담당한다. (Rendering을 bg thread에서 일어나게 한다던지) surface라고 불리는 display area에서 rendering이 일어난다. Activity lifecycle에 맞게 resource를 날릴 수 있게 helper 메소드들을 제공한다. GLSurfaceView는 스스로의 window를 만든다. 겹쳐있는 OpenGL surface가 표시될 수 있게 View안에 “hole”을 제공한다. 하지만 window와 분리되어있기 때문에 일반적 View처럼 애니메이션이나 트랜스폼을 제공하지 못한다. TextureView는 분리된 window나 view에 hole을 펀칭할 필요 없이 OpenGL을 rendering할 ..
-
코틀린 - 함수 정의와 호출프로그래밍/Kotlin 2018. 1. 3. 08:21
코틀린은 자체 컬렉션 클래스를 정의하지 않지만 자바 클래스를 확장해서 더 풍부한 API를 제공한다. val set = hashSetOf(1, 7, 53) val list = arrayListOf(1,7,53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 1. 코틀린 함수 특징코틀린은 자체 컬렉션 클래스를 정의하지 않지만 자바 클래스를 확장해서 더 풍부한 API를 제공한다. val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") val strings = li..
-
Property View프로그래밍/Android 2017. 12. 20. 02:32
의도 : View가 애니메이션으로 이동한 후에도 이벤트가 정확한 위치로 동작했으면 했다. 단, Animation package의 애니메이션은 뷰의 물리적 위치를 이동시키진 않는다. (API Level 1)https://developer.android.com/guide/topics/graphics/view-animation.html Property Animation : View의 위치나 속성을 직접 변경한다. https://developer.android.com/reference/android/view/ViewPropertyAnimator.html ObjectAnimator와 ViewPropertyAnimator가 있다. 3.0 이상부터 추가되었다. ObjectAnimator : 뷰의 property 이름..
-
Android Shutter Animation카테고리 없음 2017. 10. 18. 08:38
1. Requirements카메라 셔터 느낌이 나는 애니메이션 2. Research1) Path EffectDash느낌과 곡선의 느낌을 표현하려면 DashPathEffect와 ConerPathEffect를 조합한 ComposePathEffect를 생성해서 android.graphics.PathEffect를 Paint에 set하면 된다. 예제 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); float radius = 50.0f; CornerPathEffect cornerPathEffect = new CornerPathEffect(radius); float[] intervals = new float[]{80.0f, 30.0f}; ..
-
Introduction to Physics-based animations in Android프로그래밍/Android 2017. 9. 6. 01:47
Dynamic-animation은 Support Library 중의 하나이다.Dynamic-animation support Library는 Support Library 버전 25.3.0 이상부터 사용할 수 있다. build.gradle 파일에 아래와 같이 추가하면 된다. compile "com.android.support:support-dynamic-animation:25.3.0" 기존 애니매이션 특징기존 애니메이션은 start value, end value, duration, interpolator, velocity 값을 고정으로 사용한다.그래서 이동 중에 Target Value가 변화하면 속도(Velocity)가 0로 떨어져 매우 어색해보인다.Velocity가 0로 떨어지는 이유는 진행중인 애니메이션..