DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 구조체 D3DLIGHT9 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
일련의 라이트 프로퍼티를 정의한다.
구문
typedef struct _D3DLIGHT9 { D3DLIGHTTYPE Type; D3DCOLORVALUE Diffuse; D3DCOLORVALUE Specular; D3DCOLORVALUE Ambient; D3DVECTOR Position; D3DVECTOR Direction; float Range; float Falloff; float Attenuation0; float Attenuation1; float Attenuation2; float Theta; float Phi; } D3DLIGHT9;
멤버
- Type
- 광원의 종류. 이 값은 D3DLIGHTTYPE 열거형의 멤버중 하나이다.
- Diffuse
- 라이트가 방사하는 디퓨즈색. 이 멤버는 D3DCOLORVALUE 구조체이다.
- Specular
- 라이트가 방사하는 스펙큐러색. 이 멤버는 D3DCOLORVALUE 구조체이다.
- Ambient
- 라이트가 방사하는 앰비언트색. 이 멤버는 D3DCOLORVALUE 구조체이다.
- Position
- 월드 공간내에서의 광원의 위치. D3DVECTOR 구조체로 지정된다. 이 멤버는, 디렉셔널 라이트에 있어 의미가 없고, 무시된다.
- Direction
- 월드 공간에서 빛이 가리킬 방향. D3DVECTOR 구조체로 지정된다. 이 멤버는, 디렉셔널 라이트 및 spotlight의 경우에만 의미를 갖는다. 이 벡터는 정규화할 필요는 없지만, 제로보다 큰 길이를 가지지 않으면 안 된다.
- Range
- 광원의 유효 거리. 이 멤버의 최대 허용값은 FLT_MAX 의 제곱근이다. 이 멤버는 디렉셔널 라이트에게는 영향을 주지 않는다.
- Falloff
- spotlight의 내부 콘 (Theta 로 지정되는 각도)과 외부 콘 (Phi 로 지정되는 각도)의 외측 엣지와의 사이에 휘도(Luminance)가 폴 오프 한다.
조명에 대한 폴 오프의 영향은 미묘하다. 게다가 폴 오프 커브를 그리면 다소의 성능 위에의 로스를 입는다. 이러한 이유에 의해, 개발자의 상당수는 이 값을 1.0 으로 설정한다.
- Attenuation0
- 라이트의 강도가 거리에 의해 어떻게 변화하는지를 지정하는 값. 디렉셔널 라이트의 경우, 감쇠값은 무시된다. 이 멤버는 감쇠 정수를 나타낸다. 감쇠의 더 자세한 정보는, 「라이트의 위치 좌표, 범위, 감쇠」를 참조할것. 이 멤버에 유효한 값의 범위는, 0.0 으로부터 무한대이다. 디렉셔널 라이트 이외의 경우, 3 개의 감쇠값 모든 것을 동시에 0.0 으로 설정해서는 안 된다.
- Attenuation1
- 라이트의 강도가 거리에 의해 어떻게 변화하는지를 지정하는 값. 디렉셔널 라이트의 경우, 감쇠값은 무시된다. 이 멤버는 감쇠 정수를 나타낸다. 감쇠의 더 자세한 정보는, 「라이트의 위치 좌표, 범위, 감쇠」를 참조할것. 이 멤버에 유효한 값의 범위는, 0.0 으로부터 무한대이다. 디렉셔널 라이트 이외의 경우, 3 개의 감쇠값 모든 것을 동시에 0.0 으로 설정해서는 안 된다.
- Attenuation2
- 라이트의 강도가 거리에 의해 어떻게 변화하는지를 지정하는 값. 디렉셔널 라이트의 경우, 감쇠값은 무시된다. 이 멤버는 감쇠 정수를 나타낸다. 감쇠의 더 자세한 정보는, 「라이트의 위치 좌표, 범위, 감쇠」를 참조할것. 이 멤버에 유효한 값의 범위는, 0.0 으로부터 무한대이다. 디렉셔널 라이트 이외의 경우, 3 개의 감쇠값 모든 것을 동시에 0.0 으로 설정해서는 안 된다.
- Theta
- spotlight의 내부 콘, 즉 충분히 빛으로 비추어지고 있는 spotlight 콘의 각도를 라디안 단위로 나타낸다. 이 값은, 0 으로부터 Phi 에 의한 지정값의 범위에 없으면 안 된다.
- Phi
- spotlight의 밖콘의 외측의 엣지를 정의하는 각도를 라디안 단위로 나타낸다. 이 콘의 외측에 있는 점은 spotlight로 조명 되지 않는다. 이 값은 0 으로부터 pi 의 범위에 없으면 안 된다.
구조체의 정보
헤더 d3d9types.h 최저한의 operating system Windows 98
참조
IDirect3DDevice9::GetLight ,IDirect3DDevice9::SetLight