Android OpenGL ES 투영 행렬 설정
3272 단어 Android
OpenGL 투영 행렬
이전 예제 에서 OpenGL 초기 화 코드 에는 다음 과 같은 코드 가 있 습 니 다.
// Select the projection matrix
gl.glMatrixMode(GL10.GL_PROJECTION);
// Reset the projection matrix
gl.glLoadIdentity();
이 코드 는 현재 Matrix 모드 를 Projection 투영 매트릭스 OpenGL ES 로 설정 하기 위해 두 가지 다른 투영 변환 을 사용 할 수 있 습 니 다. 투시 투영 (Perspective Projection) 과 정 측 투영 (Orthographic Projection) 입 니 다.
투시 투영 (Perspective Projection)
투시 투영 의 특징 은 '가 깝 고 멀 며 작다' 는 것 이다. 즉, 우리 눈 이 일상적으로 보 는 세계 이다.OpenGL ES 는 투시 투영 함 수 를 glFrustum () 으로 정의 합 니 다.
public static void gluPerspective(GL10 gl, float fovy, float aspect, float zNear, float zFar)
시 추 는 (left, bottom, - near) 와 (right, top, - near) 에서 관측 점 에 가 까 운 재단 면 을 정의 하고, near 와 far 는 관측 점 과 두 개의 생 성 면 의 직접적인 근거리 와 원 거 리 를 정의 한다.실제 코드 를 쓸 때 Android OpenGL ES 는 투시 투영 변환 을 보다 간단하게 정의 할 수 있 는 보조 적 인 방법 gluPerspective () 를 제공 합 니 다.
public static void gluPerspective(GL10 gl, float fovy, float aspect, float zNear, float zFar)
gl.glTranslatef( 0f,0f ,zNear);
정측 투영 (Orthographic Projection)
정 측 투영, 그의 시 추 는 장방체 로 물체 의 크기 가 관측 점 의 거리 에 따라 변화 하지 않 고 투영 후 물체 간 의 거리 와 협각 을 유지 하 는 것 이 특징 이다.그것 은 주로 공사 제도 에 쓰 인 다.정 측 투영 (평이 투영 이 라 고도 함) 의 함 수 를 다음 과 같이 정의 합 니 다.
public void glOrthof(float left, float right,float bottom,float top,float near,float far)
재단 하 다.
장면 속 도형 의 정점 은 modelview 와 procjection 좌 표를 거 쳐 변 경 된 후에 Viewing volumn 이외 의 정점 에 있 는 모든 것 이 잘 리 고 투시 투영 과 정 측 투영 은 모두 6 개의 재단 면 이 있다.재단 면 외부 에 있 는 모든 정점 을 재단 하여 그림 의 성능 을 향상 시 켜 야 합 니 다.
주: 앞의 예 에서 투시 투영 이나 정 측 투영 을 설정 하지 않 았 습 니 다. 기본 값 은 정 측 투영 이 고 화면 을 가득 채 우 며 너비 와 높이 는 각각 1 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.