glLightiv 함수

glLightiv 함수는 광원 매개 변수 값을 반환합니다.

구문

void WINAPI glLightiv(
         GLenum light,
         GLenum pname,
   const GLint  *params
);

매개 변수

light

조명의 식별자입니다. 가능한 조명 수는 구현에 따라 달라지지만 8개 이상의 조명이 지원됩니다. i가 값인 GL_LIGHT 형식의 기호 이름으로 식별됩니다. 0에서 GL_MAX_LIGHTS - 1입니다.

pname

원에 대한 광원 매개 변수입니다. 다음 기호 이름이 허용됩니다.

의미
GL_AMBIENT
params 매개 변수에는 조명의 앰비언트 RGBA 강도를 지정하는 4개의 정수 값이 포함되어 있습니다. 가장 양수 표시 가능한 값이 1.0에 매핑되고 가장 음의 표현 가능한 값이 -1.0에 매핑되도록 정수 값이 선형으로 매핑됩니다. 부동 소수점 값은 직접 매핑됩니다. 정수나 부동 소수점 값은 모두 고정되지 않습니다. 기본 주변 광원 강도는 (0.0, 0.0, 0.0, 1.0)입니다.
GL_DIFFUSE
params 매개 변수에는 광원의 확산 RGBA 강도를 지정하는 4개의 정수 값이 포함되어 있습니다. 가장 양수 표시 가능한 값이 1.0에 매핑되고 가장 음의 표현 가능한 값이 -1.0에 매핑되도록 정수 값이 선형으로 매핑됩니다. 부동 소수점 값은 직접 매핑됩니다. 정수나 부동 소수점 값은 모두 고정되지 않습니다. 기본 확산 강도는 광원 0이 아닌 모든 조명에 대해 (0.0, 0.0, 0.0, 1.0)입니다. 광원 0의 기본 확산 강도는 (1.0, 1.0, 1.0, 1.0)입니다.
GL_SPECULAR
params 매개 변수에는 광원의 반사 RGBA 강도를 지정하는 4개의 정수 값이 포함되어 있습니다. 정수 값은 선형으로 매핑되어 가장 양수 표시 가능한 값이 1.0에 매핑되고 가장 음의 표현 가능한 값이 1.0에 매핑됩니다. 부동 소수점 값은 직접 매핑됩니다. 정수나 부동 소수점 값은 모두 고정되지 않습니다. 기본 반사 강도는 광원 0을 제외한 모든 조명에 대해 (0.0, 0.0, 0.0, 1.0)입니다. 광원 0의 기본 반사 강도는 (1.0, 1.0, 1.0, 1.0)입니다.
GL_POSITION
params 매개 변수에는 같은 유형의 개체 좌표에서 조명의 위치를 지정하는 4개의 정수 값이 포함되어 있습니다. 정수 값과 부동 소수점 값은 모두 직접 매핑됩니다. 정수나 부동 소수점 값은 모두 고정되지 않습니다.
위치는 glLightiv가 호출될 때(점인 것처럼) modelview 행렬에 의해 변환되고 눈 좌표에 저장됩니다. 위치의 w 구성 요소가 0.0이면 광원이 방향 소스로 처리됩니다. 확산 및 반사 조명 계산은 조명의 방향을 고려하지만 실제 위치는 고려하지 않으며 감쇠는 사용하지 않도록 설정됩니다. 그렇지 않으면 확산 및 반사 조명 계산은 눈 좌표에서 빛의 실제 위치를 기반으로 하며 감쇠가 활성화됩니다. 기본 위치는 (0,0,1,0); 따라서 기본 광원은 방향, 병렬 및 -z 축의 방향입니다.
GL_SPOT_DIRECTION
params 매개 변수에는 같은 유형의 개체 좌표로 빛의 방향을 지정하는 세 개의 정수 값이 포함되어 있습니다. 정수 값과 부동 소수점 값은 모두 직접 매핑됩니다. 정수나 부동 소수점 값은 모두 고정되지 않습니다.
스폿 방향은 glLightiv 가 호출될 때(정상인 것처럼) modelview 행렬의 역방향에 의해 변환되고 눈 좌표에 저장됩니다. GL_SPOT_CUTOFF 기본적으로 180이 아닌 경우에만 중요합니다. 기본 방향은 (0,0,1)입니다.
GL_SPOT_EXPONENT
params 매개 변수는 광원의 강도 분포를 지정하는 단일 정수 값입니다. 정수 및 부동 소수점 값은 직접 매핑됩니다. [0, 128] 범위의 값만 허용됩니다.
유효 광원 강도는 광원의 방향과 조명에서 조명되는 꼭짓점까지의 방향 사이의 각도의 코사인에 의해 감쇠되고, 스폿 지수의 거듭제곱으로 높아집니다. 따라서 스폿 지수가 높을수록 스폿 컷오프 각도에 관계없이 더 집중된 광원이 생성됩니다. 기본 스폿 지수는 0이므로 균일한 광원 분포가 발생합니다.
GL_SPOT_CUTOFF
params 매개 변수는 광원의 최대 확산 각도를 지정하는 단일 정수 값입니다. 정수 및 부동 소수점 값은 직접 매핑됩니다. 범위 [0, 90]과 특수 값 180의 값만 허용됩니다.
조명의 방향과 조명에서 조명되는 꼭짓점까지의 방향 사이의 각도가 스폿 컷오프 각도보다 크면 조명이 완전히 마스킹됩니다. 그렇지 않으면 해당 강도는 스폿 지수 및 감쇠 요인에 의해 제어됩니다. 기본 스폿 컷오프는 180이므로 균일한 조명 분포가 발생합니다.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
params 매개 변수는 세 가지 광원 감쇠 요소 중 하나를 지정하는 단일 정수 값입니다. 정수 및 부동 소수점 값은 직접 매핑됩니다. 무수한 값만 허용됩니다.
조명이 방향이 아닌 위치인 경우 해당 강도는 상수 계수, 광원과 조명되는 꼭짓점 사이의 거리를 곱한 선형 계수, 동일한 거리의 제곱을 곱한 합의 상호에 의해 감쇠됩니다. 기본 감쇠 요소는 (1,0,0)이므로 감쇠가 없습니다.

