문제

포자 나 무한대와 같은 구형 세계를 구현, 저장 및 렌더링하는 가장 좋은 방법은 포자의 중간 단계와 여러 세계 ALA Infinity Universe가 없습니다. 행성 자체가 어떻게 생성되는지 또는 크기/스케일에 대해 가정하지 마십시오.

도움이 되었습니까?

해결책

렌더링을 위해서는 행성 표면에서 멀리 떨어진 곳으로 원활하게 이동하려면 일종의 탈선 알고리즘을 사용해야합니다. 많은 동적 LOD 알고리즘이 있습니다 (여기를 봐). Roam이라는 오래된 알고리즘은 구형 물체 또는 행성을 처리하도록 조정할 수 있습니다.구형 로밍). Geometry Clipmaps는 구형 표면에 적응할 수있는 새롭고 인기있는 알고리즘입니다. 또한.

데이터 저장과 관련하여 텍스처링, 높이 맵 등의 절차 적 생성 (필요에 따라)을 조사 할 수 있습니다. 이것은 무한대와 포자가 일을하는 방식과 유사합니다. 절차 텍스처링에 대해 조금 읽을 수 있습니다 여기. 절차 적 높이 맵은 지형을 원하는 복잡한/현실적에 따라 더 간단합니다. 가장 간단한 수준에서는 Perlin Noise 기능으로 정점 높이를 간단히 대체 할 수 있습니다.

다른 팁

표면에 대한 데이터를 저장할 무언가를 찾고 있다면, 당신은 Healpix. 천문학적 공동체가 하늘 (또 다른 구형 표면)을 매핑하기 위해 개발 한 소프트웨어입니다.

Healpix는 표면면의 위치와 크기를 설명하는 메쉬를 생성하고 각각을 ID에 할당합니다. 그런 다음 해당 ID를 키 또는 색인으로 사용하여 해당 특정 수준에 대해 원하는만큼 자세한 액세스 할 수 있습니다.

Heaspix는 인접한 표면적을 찾는 방법을 제공하고 각 메쉬 지점에 대해 중심 및 정점 위치를 제공 할 수 있습니다.

그것은 당신이 원하는만큼 각면을 세분화 할 수 있도록 계층 적 메쉬입니다. 따라서 이론적으로는 메쉬의 일부를 저해상도로, 다른 부품의 일부를 원한다면 더 높은 수준의 세부 수준으로 가질 수 있습니다. 그것은 무한히 나눌 수있는 멋진 속성을 가지고 있으며 (메모리 한도까지) 주어진 해상도의 그리드의 각 픽셀은 해당 해상도 레벨의 다른 모든 영역과 동일한 영역을 갖습니다.

배포 패키지는 필요하지 않을 수있는 많은 것들을 제공하지만 핵심 라이브러리는 유용해야합니다.

이것은 아마도 당신이 찾고있는 것이 아니라 ... 도대체. 좋은 이야기입니다.

공룡이 여전히 지구를 돌아 다니고 기억이 여전히 킬로 바이트로 측정되었을 때, 나는 일부 소프트웨어를 가지고 놀기 위해 행성을 골절하게 생성했습니다.

아이디어는 행성을 나타내는 2NXN 사각형을 만드는 것이 었습니다. 행성을 반으로 자르면 매번 두 반쪽을 약간 이동시킵니다. (임의의 위상 변속과 진폭으로 절단을위한 사인파. 교대를위한 또 다른 임의의 사인파.) 애프터 워드, 하위 수준 영역을 물로 침수하고 나머지는 고도에 따라 색상 코드를 침수시킵니다.

그런 다음 직경 N의 구를 상단에 놓고 프로젝트에 넣고 영역의 NXN 영역을 구의 절반에 감싸십시오. 맵 주위의 구를 움직이면 회전하는 것처럼 보였습니다.

메모리에 일종의 다각형 모델을 사용하여 세계를 구현하고 파일을 사용하여 저장하고 일종의 3D 엔진을 사용하여 렌더링하는 것이 좋습니다. 그것은 세계의 지리를 설명하기위한 오버레이와 함께 포인터 센터와 반경입니다.

편집 : 좀 더 자세히 주셔서 감사합니다. 필요한 세부 사항에 따라 텍스처를 작은 부품으로 나누기 위해 일종의 방법을 사용해야합니다. 20면의 질감을 생성하고 Icosahedron 중앙 지점 주변. 보세요 지도 투영 이것이 실제 생활에서 어떻게 처리되는지에 대한 생각.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top