TECHARTNOMAD | MAZELINE.TECH

UNITY3D 58

Corrected PBR 고객사 리뷰 중에서

오늘은 의뢰를 맡겨오신 고객사에 방문해서 리뷰를 했죠.메탈릭 부분에서도 큰 차이를 확인할 수 있고 스팩큘러 하이라이트 역시 차이가 큽니다.메탈릭 처리 역시 에너지 복원 개념이 들어가야 합니다. 또한 더 정교한 IBL 라이팅을 위해 PreintegratedFDG 룩업이 사용되었습니다. 이 부분을 URP 에 추가하는데 1주일 이상이 소요 됬습니다.몇 주 전에 간략하게 구현 여정을 요약했던 메이즈라인 테크 블로그 글을 참고해도 좋겠습니다.https://www.mazeline.tech/blogs/URPAdvancedPBRDevelopmentCaseStudy/ Mazeline - 게임제작 및 게임 테크니컬 아트 전문 컨설팅게임 개발과 테크니컬 아트 전문 컨설팅 회사 Mazeline입니다. Unity, Unreal..

UNITY3D 2026.01.17

Scene View와 Game View의 차이점

연초(年初)가 되었지만 최근까지 서포트를 하던 판교 S모사 유지보수 마무리를 하면서 글을 써 봤습니다.이 토픽은 메이즈라인 블로그 글을 소개 하고 있습니다.본 토픽은 유니티 엔진의 Scene View와 Game View 사이에서 발생하는 Outline 렌더링 결과의 불일치 문제를 분석하고 이를 해결하기 위한 기술적 방안을 제시합니다. 두 뷰의 근본적인 구조적 차이와 렌더 파이프라인의 동작 방식을 상세히 설명하며, 작업 과정에서 아티스트가 겪는 혼란을 줄이는 데 초점을 맞춥니다. 구체적으로는 ScriptableRendererFeature를 수정하여 Scene View에서 선택적으로 외곽선 렌더링을 비활성화하는 최적화 코드 구현 방법을 다룹니다. 또한 향후 개선 사항으로 조건부 렌더링이나 에디터 전용 디버그..

UNITY3D 2026.01.04

Unity SceneView 확장 완벽 가이드, 엔진 소스코드로 이해하는 내부 구조

Unity 에디터에서 가장 많은 시간을 보내는 곳이 Scene View입니다. 오브젝트를 배치하고, 카메라 앵글을 조정하고, 셰이더의 결과를 확인하는 모든 작업이 이곳에서 이루어집니다. 그런데 기본 기능만으로는 부족할 때가 있습니다. 특정 컴포넌트가 선택되었을 때 추가 정보를 표시하고 싶거나, 레벨 디자인을 위한 전용 도구를 만들고 싶거나, 아티스트가 쉽게 사용할 수 있는 시각적 피드백을 제공하고 싶을 때가 그렇습니다.이 글에서는 Unity 엔진 소스코드를 직접 분석하면서 SceneView가 어떻게 구현되어 있는지 살펴보고, 이를 바탕으로 어떤 확장 방법이 어떤 상황에 적합한지 깊이있게 다룹니다.SceneView의 클래스 계층 구조Unity 엔진 소스코드에서 SceneView 클래스의 정의를 보면 다음과..

UNITY3D 2025.12.14

알쓸신잡 - SurfaceData - ambiguous symbol

커스텀 셰이더 라이브러리를 개발하던 중 이 에러 메시지를 마주했습니다. 분명히 제대로 정의한 구조체인데 왜 모호하다는 걸까요? 원인을 추적해보니 URP 내부에도 동일한 이름의 구조체가 존재했습니다. 이 글에서는 Include Guard 활용법을 공유합니다.배경: 커스텀 셰이더 라이브러리 개발고객사 프로젝트에서 URP 기반의 커스텀 셰이더 라이브러리를 개발하고 있었습니다. 표준 URP의 SurfaceData 구조체에는 없는 추가 필드들이 필요했기 때문에, 자체적인 SurfaceData 구조체를 정의하여 사용하기로 했습니다. 처음에는 문제없이 잘 동작했지만, 라이브러리 구조를 리팩토링하면서 Include 순서가 바뀌자 갑자기 컴파일 에러가 발생했습니다.문제 상황: 모호한 심볼 에러저희 라이브러리에서는 다음과..

UNITY3D 2025.12.12

Unity URP Edge Fusion 간단 소개 및 분석

