전체 글

전체 글

    Opengl ES - 광원 효과 넣기

    이번 강의에서는 물체에 조명 효과를 주는 방법에 대해 설명하겠다. 소스는 다음 사이트에서 참고했다. http://insanitydesign.com/wp/projects/nehe-android-ports/ 사용하기 편하게 하기 위해 소스 수정을 조금 했는데 원래의 소스는 화면의 특정한 영역을 터치했을 때 light on/off 등의 기능이 동작하도록 했는데 불편한 거 같아 버튼 위젯을 추가해서 기능 수행하도록 했다(그래서 MainActivity.java 의 onCreate 안의 코드도 다르다). 그리고 Normal vector 의 좌표를 수정했다. 조명 효과를 내기 위해서 이해해야 할 필수 내용이 몇 가지가 있다. 1. 광원의 위치 정하기. 2. gl.glEnable(GL10.GL_LIGHT0) 추가하기...

    Opengl ES - 육면체 그리기

    Android OpenGL Lesson #5 민방위 훈련 담날부터 계속 출장이 있어서 공부 하나도 못했다. 수원 삼성 사업장에 파견 댕겨 왔는데, 인터넷도 안되고 할당 받은 IP 는 충돌 난다고 뜨고..개발폰으로 와이파이 잡아 인터넷 하면서 지루하게 하루를 보냈다. 비효율의 극치라고나 할까… 오늘 어떤 문제의 해답을 하나 찾았다. gl.glTranslatef(1, 0, 0) 에서 매개 변수 값들이 정확히 어떤 의미를 가지는 지 몰랐는데 알게 됐다. gl.glTranslatef(1, 0, 0) 는 x 축을 따라 + 방향으로 1 만큼 이동한다는 것인데 도형의 x 축 방향 크기와 똑 같은 거리를 이동한다는 것이다. 그래서 위 그림처럼 되는 것이다. 그러면 GLU.gluPerspective(gl, 45.0f, ..

    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..