
이 글은 유니티 환경에서 모바일 오픈월드 게임의 지형 렌더링 성능을 극대화하기 위한 런타임 가상 텍스처(RVT) 시스템의 자체 개발 과정을 상세히 다룹니다. 핵심은 방대한 지형 데이터를 한꺼번에 로드하는 대신, 화면에 보이는 부분만 실시간으로 합성하고 LRU 캐시 기반

"캐릭터 얼굴에 AO가 들어가면 더러워 보여요. 빼주세요."게임 개발에서 Ambient Occlusion은 입체감을 더해주는 훌륭한 기술이지만, 때로는 적용되면 안 되는 영역이 있습니다. 특히 캐릭터의 얼굴이나 피부처럼 깨끗해야 하는 부분에 AO가 적용되면 지저분하거나

Johann Heinrich Lambert가 1760년에 정립한 코사인 법칙. albedo / π라는 이 우아한 공식은 지금까지도 컴퓨터 그래픽스의 기초가 되어왔다. 하지만 이 공식에는 치명적인 가정이 숨어있다.<계속 읽기>https://mazeline.

본 토픽은 현대 그래픽스 기술의 핵심인 Bindless 렌더링의 개념과 발전 과정, 그리고 실제 구현 기법을 심층적으로 다룹니다. 이 기술은 기존의 복잡한 리소스 바인딩 절차를 제거하고 GPU가 직접 대규모 리소스 배열에 접근하도록 하여, CPU 오버헤드를 획기적으로

이 글은 유니티 URP 환경에서 물리 기반 렌더링(PBR)의 시각적 완성도를 높이기 위한 Pre-Integrated FGD 구현 방법을 상세히 설명합니다. 실시간 계산이 어려운 렌더링 방정식을 해결하기 위해 Split-Sum Approximation 기술을 활용하여 반

1999년, id Software가 공개한 Quake III Arena의 소스 코드에는 게임 개발사에 전설처럼 회자되는 알고리즘이 포함되어 있었다. 바로 Fast Inverse Square Root, 일명 '0x5f3759df 매직 넘버'로 알려진 이 코드는 당시로서는

DirectX 12 Ultimate은 2020년 3월 마이크로소프트가 발표한 차세대 그래픽 API로, DXR 1.1, Variable Rate Shading Tier 2, Mesh Shaders, Sampler Feedback라는 4가지 핵심 기술을 통합한다. 가장 중

!youtubeduV4-qgeT7w?si=6sM6iyNNkQqU6N\_-최근 고객사의 요청이 있던 부분과 관련 된 Edge Fusion은 Unity URP에서 오브젝트 간 경계를 자연스럽게 블렌딩하는 포스트 프로세싱 효과입니다. 블렌더에서 구현 된 것을 이 전에 본적이

텍스처 아틀라스 툴을 개발하면서 예상치 못한 문제를 마주했습니다. Unity 엔진에서는 완벽하게 보이는 RGBA 텍스처의 알파 채널이, 포토샵에서는 아예 표시되지 않는 것이었습니다. 같은 TIFF 파일인데 왜 다르게 보이는 걸까요?툴에서 생성한 Mask Map(M 텍스

이 해결은 메이즈라인 고객사 중 하나인 “게임테일즈” 클라이언트실/테크아트팀/최성현 사원 Redit 을 참조 하고 해결하는 과정을 소개 하고 있습니다. 언리얼 엔진 5.0(UE5)을 Windows 11 환경에서 사용하는 과정에서 한글 및 중국어와 같은 다국어 입력 시스

오늘은 제가 언리얼 엔진 소스를 파헤치다가 발견한 흥미로운 최적화 기능과, 그것을 몰라서 같은 기능을 직접 구현하려 했던 뻘짓(?)에 대한 이야기를 들려드리려 합니다.사실 며칠 전까지만 해도 저는 모바일 플랫폼에서 TwoSided Foliage 셰이더의 성능을 개선하기

의뢰 : 고객사 NTRANCE목표: 고품질 스킨 셰이더(SSS URP)를 레거시 ScriptableRenderPass에서 Unity 6.2+ RenderGraph API로 전환문제점:현재 SSS URP는 RenderGraph를 지원하지 않음레거시 CommandBuffe
메이즈라인은 고객사의 렌더링 파이프라인 제작 지원 과정에서 추가로 요청해 주신 아틀라스 빌더 툴을 약 15일간의 전담 기간을 통해 개발하였으며, 현재 1차 납품을 완료했습니다. 해당 툴은 이전 담당자분이 남기고 가신 리소스 자산을 복원하고, 사내 네이밍 컨벤션(nam

오늘도 지하철을 저 처럼 한 시간씩 타는 직장동료분들을 위한 읽을 거리를 추가 했습니다.엔지니어 Zino의 글을 읽고 추가로 정리한 내용입니다.Heterogenous AoS instance encoding for a GPU-driven renderer대규모 오픈 월드

본 문서는 실무에서 Unity URP 기반 프로젝트를 진행하던 중 Decal Render Feature와 Depth Texture Mode 간의 충돌 문제를 경험하고, 이를 해결하기 위해 여러 방법을 연구한 결과를 정리한 내용입니다. ( feat. 김강언 시니어

URP 에서만 동작하는 셰이더를 HDRP 로 전환 해야할 일이 생겼습니다. 몇 가지 부분을 기록하고자 합니다. 50살을 넘어간 후부터는 기억력이 정말 하루 하루 …URP에서 HDRP로 셰이더를 포팅하는 작업은 단순한 문법 수정이 아닌 근본적인 아키텍처 변경을 필요로 합

고객사에서 새로운 일감을 받았습니다. Uber Particle 이라는 URP 전용 이펙트 개발 라이브러리를 HDRP 에서도 동작하도록 포팅 해 달라는 것이었습니다. 그 과정에서 뎁스 텍스처 관련 된 내용에서 많은 차이가 있었기 때문에 기록용으로 velog 에 정리해서

GPU 병렬 연산: Warp Divergence 이해하고 해결하기 GPU 프로그래밍을 하다 보면 성능 최적화에서 자주 마주치는 개념이 바로 Warp Divergence입니다. 특히 셰이더 프로그래밍에서 이를 이해하고 적절히 대응하는 것은 성능에 큰 영향을 미칩니다.

GPU에서 분기문은 비용이 비쌉니다. 특히 모바일이나 타일 기반 렌더러에서는 더욱 그렇습니다. 이번 글에서는 if/else 분기문을 원-핫 마스크와 dot product를 활용해 완전히 제거하는 최적화 기법을 소개합니다.아웃라인 셰이더를 작성할 때 버텍스 컬러의 특정

언리얼 엔진 코드를 리뷰하다 보면 !! 연산자를 종종 발견할 수 있습니다. 이 연산자는 정수나 다른 값을 명시적으로 bool 타입으로 변환할 때 사용되는 패턴입니다.언리얼 엔진 코드에서 실제로 사용되는 예제를 살펴보겠습니다.위 코드는 다음과 같이 리팩토링할 수 있습니다