Android OpenGL 자습서 - 제5과
3D 공간:
우리는 다각형과 사각형을 이용하여 3D 물체를 만들었다. 이 시간에 우리는 삼각형을 입체적인 금탑 모양으로 바꾸고 사각형을 입방체로 바꾸었다.
일단 삼각형의 정점이 뭐가 됐는지 봅시다.
private float[] mTriangleArray = {
0.0f,1.0f,0.0f,
-1.0f,-1.0f,1.0f,
1.0f,-1.0f,1.0f,
0.0f,1.0f,0.0f,
1.0f,-1.0f,1.0f,
1.0f,-1.0f,-1.0f,
0.0f,1.0f,0.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
0.0f,1.0f,0.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,1.0f
};
private FloatBuffer mTriangleBuffer;
한 네 개의 면, 한 면에 세 개의 점, 지면에 그림을 그리지 않았다.
너희는 각 면을 자세히 보아라, 모두 시계 반대 방향으로 그린 것이다.물론 콜 제거 코드를 추가하지 않았다면, 시계 반대 방향은 상관없어. 다 그려.그래도 방향에 맞게 쓴 아라를 추천합니다.
삼각형의 색조가 왔어요.
private float[] mColorArray={
1.0f,0.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
};
private FloatBuffer mColorBuffer;
동일한 점은 동일한 색상입니다.
입방체의 색 그룹이 왔습니다.
private float[] mQuadColorArray={
0.0f,1.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f,
1.0f,0.5f,0.0f,1.0f,
1.0f,0.5f,0.0f,1.0f,
1.0f,0.5f,0.0f,1.0f,
1.0f,0.5f,0.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
1.0f,0.0f,0.0f,1.0f,
1.0f,1.0f,0.0f,1.0f,
1.0f,1.0f,0.0f,1.0f,
1.0f,1.0f,0.0f,1.0f,
1.0f,1.0f,0.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
0.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,1.0f,1.0f,
1.0f,0.0f,1.0f,1.0f,
};
private FloatBuffer mQuadColorBuffer;
어지럽지 마세요. 뒤에 무늬가 있으면 돼요. 그런데 이게 기초예요. 꼭 파악해야 돼요.
그림 그리는 코드가 왔어요.
gl.glTranslatef(-1.5f, 0.0f, -6.0f);
gl.glRotatef(rtri, 0.0f, 1.0f, 0.0f); // Y
// gl.glColor4f(1f, 1f, 1f, 1f);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mTriangleBuffer);
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 12); // 4 , 3
gl.glLoadIdentity();
gl.glTranslatef(1.5f, 0.0f, -6.0f);
gl.glRotatef(rquad, 1.0f, 0.0f, 0.0f);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, mQuadColorBuffer);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mQuadsBuffer);
// 6
for (int i=0; i<6; i++){
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, i*4, 4);
}
rtri+=0.2f;
rquad-=0.15f;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.