TECHARTNOMAD | MAZELINE.TECH

shader 16

[번역] 제로에서 구현한 간편한 FluidFluxWater 물 렌더링 파트 1

역자의 말: 저자분이 언리얼 엔진 워터플러그인을 분석 해 나가면서 유니티로 재현해 나가는 과정을 담은 글인데요. 읽을 거리들이 꽤 많습니다. 그래서 공유 해 봅니다. 내용이 매우 길어서 스크롤 압박과 함께 지루해 질 법 하여 파트 1과 파트 2로 나눴습니다. 먼저 파트1 부터~저자: 秋大叔잡담업무 때문에 어쩔 수 없이 한동안 ‘카툰 렌더’를 내려놓고, 이것저것 PBR을 파고들게 됐다. 그러다 일하다가 문득 UE의 물 플러그인 FluidFlux가 너무 궁금해져서, 이렇게 튜토리얼 글을 쓰게 됐다.다행히 예전에 아주 기초적인 물 렌더링을 한 번 연구한 적이 있고, 그때 블로그로도 정리해 둔 적이 있다. 그런데 이번에 한동안 FluidFlux 물을 파고들어 보니… 예전에 했던 물 렌더링은 빠진 게 꽤 많더라...

TECH.ART.FLOW.IO 2026.04.01

[번역] 깊이 오프셋을 활용한 나무 그림자 성능 최적화 (면 50% 감소)

저자 : jackie 偶尔不帅계기대규모 오픈월드 프로젝트를 경험한 기술자라면 나무의 높은 버텍스 수에 대해 깊은 인상을 받았을 것이다. 나에게는 특히 잊을 수 없는 부분이다. 그래서 시간이 날 때마다 어떻게 하면 면 수를 줄일 수 있을지 끊임없이 고민해왔다. 하지만 동시에 높은 면 수가 나무 표현에 얼마나 중요한지도 잘 알고 있다. 많은 TA들이 렌더링 자체부터 접하기 시작하다 보니, 오히려 렌더링의 가장 기본이 되는 정확한 지오메트리 정보를 간과하기 쉽다. 극단적으로 말하면, 지오메트리 정보가 충분히 풍부하다면 노멀맵, 하이트맵/테셀레이션 디스플레이스먼트 맵, 심지어 러프니스 맵도 필요 없다. 우리가 렌더링 기술에 각종 맵을 추가하는 것은 단지 지오메트리 정보 손실 후의 상황을 보완하기 위해서일 뿐이다..

TECH.ART.FLOW.IO 2026.02.03

Unity URP PBR 고도화 개발 사례: AAA급 렌더링 품질을 향한 여정

이 글은 메이즈라인 테크 블로그 글을 소개하고 있습니다.Unity URP(Universal Render Pipeline) 환경에서 HDRP 수준의 그래픽 품질을 구현하기 위한 물리 기반 렌더링(PBR) 시스템의 고도화 사례를 다룹니다. 기존 유니티 Lit 셰이더의 한계를 극복하기 위해 Chan Diffuse 모델과 Kulla-Conty 에너지 보존 법칙을 도입하여 거친 표면의 어두움과 금속 광택의 부자연스러움을 해결했습니다. 특히 언리얼 엔진 스타일의 스펙큘러 파라미터와 Pre-Integrated FGD 시스템을 구축하여 아티스트의 작업 편의성과 물리적 정확도를 동시에 확보했습니다. 또한 NOS 맵 텍스처 최적화 전략을 병행하여 성능 효율성을 유지하면서도 하이엔드 프로젝트에 적합한 렌더링 아키텍처를 재설..

MAZELINE TOPIC 2025.12.29

[번역] Unity - PBR과 PBR+NPR 캐릭터 렌더링 연구

저자: shader仔1. NPR 렌더링NPR은 실제로 PBR의 변형이며, NPR의 조명 모델은 여전히 최종 색상 = 직접광 난반사 + 직접광 정반사 + 환경광 난반사 + 환경광 정반사 공식을 따릅니다. 이 중 환경광 난반사와 환경광 정반사는 약화되어 있으며, 붕괴: 스타레일은 URP의 기본 구면 조화 함수와 반사 프로브만 사용합니다. 이들의 역할은 어두운 곳에서 약간의 밝기를 제공하여 어두운 영역이 완전히 검게 되는 것을 방지하는 것뿐입니다. 따라서 렌더링의 전체 효과는 직접광에 의해 형성됩니다.원신과 붕괴 시리즈에서 난반사 부분은 NdotL을 기반으로 LightMap의 스타일라이즈된 그림자를 사용하여 NdotL을 리맵핑한 후, 이 NdotL로 Ramp 텍스처를 샘플링합니다. 이 작업은 실제로 사전 통합..

