https://youtu.be/lAoHx1imwxA

바다쪽 해저 추가하고
Paint 칠 해주는 기능도 조금 추가하고
프텍탈 노이즈 넣어주면 일단 완성~

blog image

Written by Pichachu


후.. 얼추 이식 작업은 끝났고, 렌드스레이프 생성만 해주게끔 툴을 만들면 이식은 끝날 것 같네요 ㅎㅎ

컴파일러가 초기화되지 않은 변수를 자동으로 0으로 초기화 해버려서 깜박하고 초기화 하지 않은 곳에서 버그가 발생하고 이거 찾느냐 2~3일 시간이 날아갔네요 ㅠ

Initialize 호출 방식으로 초기화를 몇개 하다보니.. 으윽..


거기에 float/double 형 등 부동소숫점 연산에서 오차가 발생하기 마련인데
기존 프로젝트 셋팅이 잘못된건지 MS에서 VS 기본 설정을 이렇게 해둔건지 자동? 으로 반올림 하거나, 소수점 이하를 날려버리고 있더라구요;;

언리얼 프로젝트에선 어김없이 소숫점 단위로 연산이 튀어나와, 오차가 발생하기 시작했고
연산 결과가 너무 상이하게 나오는 참사가 발생.. 하나하나 반올림 넣어주고
티 많이 안나오는 곳은 풀어주고...

끄아아아아악


막코딩 하느냐 막 넣어버리거나 유니크용으로 일단 박고 시작한 전역 변수 diagram 쪽으로 다 밀어 넣어버리고..
랜덤 함수 부분도 변경해서, 0시드 모양이 바뀌었네요~

이 버그 덩어리를 아직 공개 상태로 안해둔게 다행 ㅎㅎ


현재 강 줄기가 이상하게 보이는 버그가 있는데, 이식이 일단 완료되면 이 버그부터 수정하고
바다 부분에 수위/심해 작업을 진행할 것 같네요

수위/심해 작업은 금방 할 수 있을 것 같은데.. 강줄기 버그가 문제네요 ㅠ

 

흐림 필터도 박스 필터랑 가우시안 필터 기능도 추가해두긴 했는데
어느 정도가 맵에 자연스럽게 적용되는진 실험을 해봐야해서 ㅎㅎ

거기에 프랙탈 노이즈도 넣어야하고.. 응애..

blog image

Written by Pichachu


 

 

예상하지 못했던 문제가 조금 있었는데

1. 높낮이 범위가 8비트가 아니라 16비트였다
2. 생각보다 각져있고, 꼭지점이 평평하다

사실 2번은 조금 의도하고 각지게 만든것도 있지만 XY 범위가 넓어서 그런 것 같기도 하고..
그 외에도 평평한 높이가 같은 셀들이 정점에 자주 만나서 평지가 되는 현상을 발견
전자는 스무스 필터를 넣어주면 대부분 해결되고, 후자는 최고점 봉우리의 경우 가중치를 추가로 넣던지 or 그냥 유지하던지 할 듯

스무스를 간단하게 넣어봤는데, 나름 괜찮게 나옴
스무스 알고리즘도 좀 찾아보고 추가로 프랙탈 노이즈를 넣어주면 은근 이쁘게 나오지 않을까 기대중입니다 ㅎㅎ



1번은 사실 언리얼엔진에 바로 이식하려고 생각하고 있어서 고려하지 않았는데 언리얼엔진이나 다른곳에 사용할 때 많이 불편해서 기능 추가, 언리얼엔진에 기본적으로 하이트맵 적용하는 기능이 있어서 사용해보니.. 상당히 깨져서 나옴 ㅠ
하이트맵이라 그냥 적당히 0~255 범위 정도면 충분할거라 생각했는데, 의외로 16비트(0~65535) 까지 사용하던..

그냥 Color에 grayscale용 uint16_t 변수 하나 만들고 이에 따라서 색 입혀주게끔 설정 끗~
시각용으로 컬러가 필요하긴 하니깐 Color 날려버리기도 애매..

blog image

Written by Pichachu