목록매핑 (4)
응애맘마조
주의 : 해당 게시물에서 작성될 내용은 과제를 해결하기 위해 출처의 내용을 그대로 작성한 부분이 많으며 일절 광고나 수익 창출 목적으로 쓰인 것이 아님을 밝힙니다. 그림자매핑은 그림자 맵을 사용 하여 물체의 그림자를 표현하는 한 방법이며 물체의 깊이를 그리는 가장 많이 사용되는 기법입니다. (여기서 그림자 맵은 깊이 값을 가지고 있는 텍스쳐입니다.) 원리는 광원에서 바라본 물체의 깊이값과 카메라에서 바라본 물체의 깊이값이 서로 다르기에 이 값을 이용해서 광원으로부터 차폐물까지 거리 정보를 구할 수 있고 이 값을 깊이 버퍼에 넣어 그림자를 만듭니다. 먼저 광원으로부터 빛이 물체에 차폐되는 빛의 정보를 깊이 버퍼에 기록합니다. 이 정보는 광원에서 출발한 빛이 물체에 차단될 때까지의 거리값입니다. 그리고 렌더..
주의 : 해당 게시물에서 작성될 내용은 과제를 해결하기 위해 출처의 내용을 그대로 작성한 부분이 많으며 일절 광고나 수익 창출 목적으로 쓰인 것이 아님을 밝힙니다. 노멀 매핑 폴리곤의 법선 벡터의 값을 사용하여 로우 폴리곤의 그래픽 환경에서 하이 폴리곤의 입체감 및 질감을 구현하는 방법입니다. 물론 물체의 질감을 있는 그대로 표현하게 되면 삼각형의 양이 상당히 많아지고 연산량도 증가하게 되지만 노멀 매핑을 사용하면 반대로 폴리곤을 적게 사용하고도 비슷하게 효과를 낼 수 있는 기술입니다. 원리로는 실제 사람이 눈으로 볼 때는 물체의 표면에 굴곡이 있을 때 그 굴곡 때문에 표면의 방향성이 바뀌고 그 방향에 따라 빛이 다르게 반사되기 때문에 보는 사람이 그 굴곡을 느낄 수 있습니다. 하지만 DirectX에서는..
map.obj 파일을 출력하고 그 안에서 캐릭터가 움직이는 모습과 맵 밖으로 나갈 경우 나가지 못하게 만드는 것이 과제였습니다. if (Util::RayIntersectTri(*deadRay, map_floor->Find("Rectangle19"), deadPoint)) { currentPos = dead->GetWorldPos(); if (INPUT->KeyPress(VK_UP)) { dead->MoveWorldPos(-dead->GetForward() * 10.0f * DELTA); } if (INPUT->KeyPress(VK_DOWN)) { dead->MoveWorldPos(dead->GetForward() * 10.0f * DELTA); } if (INPUT->KeyPress(VK_LEFT)) {..