들어가며최근 고객사의 요청이 있던 부분과 관련 된 Edge Fusion은 Unity URP에서 오브젝트 간 경계를 자연스럽게 블렌딩하는 포스트 프로세싱 효과입니다. 블렌더에서 구현 된 것을 이 전에 본적이 있어서 구현 준비를 했습니다만 Kronnect 에서 어제 릴리스를 했습니다. 본 글에서는 이를 구성하는 3가지 핵심 알고리즘에 대해 살펴보겠습니다.1. ObjectID 패스를 통한 오브젝트 식별문제 정의일반적인 렌더링 과정에서는 최종 화면에 색상 정보만 남게 되며 오브젝트 정보는 소실됩니다. Edge Fusion이 엣지를 정확하게 찾기 위해서는 각 픽셀이 어떤 오브젝트에 속하는지 식별할 수 있어야 합니다.해결책: ObjectID Texture 생성EdgeFusionRenderPass는 별도의 렌더 패스..

UNITY3D 2025.11.01

Greedy Meshing(그리디 메싱) 이론, 처리 구조, 활용 이유 및 Voxel Chunk(복셀 청크)

2001년 쯤인가.. 삼성종합기술원에서 연구원으로 있을 때 복셀렌더링용 플러그인 개발에 참여 해 보고는 너무나 오랫만이라 트렌드 따라가기 위해 메모 해 놓는 중이다.– Unity Engine 6 기반 최신 Voxel 게임 사례 중심서론Voxel(복셀) 기반 게임과 에디터는 Minecraft(마인크래프트) 이후로도 대규모 월드, 실시간 편집, 파괴 및 생성 등에서 높은 퍼포먼스와 효율적인 메모리 관리가 필수적인 분야로 자리잡았습니다. 특히 최근 상용화된 Voxel 게임들은 Unity Engine 6의 최신 기능과 다양한 최적화 기법을 결합하여 고품질의 실시간 렌더링과 대규모 월드 구현을 실현하고 있습니다. 본 리포트에서는 Greedy Meshing(그리디 메싱) 기법의 이론과 처리 구조, 사용 이유와 실제..

UNITY3D 2025.09.27

Voxel 게임의 최적화 기술 및 최신 Voxel 렌더링 최적화 트렌드 분석

서론Voxel 기반 레벨 제작 게임은 마인크래프트(Minecraft) 이후로도 지속적으로 발전해왔으며, 대규모 월드, 실시간 편집, 파괴 및 생성, 다양한 상호작용 등에서 높은 퍼포먼스와 효율적인 메모리 관리가 필수적이다. 본 리포트는 마인크래프트를 제외하고 2020년 이후 개발·출시된 상용 Voxel 게임 중 최적화 기술이 뛰어나다고 평가받는 대표 사례를 선정하고, GDC, SIGGRAPH, Eurographics의 관련 기술 발표 및 최신 Voxel 렌더링 최적화 트렌드를 분석한다. 특히 Unity Engine 6 환경에서의 구현 및 최적화 관점에 중점을 둔다.1. 2020년 이후 상용화된 최적화 Voxel 게임 사례1.1 Avoyd (Enkisoftware, 2024)Avoyd는 고해상도 Voxel..

UNITY3D 2025.09.26

URP 기술적 개선 제안 (2025.09.15 추가)

중국 엔지니어가 포팅 후 테스트 한 영상이다.아무튼 관련 해서 유니티 엔진을 사용하는 고객사가 있기 때문에 2025년 3분기에 진행 할 내용들을 정리 해 봤다.1. PBR 구현의 정확성 개선 방안에너지 보존 검증: 언급된 에너지 보존 원칙이 핵심인데, 실제 구현에서 다음을 추가로 고려하면 좋을 것 같습니다:Multi-scattering compensation 추가높은 roughness에서 에너지 손실을 보정하는 것이 중요합니다. Heitz et al.의 연구에 따르면 단일 산란 모델은 roughness가 증가할수록 최대 40%의 에너지를 잃을 수 있습니다. 이를 해결하기 위한 방법:// Fdez-Agüera의 에너지 보존 BRDF 구현 예시vec3 Fr = max(vec3_splat(1.0 - rough..

UNITY3D 2025.09.15

Unity 6.2.1 HDRP vs URP 셰이더 코드 비교 연구

연구 목적: Unity 6.2.1 이상 버전에서 HDRP(High Definition Render Pipeline)와 URP(Universal Render Pipeline)의 셰이더 코드 작성 시 API 차이점, 문법 차이점, Include 구조 차이점을 체계적으로 분석하고 정리연구 범위: Unity 6.2.1+ 버전 기준 셰이더 코드 작성 가이드라인1. 개요 및 파이프라인 호환성1.1 기본 호환성 정보HDRP와 URP로 작성된 프로젝트는 상호 호환되지 않으며, Built-in Render Pipeline과도 호환되지 않습니다.개발 시작 전 렌더 파이프라인을 결정해야 하며, 파이프라인 간 전환은 매우 큰 비용이 발생합니다.1.2 셰이더 코드 호환성Surface Shader 지원 없음: 두 파이프라인 모두..

UNITY3D 2025.09.07