반응형


http://dark0946.tistory.com/63


조명

환경광(Ambient Light)  : 

난반사광(Diffuse Light) :

정반사광(Specular Light) :




재질( = 머트리얼) 지정
D3DMATERIAL9
{
Diffuse  - 표면이 반사하는 난반사광
Ambient - 표면이 반사하는 환경광
Specular - 표면이 반사하는 정반사광
Emissive - 자체 발광
Power - 발광 정도
}




광원
 - 점 광원(Point Light)
멀리 갈수록 어두워지며, 멀리갈수록 그림자가 커진다.

- 방향성 광원(Directional Light)
 = 태양광과 비슷. 빛의 밝기는 똑같음. 각도의 영향

- 스포트 광원(Spot Light)
특정 영역에만 비춤.(스포트라이트, 손전등과 유사)
가운데 지점은 밝고 주변으로 갈수록 어두워짐.


D3DLIGHT9
{
D3DLIGHTTYPE  Type - 광원 종류
D3DCOLORVALUE Diffuse - 표면이 반사하는 난반사광 색상
D3DCOLORVALUE Ambient - 표면이 반사하는 환경광 색상
D3DCOLORVALUE Specular - 표면이 반사하는 정반사광 색상
D3DVECTOR Position  -   광원의 위치 지정 벡터 (방향성광원은 상관없음 - 거리에따라 빛의 세기가 변하지 않음.)
D3DVECTOR Direction  - 빛이 향하는 방향 지정. (점광원은 필요없음 - 주변으로 다 비치니까)
float Range;  - 빛이 소멸되는거리. (Ex. 남산 언덕에 있는 가로등 하나가 내 얼굴까지와서 비추진 않는다.)
float Falloff; - (스포트에서만 사용) 밝은 원과 주변 어두운 원의 밝기 차이
float Attenuation0; - 상수감소
float Attenuation1; - 선형감소
float Attenuation2; - 이차감소
float Theta;     -스포트 광원에서 가장 밝은부분 비추는 각도
float Phi; - 스포트 광원에서 전체를 비추는 각도
}





http://dark0946.tistory.com/65



 D3DLIGHT9 dir;
 ::ZeroMemory(&dir, sizeof(dir));
 dir.Type      = D3DLIGHT_DIRECTIONAL;   // 조명 종류
 dir.Diffuse   = d3d::WHITE;  // 난반사광 색상
 dir.Specular  = d3d::WHITE * 0.3f;  // 정반사광 색상
 dir.Ambient   = d3d::WHITE * 0.6f;  // 환경광 색상
 dir.Direction = D3DXVECTOR3(0.0f, 0.0f, -5.0f); // x축 방향에서 빛이 비춰짐.


  D3DXVECTOR3 pos(0.0f, 0.0f, -10.0f);   // 원점 to  벡터좌표 X  -> 벡터좌표 -> 원점  :: 화살표 방향을 기준
  D3DXCOLOR c1 = d3d::WHITE;
  D3DLIGHT9 p1  = d3d::InitDirectionalLight(&pos,&c1);


반응형

+ Recent posts