Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Eric Han's Game Programming Blog

3D 지형 편집 툴 본문

포트폴리오

3D 지형 편집 툴

Eric_Han 2023. 2. 16. 20:54

 

Summary

 

Senior Student Project

Team Size: 1

Roles: Engine Programmer, Graphics Programmer, System Programmer, Tool Programmer, UI Programmer

C++ | DirectX11 | Win32 API | GUI

 

GAM400 프로젝트는 4학년 가을학기에 진행한 1인 프로젝트이다. 원래 GAM 강의는 주로 팀을 꾸려 게임 프로젝트를 진행하곤 하는데, 4학년 때는 다들 바쁘고, 연구 과제 또한 주어지다 보니 어지간히 깔끔한 주제가 만들어지지 않는 한 1인 프로젝트가 대부분이었다.

물론 몇몇 팀들은 GAM350에 이어서 GAM375 프로젝트를 하곤 하지만 그 팀들은 주로 여름 계절학기에 프로젝트를 제작하고, 4학년 1학기 프로젝트 강의에는 참석하지 않는 편이다.  

 

이때 이 프로젝트를 만들게 된 이유는 GAM 350 팀 드래프트 기간 동안 잠시 몸을 담았던 팀(유니티 3D로 RTS 게임을 만드는 팀이었다.)에서 겪었던 문제와, GAM 300 팀에서 겪었던 문제를 스스로 해결해보고 싶었기 때문이다. 대학교 3학년 학생들이 다들 그렇듯이, 무언가 의욕은 넘치지만 시간이 부족하거나, 완성하지 못하는 부분이 생기곤 하는데, 내가 겪었던 팀들은 이런 절차적 지형 생성에 큰 곤란을 겪곤 했다. 그래서 그런 문제를 해결하기 위한 방법이 뭐가 있을까 고민하다가 프로젝트를 만들게 되었다.

 

이 프로젝트의 핵심은 2차원 노이즈 데이터를 만들어, 해당 노이즈를 높이 맵의 정보로 삼는 것이다. 이때 완전히 무작위 한 노이즈는 지형이나 일관적인 데이터로 쓸 수 없기 때문에, 주변 정보와 연속적인 값을 가져야 한다.

 

흔히 이런 보간 방법을 Smoothstep이라고 하는데, 본 프로젝트에서는 1차, 3차, 5차, 7차 Smoothstep까지 구현하였다. 고차 보간이 중요한 이유는 각 보간 점들의 법선벡터 때문이다. 사실 대부분의 곡면 보간, 곡선 보간등이 공통적으로 겪는 문제인데, gradient를 계산해 보면 각 점들마다 어긋나게 되어버리고, 이로 인해 제대로 된 결과를 얻을 수 없는 경우가 발생한다. 그래서 해당 문제를 해결하기 위해 고차 보간으로 연산해 별도의 추가 연산 없이도 정점 법선을 계산할수 있다. 물론 인접 정점들로 삼각형을 만들고, 해당 삼각형의 법선을 구해, 인접 면법선들의 평균을 산술적으로 구해내는 방법도 있지만, 이 방법은 미리 베이크 하는 메쉬 정도에나 적합한 방법이라고 생각한다.  

 

 

'포트폴리오' 카테고리의 다른 글

3D 변형체 시뮬레이션 테크 데모  (0) 2023.02.16
3D 강체 시뮬레이션 엔진  (1) 2022.12.02
Project Neon  (0) 2022.12.02
Comments