소스코드
void Spider::Occulusion_Culling(const int& num)
{
v_Spider[num]->b_Occlusion = false;
//1.몬스터와 카메라의 Ray를 구함.
Ray ray = CAMERA->Get_Mon_Ray(v_Spider[num]->box_Spider->position);
for (int i = 0; i < OBSNUM; i++)
{
if (!obs_Mon[i])
continue;
//2.정적인 장애물에 존재하는 오클루더와 Ray 충돌시 컬링 진행함.
for (const auto & Obstacle : obs_Mon[i]->v_obs)
{
if (Obstacle->rect_occlusion->IsCollision(ray, &distance, &contact))
{
//3.거리 비교
if (Distance(v_Spider[num]->rect_ocllusion->position,
CAMERA->GetPos()) > distance)
{
v_Spider[num]->b_Occlusion = true;
break;
}
}
}
}
}