params

광원 원의 매개 변수 pname이 로 설정되는 값을 지정합니다.

반환 값

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

오류 코드

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

Name 의미
GL_INVALID_ENUM
light 또는 pname 은 허용되는 값이 아닙니다.
GL_INVALID_VALUE
스폿 지수 값이 [0, 128] 범위 외부로 지정되었거나 범위 [0, 90](특수 값 180 제외)을 벗어나는 스폿 컷오프를 지정했거나 음수 감쇠 인수를 지정했습니다.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

glLightiv 함수는 개별 광원 매개 변수의 값 또는 값을 설정합니다. light 매개 변수는 조명의 이름을 지정하고 GL_LIGHT i 형식의 기호화된 이름입니다. 여기서 0 = i<는 GL_MAX_LIGHTS.

pname 매개 변수는 기호 이름으로 다시 광원 매개 변수 중 하나를 지정합니다. params 매개 변수는 단일 값이거나 새 값을 포함하는 배열에 대한 포인터입니다.

인수 GL_LIGHTING glEnableglDisable 을 사용하여 조명 계산을 사용하도록 설정하고 사용하지 않도록 설정합니다. 조명을 사용하도록 설정하면 사용하도록 설정된 광원이 조명 계산에 기여합니다. 광원 i인수 GL_LIGHT glEnableglDisable을 사용하여 사용하도록 설정되고 비활성화됩니다.

항상 i = GL_LIGHT0 + i를 GL_LIGHT 경우입니다.

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

glGetLight

인수 GL_LIGHTING glIsEnabled

요구 사항

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

추가 정보

glBegin

glColorMaterial

glEnd

glLightModel

glMaterial