glucylinder 예제

사용자 고유의 코드에서 이러한 루틴을 사용하려면 GluCylinders.c 끝에 있는 네 개의 루틴 집합을 복사하면 됩니다. 작성된 코드는 매끄러운 법선이 있는 원통을 생성합니다. 텍스처 좌표가 생성되면 gluQuadricTexture를 호출해야 합니다. 다음 함수가 수행하는 작업에 대한 자세한 내용은 2단을 참조하십시오. 복잡한 장면을 그릴 때, 어떤 위치를 기억하는 것이 즐거워요. gl.glPushmatrix() //에 상응하는 `현재 위치 저장` gl.glPopMatrix() ///이에 대해 자세히 알아보기 위해 `저장된 마지막 위치 로드`에 해당하는 2번 읽기 와 같은 두 가지 방법으로 이 작업을 수행할 수 있습니다. 이전 자습서에서는 기본 모양을 그렸습니다. 여기서는 OpenGl 유틸리티 라이브러리(GLU)를 사용하여 구 및 원통과 같은 더 많은 사분면 모양을 그립니다. 이 자습서는 단원 2에 표시된 변환의 응용 프로그램입니다. GluCylinders는 OpenGL의 gluQuadric 루틴으로 실린더와 경사 실린더를 그리는 방법을 보여주는 샘플 C ++ 코드입니다. 그것은 책 3D 컴퓨터 그래픽을 동반하기위한 것입니다 : OpenGL와 수학 접근, S.

버스에 의해, 케임브리지 대학 출판부, 2003. 그러나, 그것은 뿐만 아니라 독립적으로 사용할 수 있습니다. 화살표 키는 관측점을 제어합니다. 명령 «w»는 와이어 프레임 모드를 전환하지만, 더 퐁 조명이 없기 때문에 실린더는 «채우기»모드에서 끔찍한 보인다. GLU를 사용하여 사분면 모양을 만들려면 gluNewQuadric : glu.gluNewQuadric () Gl4java에서이 메서드는 긴 값 (사분면 개체 참조)을 반환하는 사분면 객체의 생성으로 시작합니다. Jogl에서는 GLUquadric 오브젝트를 사용하여 더 깨끗합니다. 이러한 개체의 형식은 다르지만 두 API에서 동일합니다. 이제 필요한 모든 속성을 만들고 정의합니다. 사분면 오브젝트와 함께 하는 모든 사분면 셰이프를 그릴 수 있습니다. 구를 그리려면 : glu.gluSphere (사분면, 반지, 슬라이스, 반지) 원통 (또는 반지가 0과 같으면 원뿔)을 그리려면 : glu.gluCylinder (쿼드릭, 하단 Radius, topRadius, 높이, 슬라이스, 링) CD를 그리려면 CD (또는 디스크가 0과 같으면) : glu.gluDisk () 사분면, 내부반원, 외부Radius, 슬라이스, 반지) 부분 CD (또는 디스크의 조각)를 그릴 : glu.gluPartialDisk (쿼드릭, 내부 Radius, 외부 Radius, 슬라이스, 반지, 시작 각도, 각도) 원통과 구는 자신의 회전을 가지고 번역. 원통 내부의 구를 그리려면 변환(회전 …)을 적용하기 전에 원통의 중심이 어디에 있는지 기억해야 합니다.

그래서 우리는 푸시 / 팝 매트릭스로 코드를 둘러싸고 있습니다. 원통과 구를 렌더링하기 위한 코드는 장면 중심을 기억하도록 둘러싸여 있습니다. 디스크와 원뿔의 렌더링은 비슷합니다. 슬라이스 및 링 매개변수는 그려진 사분면의 품질을 정의합니다. 그려진 정점 수와 직접 관계가 있습니다. 값이 높으면 정확한 모양이 되지만 그리는 정점이 많기 때문에 렌더링에 더 많은 시간이 요구됩니다. 이러한 매개변수의 효과를 보려면 선 스타일(GLU_LINE)으로 셰이프를 그리고 매개변수 값을 변경합니다. 셰이프가 불연속화되는 방법을 보여주는 몇 가지 스크린샷은 다음과 같습니다. 사분면 오브젝트가 사용이 완료되면 다음을 사용하여 삭제합니다. 빨간색 원통은 면 컬링 없이 상단 또는 하단 디스크 없이 그려집니다. 녹색 원통은 뒷면이 컬링되고 위쪽 및 아래쪽 디스크가 그려집니다.

파일을 다운로드하는 데는 몇 가지 옵션이 있습니다. R: GLU_LINE, GLU_FILL 및 GLU_SILHOUETTE +/-: incease/reduce 모양 품질 사이를 전환하면 렌더링 특성을 거의 정의할 수 없습니다. 이러한 속성을 정의하지 않으면 기본값이 사용됩니다.