전체 글339 32. Picking RTS 게임을 보면 마우스로 물체를 클릭하면 그 물체가 선택된다. 그런데 실제로 물체가 존재하는 공간은 3D 공간이고 내가 클릭하는 공간은 마우스 공간인데, 선택되었는지 어떻게 판별하지? 레이캐스팅이란? - 이런 문제를 해결해주는 기술 - 이번 예제에서는 카메라 위치에서 레이를 발사해서 그 레이와 충돌여부를 검사한 후 그 결과로 클릭여부를 판별한다 - 레이캐스팅은 3D 공간에서 충돌처리를 할 때 많이 사용되는 기술인데, - 지형을 이동할 때 플레이어 배꼽 위치에서 아래로 광선을 쏴서 지형이 있는지를 검사하고, 판별하게 된다. - 내 앞에 광선을 쏴서 벽으로 막혔는지, 이동이 가능한지 확인하기도 한다. (거리를 확인할 수 있는데, 거리가 N 이하라면 이동불가 로직을 짜면 될 듯) 레이와 마우스 클릭한 좌표.. 2023. 2. 20. 31. Terrain - 터레인은 지형을 의미하며, 지형도 결국 삼각형 메쉬로 이루어져 있다. - 게임의 지형을 보면 삼각형마다 높이가 제각각 다른데 이 높이를 어떻게 저장하지? - 텍스쳐 하나를 만들고 각 정점마다 위치해야 할 높이 자체를 텍스쳐에 저장함 - 이 텍스쳐를 높이 맵이라고 한다. - 예제에서는 지형 텍스쳐를 외부에서 구해서, 테셀레이션과 높이 맵을 적용하고 있다. 지난 시간 복습 - Hull Shader? Control Point와 Patch를 통해 정점과 삼각형에 접근하고, - SV_TessFactor 시맨틱으로 지정된 변수의 인덱스에 접근해서 어떤 변 위에 정점을 추가로 더 찍을 수 있다. - SV_InsideTessFactor 시맨틱을 통해 내부의 점을 더 추가할 수 있다. - SV_TessFactor -.. 2023. 2. 20. 30. Tessellation Tessellation Stages란? - Hull Shader, Tessellator, Domain Shader 단계를 묶어서 Tessellation Stages라고 한다. - 지오메트리와 동일하게 정점을 추가하는 개념 - 지오메트리와 비교하면 테셀레이션은 좀 더 큰 규모에 적용이 된다. 동적 LOD란? - LOD란 Level of detail이라는 의미로 디테일의 정도를 의미하며 로우폴리, 하이폴리같은 디테일의 정도에 따른 메쉬의 분류를 생각하면 이해가 쉽다. - 동적 LOD란 이런 디테일이 실시간으로 변화하는 것 - 예를 들어 카메라 멀리 있는 물체는 정점의 개수를 줄여서 대충 그리고, 가까이 있는 물체는 디테일 하게 그리는 것 - 이런 작업은 렌더링 성능 향상에 도움이 된다. 물론 로우폴리와 하이.. 2023. 2. 19. 29. Shadow Mapping 그림자 매핑이란? - 빛에 의해 물체에 드리우는 그림자를 그리는 것 그림자가 나타나는 이유는 앞의 물체가 빛을 가리고 있기 때문이다. 그럼 그림자를 그리기 위해서는 앞에 물체가 있는지 없는지를 판별해야 한다. 이를 위해 빛의 위치에서 물체를 찍어서 깊이 값을 기록한 텍스쳐를 만들고, 그 텍스쳐를 이용해 실제 물체를 그릴 때 그림자를 같이 그려주는 것. 어떤 픽셀을 그려야 할 때 그 위치에 그림자가 있는지 없는지를 판별하려면 이 깊이 맵을 이용해야 한다. 그래서 라이팅이 들어가기 전 빛 위치의 카메라로 먼저 찍어서 깊이 값이 기록된 텍스쳐를 만든 후, 우리 실제 카메라로 찍어서 그 깊이값과 실제 깊이값을 비교해서 우리 물체가 더 깊이 있으면 그림자를 그려주는 것. - 빛 위치의 카메라를 LC라고 부르기로 .. 2023. 2. 18. 이전 1 ··· 49 50 51 52 53 54 55 ··· 85 다음