별건 아니고 간단한 셀룰러 오토마타 비스무리하게 작동하는 걸 헥사 타일 버전으로 구현햇슴. 유체역학 같은거 쌩까고 매프레임마다 각 타일이 인접타일에 1/6만큼 값을 더해주는 식으로 구현한거라서 제대로된 파도 시뮬레이션이라던가 그런건 업슴.
느낀 점
1. 헥사타일 처음 구현해보는데, 특정 좌표(마우스 위치)에서 가장 가까운 타일을 O(1)로 구하는게 생각보다 귀찮앗슴... 사각 타일이엇으면 걍 타일 크기로 좌표를 나눠버리면 되엇을 건데 헥사타일은 타일 끼리 어긋난 부분 때문에 어떻게 처리해야 가장 합리적일까 고민하는데 시간 많이 썻슴...
2. 사각 타일은 상하좌우 인접타일 4개랑 대각선 방향 인접타일 4개가 인접한 면적이 다르니까 항상 처리하기 애매하다고 생각했는데, 헥사타일은 모든 인접타일이 같은 형식으로 인접하고 있으니 찝찝하지 않고 편안-함
3. 근데 이걸 실제로 게임에 적용할 지는 몰르겟슴... 각 셀 별로 기온이나 기압이나 액체의 양 등을 시뮬레이션해서 기온 높은데 있으면 뒤지고 액체에 잠기면 뒤지고 이런거 구현하려고 시도해보는건데 시간과 능력이 되나 싶음... 현재 대충 구현한 것 기준으로 60fps 유지하려면 50x50정도밖에 못까는데 멀티스레딩이나 컴퓨트 쉐이더 같은거 적용하면 훨씬 더 깔 수는 있겠지만 그러면서 코드 유지보수랑 각 요소들 사이의 상호작용을 제대로 관리할 수 잇슬가
우왓
저거 성능 좋음?? 바닥 박살내는 연출할 때 데칼 띡 묻혀놓는 거보다 훨씬 나을 거 같은디
아 밑에 써있군 결국 컴퓨트셰이더인가
@211214 본인쟝은 액체시뮬레이션을 모든 타일마다 매프레임별로 계속 돌려야해서 컴퓨트 쉐이더까지 써야하는거고 걍 파괴 정도면 훨씬 적은 비용으로 구현 됨
나도 헥사로만들다 좌표짜증나서 걍 사각형으로 런쳣다
겜만들다 헥사면 나중에 어떤 ㅈ버그가 생길지 감도안잡혀서 푸씨행동 해버림
@파베르 우우 근성을 보이란 말이다
나는 자기객관화 잘하는편이라 내깜냥 아닌거같은거는 안함
쉐이더로 저런걸 어케함??
컴퓨트 쉐이더라고해서 GPU를 그래픽과 무관하게 연산장치로 활용할 수 잇는 방법이 잇슴
@김메가 인공지능 두들겨 패면 방법 알려 주려나...
@흑_두루미 어려운 개념도 아니니 ㄱㅊ 근데 극한의 병렬 프로그래밍이다보니까 활용할 수 있는 조건이 빡쎄서 생각보다 쓸데가 많지 않음
@김메가 아...병렬연산은 제한조건이 많이 붙어서 상호작용하는 로직엔 쓰기 빡세다 들었음....로직 최적화나 열심히 해야지
@김메가 그래도 저런거 다른사람이 할줄 아는거 보면 경쟁심이 붙음 ㅋㅋㅋ 나도 기술적으로 독보적인 위치에 오고 싶다는
고수는 싫고 깻잎은 조아요