Category

    Opengl ES - 좌표 변환

    Android OpenGL Lesson #4 민방위 훈련이 있어서 반차 내 놓고는 별로 할 일도 없고 해서 계속 올리고 있다..생각 보다는 빨리 진행되는 데 밑천 떨어지면 아마 세배는 더 시간이 걸릴 것 같다. 지난 강의 까지는 도형의 색 칠하는 것까지 했는데 오늘은 좌표 축을 중심으로 도형을 회전시키는 것을 알아 보도록 하겠다. (Nehe 의 영어는 참 쉽게 설명 돼 있는데 한글로 옮기는 게 더 어렵다.) 잠깐 중학교 수학 시간으로 돌아가서 직교 좌표계에 대해서 공부. 공부할 게 없구나…그럼 회전(Rotation) 에 대해서 공부! 만약 gl.glRotate(degree, x, y, z) 하는 메소드가 존재한다고 가정해 보자. 그랬을 때 gl.glRotate(90, 1, 0, 0) 이라고 하고 실행하면..

    Opengl ES - 삼각형 사각형 그리기

    이전 강의에서 Open GL window 생성하는 것을 공부했는데, 이번 장에서는 삼각형과 사각형을 그려 보도록 하겠다. 화면 생성과 초기화 모두 해 놨기 때문에 도형을 그리는 것은 onDrawFrame() 에 넣으면 된다. 그런데 이전 강의에서 gl.glTranslatef(0.0f, 0.0f, -6.0f); 은 굳이 필요 없었는데 넣었다. 도형 그리는 것을 미리 생각하다 보니까 들어간 것 같다. 오늘은 onDrawFrame() 에 있는 glLoadIdentity() 부터 시작하겠다. 이 메소드를 실행하면 이전까지 해 놨던 좌표계 변환이 초기화 된다. 그래서 x 는 화면의 가로축, y 는 세로축, z 는 깊이 좌표를 나타내게 된다. 그래서 휴대폰 화면의 중앙점을 기준으로 왼쪽은 x 의 – 값을 갖고, 오..

    Android Opengl es 기본

    Android Open GL Lesson #1 안드로이드 Open GL 기본 지식 1. SurfaceView : 안드로이드에서 Surface 라는 것은 GUI 가 그려지는 화면이다. 그냥 이렇게 간단하게 이해하면 된다. View 를 상속 받는 클래스인데 Renderer 라는 인터페이스를 등록해서 3D 작업이 별도의 쓰레드로 돌아가도록 만들어져 있다. 왜 별도로 돌아가도록 하냐면 메인 UI 에서 3D 작업을 같이 처리하려면 시간이 많이 걸려서 키 입력 지연 같은 현상이 발생하기 때문이다. 2. Renderer : Surface create, change, draw 와 같은 3D 에 핵심적인 작업들을 수행한다. 3. GL10 : 현재 안드로이드에서 지원하는 것은 Open GL ES 1.0 이기 때문에 GL1..

    glHint

    Name glHint — specify implementation-specific hints C Specification void fsfuncglHint( GLenum target , GLenum mode) ; Parameters target Specifies a symbolic constant indicating the behavior to be controlled. GL_FOG_HINT , GL_GENERATE_MIPMAP_HINT , GL_LINE_SMOOTH_HINT , GL_PERSPECTIVE_CORRECTION_HINT, and GL_POINT_SMOOTH_HINT are accepted. mode Specifies a symbolic constant indicating the desired..

    GLSufaceView.Renderer

    GLSurfaceView.Renderer GLSurfaceView.Renderer is a generic render interface. In your implementation of this renderer you should put all your calls to render a frame. There are three functions to implement:// Called when the surface is created or recreated. public void onSurfaceCreated(GL10 gl, EGLConfig config) // Called to draw the current frame. public void onDrawFrame(GL10 gl) // Called when ..

    MainActivity 와 GLRenderer

    MainActivity package com.example.opengl; import android.app.Activity; import android.opengl.GLSurfaceView; import android.os.Bundle; import android.view.Menu; public class MainActivity extends Activity { private GLSurfaceView mGLSurfaceView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGLSurfaceView = ..