다음을 통해 공유


glMap2d 함수

glMap2dglMap2f 함수는 2차원 계산기를 정의합니다.

구문

void WINAPI glMap2d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    ustride,
         GLint    uorder,
         GLdouble v1,
         GLdouble v2,
         GLint    vstride,
         GLint    vorder,
   const GLdouble *points
);

매개 변수

대상

계산기에서 생성되는 값의 종류입니다. 다음과 같은 기호 상수가 허용됩니다.

의미
GL_MAP2_VERTEX_3
각 제어점은 x, yz를 나타내는 세 개의 부동 소수점 값입니다. 내부 glVertex3 명령은 맵이 평가될 때 생성됩니다.
GL_MAP2_VERTEX_4
각 제어점은 x, y, zw를 나타내는 4개의 부동 소수점 값입니다. 내부 glVertex4 명령은 맵이 평가될 때 생성됩니다.
GL_MAP2_INDEX
각 제어점은 색 인덱스 를 나타내는 단일 부동 소수점 값입니다. 내부 glIndex 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 인덱스는 이러한 glIndex 명령 값으로 업데이트되지 않습니다.
GL_MAP2_COLOR_4
각 제어점은 빨강, 녹색, 파랑 및 알파를 나타내는 4개의 부동 소수점 값입니다. 내부 glColor4 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 색은 이러한 glColor4 명령 값으로 업데이트되지 않습니다.
GL_MAP2_NORMAL
각 제어점은 일반 벡터의 x, yz 구성 요소를 나타내는 세 개의 부동 소수점 값입니다. 내부 glNormal 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 표준은 이러한 glNormal 명령 값으로 업데이트되지 않습니다.
GL_MAP2_TEXTURE_COORD_1
각 제어점은 텍스처 좌표를 나타내는 단일 부동 소수점 값 입니다 . 내부 glTexCoord1 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령의 값으로 업데이트되지 않습니다.
GL_MAP2_TEXTURE_COORD_2
각 제어점은 st 텍스처 좌표를 나타내는 두 개의 부동 소수점 값입니다. 내부 glTexCoord2 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령의 값으로 업데이트되지 않습니다.
GL_MAP2_TEXTURE_COORD_3
각 제어점은 s, tr 텍스처 좌표를 나타내는 3개의 부동 소수점 값입니다. 내부 glTexCoord3 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령의 값으로 업데이트되지 않습니다.
GL_MAP2_TEXTURE_COORD_4
각 제어점은 s, t, rq 텍스처 좌표를 나타내는 4개의 부동 소수점 값입니다. 내부 glTexCoord4 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령의 값으로 업데이트되지 않습니다.

u1

glEvalCoord2에 표시되는 u의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 두 변수 중 하나인 u^에 매핑됩니다.

u2

glEvalCoord2에 표시되는 u의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 두 변수 중 하나인 u^에 매핑됩니다.

ustride

제어점 Rij 의 시작 부분과 제어점 R(i\ +1\ )\ j 사이의 부동 소수점 또는 이중 수입니다. 여기서 ij 는 각각 uv 제어점 인덱스입니다. 이렇게 하면 제어점을 임의 데이터 구조에 포함할 수 있습니다. 유일한 제약 조건은 특정 제어점의 값이 연속 메모리 위치를 차지해야 한다는 것입니다.

uorder

U축에 있는 제어점 배열의 차원입니다. 양수여야 합니다.

v1

glEvalCoord2에 표시되는 v의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 두 변수 중 하나인 v^에 매핑됩니다.

v2

glEvalCoord2에 표시되는 v의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 두 변수 중 하나인 v^에 매핑됩니다.

vstride

제어점 Rij 의 시작 부분과 제어점 Ri(j\ +1\ )의 시작 부분 사이의 부동 소수점 또는 이중 수입니다. 여기서 ij 는 각각 uv 제어점 인덱스입니다. 이렇게 하면 제어점을 임의 데이터 구조에 포함할 수 있습니다. 유일한 제약 조건은 특정 제어점의 값이 연속 메모리 위치를 차지해야 한다는 것입니다.

vorder

v축에 있는 제어점 배열의 차원입니다. 양수여야 합니다.

포인트

제어점 배열에 대한 포인터입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

오류 코드

glGetError 함수에서 다음 오류 코드를 검색할 수 있습니다.

Name 의미
GL_INVALID_ENUM
target 이 허용되는 값이 아닙니다.
GL_INVALID_VALUE
u1u2와 같거나 v1v2와 같습니다.
GL_INVALID_VALUE
ustride 또는 vstride가 제어점의 값 수보다 작습니다.
GL_INVALID_VALUE
uorder 또는 vorder가 하나 미만이거나 GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

평가기는 다항식 또는 합리적인 다항식 매핑을 사용하여 꼭짓점, 노멀, 텍스처 좌표 및 색을 생성하는 방법을 제공합니다. 계산기에서 생성된 값은 생성된 값이 현재 법선, 텍스처 좌표 또는 색을 업데이트하지 않는다는 점을 제외하고 glVertex, glNormal, glTexCoordglColor 명령을 사용하여 제공된 것처럼 OpenGL 처리의 추가 단계로 전송됩니다.

모든 수준의 모든 다항식 또는 합리적인 다항식 스플라인(OpenGL 구현에서 지원하는 최대 수준까지)은 계산기를 사용하여 설명할 수 있습니다. 여기에는 B 스플라인 표면, NURBS 표면, 베지어 표면 등을 포함하여 컴퓨터 그래픽에 사용되는 거의 모든 표면이 포함됩니다.

평가기는 양변량 번스타인 다항식에 따라 표면을 정의합니다. p(u^,v^) 로 정의합니다.

p()의 정의를 보여 주는 수식입니다.

여기서 Rij 는 제어점이며()는 ith번스타인 다항식입니다.

n (uorder = n + 1)

도 n의 번스타인 다항식을 보여 주는 수식입니다.

및 ()는 도 mj번째 번스타인 다항식(vorder = m + 1)입니다.

도 m의 번스타인 다항식을 보여 주는 수식입니다.

다음을 기억합니다.

1과 동등성을 보여 주는 수식입니다.

glMap2 함수는 기초를 정의하고 생성되는 값 종류를 지정하는 데 사용됩니다. 정의되면 위에서 설명한 대상에 대해 미리 정의된 9가지 값 중 하나인 glEnableglDisable을 맵 이름으로 호출하여 맵을 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. glEvalCoord2uv 값을 표시하면 이변성 번스타인 다항식은 u^ 및 v^를 사용하여 평가됩니다. 여기서

사용자 정의를 보여 주는 수식^.

v^의 정의를 보여 주는 수식입니다.

대상 매개 변수는 포인트에 제공되는 제어점의 종류와 맵이 계산될 때 생성되는 출력을 나타내는 기호 상수입니다.

ustride, uorder, vstride, vorderpoints 매개 변수는 제어점에 액세스하기 위한 배열 주소 지정을 정의합니다. points 매개 변수는 정의되는 맵에 따라 1, 2, 3 또는 4개의 연속 메모리 위치를 차지하는 첫 번째 제어점의 위치입니다. 배열에는 uorder x vorder 제어점이 있습니다. ustride 매개 변수는 제어점 Rij에서 제어점 R(\ i+1\ )j로 내부 메모리 포인터를 진행하기 위해 건너뛴 부동 소수점 또는 이중 위치 수를 알려줍니다. vstride 매개 변수는 제어점 Rij에서 제어점 Ri(j\ +1\ )로 내부 메모리 포인터를 진행하기 위해 건너뛴 부동 소수점 또는 이중 위치 수를 알려줍니다.

데이터에 대한 포인터를 허용하는 모든 OpenGL 명령의 경우와 마찬가지로 반환되기 전에 의 내용이 glMap2 에 의해 복사된 것처럼 표시됩니다. glMap2가 호출된 후에는 점 내용에 대한 변경 내용이 적용되지 않습니다.

다음 함수는 glMap2와 관련된 정보를 검색합니다.

인수가 GL_MAX_EVAL_ORDER glGet

glGetMap

인수가 GL_MAP2_VERTEX_3 glIsEnabled

인수 GL_MAP2_VERTEX_4 glIsEnabled

인수가 GL_MAP2_INDEX glIsEnabled

인수가 GL_MAP2_COLOR_4 glIsEnabled

인수 GL_MAP2_NORMAL glIsEnabled

인수가 GL_MAP2_TEXTURE_COORD_1 glIsEnabled

인수가 GL_MAP2_TEXTURE_COORD_2 glIsEnabled

인수 GL_MAP2_TEXTURE_COORD_3 glIsEnabled

인수가 GL_MAP2_TEXTURE_COORD_4 glIsEnabled

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Gl.h
라이브러리
Opengl32.lib
DLL
Opengl32.dll

추가 정보

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap1

glMapGrid

glNormal

glTexCoord

glVertex