2010-12-28 5 views
0

3D 게임에서 음영 처리 방법은 무엇입니까? 큐브로 만든 나무의 한면을 음영 처리하는 방향 광원이 있습니다. 나머지 3면은 모두 주변 음영 만 얻습니다. 따라서 두 개의 주변 음영 처리 된면을 보면 3d 효과가 손실됩니다. 내가 놓친 게 있니? 광원에서 가장 멀리 떨어진 쪽을 더 어둡게해야하나요? 나는 Fallout 3을 조사해 보았는데, 마치 Minecraft가 두 개의 반대쪽면이있는 잔디밭과 나머지 두 개의 반대쪽면이 두 개의 빛에 대해 두 개의 방향 표시등이 있다는 효과를주는 어두운 종류의 그림자가있는 것처럼 보입니다. 음영 처리 된면과 주변 광이 어두운면을 나타냅니다.주변의 음영 처리 된면과 3D 음영/조명이 손실된다

답변

1

현재 광원이 축 정렬되어있는 것처럼 들립니다 (예 : 방향이 x, y, 0 또는 0, y, z). 이것은 당신의 나무가 빛을 마주 보는면을 완전히 밝힐 것이고, 다른 것들은 전혀 비추 지 않을 것입니다. 개선하기 위해 할 수있는 한 가지 방법은 빛을 약간 이동시키는 것입니다 (x 또는 z의 0에 비트를 추가하여). 이것은 두 개의면이 다른 양으로 조명된다는 것을 의미합니다 (0이 0과 x/z 값 사이의 어딘가로 증가한다고 가정). 그렇다면 당신은 두 개의 조명이없는 얼굴을 가지고 있습니다. 두 번째 빛은 필요할 경우 덜 비슷하게 만듭니다.

0

우선 glLightModeli를 호출하여 GL_LIGHT_MODEL_TWO_SIDE를 GL_TRUE로 설정하십시오.

1

물체가 큐브로 만들어지면 물체의 한면이 어둠에있을 것임을 보증합니다. 앰비언트 라이트를 사용하면 약간 밝게 보이지만 가장자리에는 여전히 그림자가 생기지 않습니다. 몇 가지 옵션을 사용할 수 있습니다

  1. 빛 오프 반사 표면을 수신 거부,
  2. 여러 패스를 받아 큐브의 모양을 표시하는 데 도움이 큐브에 대한 텍스처를 사용
  3. 가 확인 (비싼!) 두 번째 광원 (아마도 매우 부 자연스럽게 보일지라도)

당신이하는 일이 매우 간단하다고 들리므로 현재 구현이 만족 스럽다고 말할 수 있습니다.

관련 문제