행성 탐험으로 부분적으로 구성된 게임을 디자인하고 있습니다. 모든 세부 사항을 저장하지 않고로드해야 할 때 정의 된 시드에서 재생성하는 의사 랜덤 생성을 사용하고 싶습니다. 너무 무겁습니다. 따라서 플레이어가 수행 한 임의의 시드 및 수정 사항을 파일에 저장합니다.
플레이어는 궤도에서 행성을 볼 수 있어야합니다 (세부 정보가 매우 낮은 상태에서 지상으로 내려 가서 착륙하는 지역의 세부 정보 수준이 느리게 증가하고 다른 쪽의 정보가 언로드 됨) 플레이어의 시야 밖에있는 행성의
비행기 지상에서해야한다면, 정사각형 덩어리 시스템으로 쉽게 할 수 있습니다. 그러나 여기서 문제는 행성은 거의 구체라는 것입니다.
그렇다면 정확한 지점 주위에 접지 세부 사항 (릴리프 및 접지 된 물체)을로드하는 가장 좋은 방법은 무엇입니까?
나는 이미 두 가지 해결책을 가지고 있지만 둘 다 약점이 있습니다.
1. 구를 사각형 덩어리로 자릅니다.
플레이어가 땅에 충분히 가까워지면 자신의 위치에서 가장 가까운 사각형의 세부 사항을 개선해야합니다.
충분하지 않은 경우에도 플레이어가 바닥에 있거나 실제로 지상에있을 때 하위 사각형으로 각 사각형을자를 수 있습니다.
그러나 그림에서 볼 수 있듯이 플레이어가 극에 착륙하려고하면 문제가 있습니다. 정사각형은 매우 슬림 한 사각형 또는 마지막 선의 삼각형이되고 추가로로드하기가 쉽다는 사실에 해당합니다. 세대가 왜곡되어 나타납니다.
2. 정 이십 면체에서 시작.
여기서는 플레이어가 가까워 질 때 플레이어의 위치 주위에 삼각형 테셀레이션을 늘릴 수 있습니다.
그러나 나는 플레이어의 위치보다 삼각형을 찾는 방법을 모른다. 이 경우 데카르트 좌표 가 유용 할 수 있다고 들었지만 사용법을 모르겠습니다.
C ++ / OpenGL을 사용하고 있으므로 여기에서 생성하고로드하는 가장 중요한 것은 표면 릴리프 및 색상 / 질감을 나타내는 정점입니다.