오늘은 y깊이에 따라 광물을 배치해보았습니ㅏㄷ
먼저 마인크래프트의 광물 분포도입니다
저같은 틀은 오른쪽이 더 익숙할텐데요
패치로 왼쪽처럼 바뀌었다고합니다
이걸 이제 염가판으로 구현해보겠습니다
먼저 잼미니가 추천해준 Animation Curve를 사용해봤습니다
필드에서 선언만해주면 인스펙터에 나타나서 편리해욧
누르면 이런게 뜨는데 값 설정만해주면 됩니다
저 0.2~0.8범위 밖 값(0.1일때 값)을 특정 값으로 제한하고 싶으면 직접 함수를 짜줘야됩니다
그렇지 않으면 clamp나 loop처리 되어서 원하지 않는 값이 나와요
이제 맵데이터는 광물로채웠으니까
uv값을 조절해야합니다
지금까지는 텍스쳐 아틀라스를 사용하지 않아서 uv에 (0,0) (0,1) (1,0) (1,1) 값을 편하게 넣었지만
텍스쳐 아틀라스를 사용할 것이기 때문에 uv좌표 블록에따라 달라질거에요
왼쪽 하단부터 오른쪽 상단까지 0~15번의 블록인덱스로 채우겠습니다
CreateFace함수를 변경해줍니다
이제 블록ID를 받아와서 아틀라스의 어느부분을 쓸지 결정해야돼요
나머지와 나눗셈 연산으로 Row, Column을 구해줍니다
그리고 올바른 순서대로 넣어주는 함수 짜주기 (1,1) - (1,0) - (0,0) - (0,1)
size는 1/4입니다
결과
청크 100 (y1600) 개 짜리 전체 지형
석탄,철이 나오는 표면층~중간층
금, 다이아가 나오는 심층
야호
동굴이나 광물 덩어리는 구현못하겠어요
이야근데 이거 저장구현도 까다롭겠네
개고수네진짜
비슷하게 해서 빈공간 생성을 할 수 가 없나?
GPU Instancing과 청크, Flyweight 패턴 등.. 잘 적용한거라면 나쁘지 않다고 보고있음
어드민님저오피점