개발 5

filament 렌더링 엔진 여행기 #3 - RenderPass (1)

이전에 FRenderer 코드를 보면서 filament의 렌더링이 RenderPass라는 객체 단위로 동작한다는 것을 추론할 수 있었다. 물론 모든 코드를 다 본 것은 아니기엔 예외는 존재할 수 있으나 RenderPass가 적어도 filament 렌더링 동작의 핵심적인 역할을 하는 클래스인 것까진 틀림없을 것이다. filament의 RenderPass는 그럼 어떻게 동작할까? 코드를 보기 전 클래스 다이어그램부터 보자 위 클래스 다이어그램이 RenderPass와 관련된 클래스 다이어그램이다. 클래스 간의 관계까지 표현해두진 않았다. 그리고 당연하지만 모든 멤버가 포함된 다이어그램은 아니다. 거기에 처음보는 클래스도 꽤 있는데... 이런 부분은 당장 알아야할 건 아니므로 넘어가자. 디자인 패턴에 대..

Graphics/filament 2025.04.28

Screen Space Light Shaft - 화면 공간 라이트 섀프트 (1)

저번까지 디테일 맵을 이용해 터레인 위에 디테일을 추가하는 것을 했었다. 그리고 이제부턴 저번에 예고한대로 화면 공간에서의 라이트 섀프트를 구현해보겠다. 우선 어떤 효과를 구현하기 위해선 이에 대한 자료 조사는 필수다. 그러므로 먼저 라이트 섀프트의 개념과 구현을 위한 이론적인 부분을 살펴보자. 언리얼 엔진 5.0 공식 문서에 따르면 라이트 섀프트를 다음과 같이 설명한다. "Light Shaft (라이트 섀프트)는 디렉셔널 라이트에 의해 생성 가능한 것으로, 현실에서 구름 사이를 뚫고 나오는 빛줄기에 대한 시뮬레이션입니다. 어느 씬에도 입체감과 현실감을 더해줄 수 있는 효과입니다." 보이는 것과 같이 직선 광(태양광)이 사물에 의해 가려질 때 그 사이사이로 빛줄기가 새어 나오는 현상이 라이트 섀프트가 되..

Rampage 2023.08.10

Terrain - 지형 (1)

어떤 게임이든 기본적으로 반드시 필요한 요소를 말하자면 그중에서도 지형을 빼놓을 수 없을 것이다. 실제 사용자가 조작하게 될 캐릭터나 사용자 인터페이스 등 사실 중요한 것들은 차고 넘치는 것이 현실이지만 그래도 발 디딜 땅 정도는 있어야 하지 않을까? 그래서 이번에 만들 것은 Terrain(지형)이다. 고로 Terrain 구현을 진행해 볼 것인데....... 사실 저번 학기 동안에 만들었던 터레인이 이미 있다. 보는 것처럼 대충 산봉우리 몇 개 보이고, 물도 있고, 저 멀리 보면 잔디도 보이고, 스카이 박스도 돼있고, 이상한 헬기들도 보이고.... 아무튼 이것저것 보인다. 이것 자체로도 어느정도 써먹을 수 있는 지형이라 말할 수는 있겠으나 엄연히 말하자면 이걸론 부족하다. 게임 월드라 부르기엔 아무래도 ..

Rampage 2023.01.28

Rampage - 소개 및 개요 (2)

이전 글에서 게임 소개까지의 내용을 다뤘다. 이제부터는 상세한 연구 중점에 관해서 이야기해볼까 한다. 중점 연구 분야 이번 프로젝트에서 가장 메인이 되는 부분은 당연 타격감 시뮬레이터가 될 것이다. 타격감 시뮬레이터는 이름에서부터 유추해 볼 수 있듯 임의로 설정한 타격감을 시뮬레이션하며 테스트해 볼 수 있는 인터페이스이다. 그리고 시뮬레이션을 위해서는 당연히 변수를 설정할 수 있어야 하는데, 우리는 이 변수를 전 글에서 언급한 연구에서 사용한 표현기법을 가능한 그대로 이용하는 것으로 결정했다. 선행 연구에서 시뮬레이터를 구성하는데 사용한 표현기법은 총 15가지로 다름과 같다. 1. 카메라 흔들림 2. 카메라 이동 3. 카메라 줌인 4. 충격 이펙트 5. 파티클 이펙트 6. 잔상 이펙트 7. 데미지 애니메..

Rampage 2023.01.21

Rampage - 소개 및 개요 (1)

본 게시물은 대학 졸업과제로 진행 중인 프로젝트 Rampage에 대한 개발 기록이다. 상세한 개발 과정을 게시하기에 앞서 프로젝트 진행에 대한 배경, 연구 목적, 게임 소개 등에 대해 기록부터 시작하고자 한다. 배경 이번 프로젝트의 주요한 키워드는 '타격감'이다. 우리는 흔히들 어떤 게임이 타격감이 좋다고 말하거나 반대로 나쁘다고 말해본 적이 있거나 혹은 들어본 적이 있을 것이다. 필자 또한 게임에서의 타격감을 중요하게 생각하고 게임에서 얻을 수 있는 이른바 손맛을 즐기는 것을 매우 좋아하는 편이다. 다만 게임 개발이란 분야를 공부하는 예비 전문가로서 말하자면 필자는 타격감을 명쾌하게 설명하지 못하고 있지 않나 생각한다. 타격감 자체가 개인의 주관적인 감각적 요소이기 때문에 그럴 수 있으나 이 부분은 제..

Rampage 2023.01.14