TECH.ART.FLOW.IO 2025.10.25

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

9장. 핵심정리 중 멀티패스와 버텍스

9.9 핵심 정리셀 셰이딩 학습 과정을 잘 마무리 한 것을 축하드린다. 이제 전체 과정을 명료하게 복기 하면서 핵심정리 하는 시간이다.9.9.1 멀티패스와 Vertex 그리고 Vertex buffer object아웃라인 렌더링을 위해 멀티머티리얼과 멀티패스 모두 활용해 봤다.자 그럼 멀티패스를 활용하거나 멀티머티리얼을 활용했을 때 버텍스 수량은 어떻게 증가하고 버텍스 버퍼 오브젝트는 어떤 식으로 증가하는지도 알고 넘어가자. 패스 수량 버텍스 증가량 VBO 사용 방식 GPU 부하 단일 패스 (No Outline)1배 (기본 버텍스 수)1개 VBO낮음멀티패스 (기본 + 버텍스 오프셋 방식)2배동일한 VBO 재사용보통멀티패스 렌더링을 사용할 경우 패스 수만큼 버텍스 수량이 증가하지만, 일반적으로 동일한 ..

UNROLL

UNROLL은 보통 그래픽스 셰이더 코드에서 사용되는 디렉티브 또는 어노테이션으로, 확장성 있는 루프를 최적화하기 위해 사용됩니다.디렉티브 컴파일러란 코드에 포함된 특별한 지시문(Directive)을 통해, 컴파일러에게 특정한 동작을 수행하도록 지시하는 메커니즘을 의미합니다. 이러한 지시문은 코드의 처리 방식을 조정하거나, 특정 조건 또는 최적화를 강제하는 데 사용됩니다.특정 코드 조각을 컴파일에 포함하거나 제외(예: #if, #define, #pragma). 특정한 최적화를 강제(예: unroll, inline). 프로젝트 또는 플랫폼 간 호환성을 보장.UNROLL은 루프를 컴파일 타임에 전개(unroll)하는 것을 요청하거나 강제하는 역할을 합니다.컴퓨터 그래픽스, 특히 GPU 셰이더 언어(HLSL,..

모바일 스킨 셰이더 개발 시 참고 사항. 2019 버전.

6년 전 쯤? 모바일 프로젝트 때문에 개발하던 셰이더와 관련 해서 중국어로 작성 해 놨던 페이지가 보여 다시 한국어로 전환 해서 블로그에 올려봅니다.핵심 요약목적본 문서는 OpenGL 3.2 이상을 지원하는 기기에서 스킨 셰이더를 구현하기 위한 기술적 고려사항을 설명.범위듀얼 로브 스킨.방법론What is the dual lobe specular?듀얼 로브 스페큘러(dual lobe specular) 기술은 두 개의 독립적인 정반사 거칠기 값을 사용하여 최종 렌더링 효과를 처리합니다. 이 방식은 고품질의 서브픽셀 디테일을 통합하여 피부의 미세 특성을 정밀하게 시뮬레이션함으로써 더욱 사실적인 시각적 표현을 구현합니다. 사실 이 부분은 2013년부터 사용되어 널리 알려져 있었으며, 다만 Epic Games..

UNITY3D 2025.02.18

핵] [번역] UE5 포스트 프로세스 머티리얼에서 섀도맵을 처리할 수 있도록 해봤습니다.

역자의 말.Kafues511 씨가 구현한 내용을 보면 매우 취미적인 구현이라는 생각이 듭니다. 실무에서 굳이 이렇게 할 필요가 없고 애초에 툰 셰이더 자체를 엔진 셰이더 내부에서 구현하는 것이 일반적이기 때문에 툰 셰이더에 셀프쉐도우나 케스트 쉐도우가 없을리 없고요. 머티리얼 에디터에서 Unlit 을 사용해서 툰 셰이더를 구현하는 것은 실무 측면에서 절대 추천하지 않습니다.다만 이런 실험적 구현 기사를 통해 언리얼 셰이더 익스프레션 및 버퍼 엑서스에 대한 정보등을 취득 해 보는 것에는 도움이 되는 기사일 법 하네요.저자작업 환경Windows 10Visual Studio 2022Visual Studio CodeUnreal Engine 5.3시작과거 포스트 프로세스 머티리얼에서 섀도맵을 사용할 수 있도록 개..

TECH.ART.FLOW.IO 2024.12.21