2d 절차 우주 생성


16

평평한 우주를 만들고 싶습니다. 처음에는 전체 우주가 비어 있습니다.

그것은 시차 스크롤 성운 배경 이미지로 표현됩니다.

내가하고 싶은 것은 행성을 우주에서 원반 모양의 물체로 나타내는 것입니다. 그들은 다양한 크기가 될 수 있습니다.

디스크의 내부는 육지로 구성되고 그 외부는 수역이되고 그 후에는 공기가됩니다.

예를 들어 공기가 다양한 가스와 다양한 미네랄과 자원의 땅으로 구성되어 있기 때문에 절차 적으로 타일을 만드는 가장 좋은 방법은 무엇입니까?

첫 번째 생각은 텍스처 이미지를 만든 다음 해당 텍스처에서 원을 찍는 것입니다. 그러나 문제는 해당 텍스처가 가로 및 세로로 줄 바꿈되어야한다는 것입니다. 이 작업을 수행하는 완전한 절차 적 방법이 있습니까?


이와 같은 질문은 당신이 무엇을했는지 설명하기 위해 시각적으로 답변하는 것이 좋습니다. 아래의 좋은 답변은 너무 기술적이거나 충분히 기술적이지 않을 수 있습니다.
Richard Fabian

답변:


14

절차 적 텍스처, 특히 노이즈 기반 텍스처는 타일로 만들 수 있습니다. 저널 항목 은 물론 GDNet 의이 스레드 를 참조하십시오 . 이 링크 도 있는데 , 그 사실을 말할 수는 없지만 흥미롭게 들립니다.

절차 적으로 세계를 생성하는 것에 관해서는 Infinity를 개발하는 사람 작성한 이 기사 가 있습니다. 그의 시스템은 3D이지만 기술을 쉽게 쉽게 적용 할 수 있습니다.

절차 적 컨텐츠 생성에 대한 전체 위키 도 있습니다.


1
Pff. 더 빨리 타이핑하는 법을 배워야합니다. 이것은 기본적으로 아래 편집기 창에있는 것입니다 ... +1 당신에게 선생님.
bummzack

건배하겠습니다.
Joseph Le Brech

2

상단에 공기가 있고 하단에 흙이있는 직사각형 질감을 원하는 것처럼 들립니다. U 텍스처 좌표가 원 주위의 각도를 나타내고 V 텍스처 좌표가 원의 중심으로부터의 거리를 나타내도록하여 직사각형 텍스처를 원에 매핑 할 수 있습니다. 더 큰 행성의 경우 U는 행성을 여러 번 감쌀 수 있습니다.

일반 2D 좌표 XY에서 위 UV 좌표로 변환하려면 다음과 같이 수학을 수행 할 수 있습니다.

y -= planet_center.y;
x -= planet_center.x;
u = atan2( y, x );
v = sqrt( y*y + x*x );

이것을 행성 중심에 너무 가깝게 계산하지 않도록주의해야합니다 ...


나는이 i.imgur.com/gpCTc.jpg 땅, 바다, 공기, 공허 와 같은 우주의 수직 단면 선을 따라 더 많이 생각하고 있습니다 . 등
조셉 르 Brech

그것은 공간을 유형으로 나누는 합리적인 방법이지만, 구형 행성처럼 보이게 만드는 것은 어려울 것입니다.
bmcnett

행성처럼 보이게 할 필요는 없습니다. 충분한 비율의 임의의 땅, 물, 공기, 그리고 그 격자의 다른 행성과 함께 16 진 격자에 모두 있습니다.
Joseph Le Brech

그러면 인접한 타일 사이의 예측 가능한 위치에 토지 / 공기 등의 가장자리가 나타나는 제약 조건으로 많은 육각형 텍스처 타일을 생성하고 싶습니까?
bmcnett

그렇습니다. 따라서 각 층 (토지, 물 ..)의 크기가 무작위로 선택되고 그 땅 질량에 무작위 땅 타일이 행성에 배치되고 각 층에 동일하게 배치됩니다.
Joseph Le Brech
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.