TECHARTNOMAD | MAZELINE.TECH

unity 57

Unity 프로젝트 XSolution Python Wrapper 활용 사례

Unity 게임 클라이언트 내에서 Python 3.7 VM을 임베딩하여 게임 로직, UI 프레임워크, 데이터 파이프라인까지 Python으로 작성한 사례를 공유합니다.개요Unity 기반 게임 클라이언트에서 CPython 3.7 런타임을 임베딩하고, C#과 Python 간의 양방향 바인딩을 통해 게임 로직 대부분을 Python으로 작성한 사례입니다. 이 글에서는 XSolution이라는 Python Wrapper 솔루션의 기술적 아키텍처와 프로젝트 내 실제 활용 사례를 다룬다.바이트댄스(ByteDance)에 인수합병된 "C4Games" 가 개발한 XSolution Python Wrapper는 Unity 클라이언트용 CPython 임베딩 솔루션으로서 필자가 2021년 부터 2023년 까지 중국 바이트댄스(Byt..

UNITY3D 2026.05.05

[번역] 실시간 렌더링 - UNITY 그림자 렌더링 총정리

역자 주: 중국 개발사 엔진팀에서 근무 할 때 아트팀 요청(?) 아닌 요구에 의해 PCSS 와 VSM 정도를 URP 에 적용했던 경험 정도가 있는데요 개인적으로 모멘트 기반 섀도우 맵핑에 관심이 많습니다. 아마도 곧 작업을 해 봐야 할 것 만 같은 뭐 그런 느낌이네요.저자: Metaneko먼저 본문의 내용 구조를 첨부한다.Shadow Map간단히 말해, 광원의 시점에서 깊이 텍스처(Depth Map)를 렌더링하여 광원 위치에서 씬까지의 최소 깊이를 기록하는 방법이다. 렌더링 시 기록된 최소 깊이를 기반으로 현재 픽셀이 그림자 안에 있는지를 판단한다.주의할 점은, 깊이 텍스처를 생성한 후 그림자를 계산할 때 특정 프래그먼트가 그림자 안에 있는지 검출해야 한다는 것이다. 이때 버텍스 셰이더에서 버텍스를 광원..

TECH.ART.FLOW.IO 2026.04.14

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

역자의 말: 요 몇일 늦은 나이에 운전면허 따러다니고 고객사 일 돌보고 버그 수정 하느라 업데이트가 늦었습니다. 파트2는 바다 서피스 렌더링에 관한 내용들로 이루어 져 있습니다.저자: 秋大叔flux single layer water 셰이딩(착색)드디어 셰이딩 파트까지 왔다. 이제부터는 앞에서 했던 것들보다 “눈에 보이는 보상(정답 체크)”이 훨씬 자주 나온다. 마치 그림 그릴 때, 고통스러운 스케치/선 따기 단계는 끝났고 이제 색칠 들어가는 느낌.근데 아직은 완전히 시원하게 ‘색칠만’ 할 수는 없다. 명암 이분 같은 기본 광영 처리를 아직 안 했기 때문이다. 그 명암 변화들까지 다 처리하고 나면, 남는 건 진짜로 파라미터 조절하면서 쾌감 있게 색칠하는 단계가 된다.Flux의 single layer wat..

TECH.ART.FLOW.IO 2026.04.04

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

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

TECH.ART.FLOW.IO 2026.04.01

[번역] 섀도우맵 압축 테크닉

역자의 말: 조만간 모 고객사의 섀도우 시스템을 최적화 하는 솔루션을 제공해야 하는 터라 이런 저런 레퍼런스들을 살펴보는 중입니다. 그 중에서 제키군의 실험적인 테크 포스트가 있어 소개 합니다.저자: jackie 偶尔不帅적용 시나리오실시간 섀도우맵은 압축이 필요 없다. 하지만 평행광에 대해 전체 씬 규모의 오프라인 static shadowmap을 구워두면서 동시에 높은 정밀도를 요구할 경우에는 보통 VRAM 최적화가 필요하다. 예를 들어 우리 프로젝트의 2x2km 대형 씬에는 1024x1024 섀도우맵이 400장이나 있는데, 이걸 한꺼번에 전부 로드하면 상상만 해도 끔찍하다. 그래서 일반적으로는 스트리밍 인/아웃 + VT(Virtual Texturing) 방식을 쓰거나, 조금 더 단순하게 한 번에 전부 ..

TECH.ART.FLOW.IO 2026.02.20

[번역] Call of Dragons》 렌더링 프레임 캡처 분석과 미스터리

저자: 欧几里得范数《Call of Dragons》 렌더링 프레임 캡처 분석과 미스터리0 들어가며《Call of Dragons》는 LeGou(乐狗)에서 개발하고 Lilith(莉莉丝)에서 퍼블리싱한 인기 SLG 게임입니다. 이 게임 이전에도 같은 조합(LeGou 개발, Lilith 퍼블리싱)으로 또 다른 인기 SLG인 《Rise of Kingdoms》(통칭 ROK)가 있었기 때문에, 《Call of Dragons》는 흔히 ROK2라고도 불립니다.다만 ROK가 순수 2D 렌더링 파이프라인에 가까웠던 것과 달리, 《Call of Dragons》는 3D 씬에 일부 2D 렌더링을 섞는 방식을 사용했고, 결과적으로 화면 품질과 성능을 꽤 잘 잡아낸 편입니다.그리고 엔진/그래픽 프로그래머/TA 입장에서는 요즘 프레임 ..

TECH.ART.FLOW.IO 2026.02.18

[번역] Impostors 상세 해설 — 종이 한 장으로 만들어낸 아름다운 환상

역자의 말: 구정 연휴 잘 보내고 계신가요? 부모님댁에도 다녀오셨겠죠? 여전히 운전면허가 없는 저로서는 대중교통에서 보내는 시간이 참 많습니다. 고향에 가는 길이라도 만약 대중교통을 이용한다면 그 시간에 짧게 읽어볼만한 짧은 임포스터 소개글이 있어서 업데이트 해 봅니다.저자: 欧几里得范数Impostors 상세 해설 — 종이 한 장으로 만들어낸 아름다운 환상0 들어가며예전에 《Call of Dragons》를 프레임 캡처로 분석한 적이 있는데, 자세한 내용은 《Call of Dragons》렌더링 프레임 캡처 분석과 미스터리에서 볼 수 있습니다. 해당 글에서는 《Call of Dragons》가 3D 씬과 일부 2D 렌더링을 결합해 성능을 최적화한다고 설명하며, 그 핵심 아이디어로 “3D→2D 변환(三转二)”을..

TECH.ART.FLOW.IO 2026.02.17

[번역] Unity CSM 셰도우 개조하기

역자의 말: 꽤 오랜 시간동안 유니티를 사용해서 프로젝트를 진행 하면서 가장 불만족 스러운 부분은 그림자 처리 방식입니다. 물론 언리얼 엔진도 나나이트를 사용할 때 VSM 이 성능을 보장하기 때문에 아직까지는 CSM 의존적이라고 할 수 있지만요. 구정 연휴가 끝나면 고객사에 제공할 그림자 시스템 개발에 들어갈 텐데요. 2019년 가로 세로 32키로 크기의 심리스 월드 개발을 해 본 적이 있기 때문에 그때 사용했던 방식을 거의 그대로 답습할것 같네요. 아래 글에서도 나오는 케시 기반 셰도우와 공간 클러스터링 기법을 사용한 프록시 셰도우 메시등을 사용하는 것은 주로 근접 그림자 품질보다는 원경 그림자 보장과 전반적인 버택스 버퍼를 아끼는 기법이며 기본적으로는 셰도우 케시팅을 위해 호출해야하는 추가적인 콜을 ..

TECH.ART.FLOW.IO 2026.02.13

[번역] Unity-URP-원신 스타일 프로시저럴 스카이박스(사례 정리)

역자의 말: 블랜더 커뮤니티에서 열심히 활동하고 있는 XIYAG 군의 블랜더 자료를 보던 중에 이 전의 글이 보여서 공유 해 보려고 준비 했습니다. 개인적으로 메시를 잘라서 쓰는 방식이 아니어도 될테니지만 아마도 pixel discard 에 대한 염려를 하는 스타일로 보입니다. 2018년부터 2020년 까지 개발하던 오픈월드 엠엠오 프로젝트에서도 이와 유사한 방식으로 회사에서 구현 했던 적이 있는데요. 다른 점이라면 SDF 맵을 사용해서 클라우드 커버리지를 제어 한다는 점인데 제목처럼 미호요에서 사용한 방식으로 알고 있어요. 아무튼 정성스럽게 작성 된 테크니컬 아티스트 " 新杨XIYAG" 군의 글 읽어보시죠.저자: 新杨XIYAG이 글(시리즈)은 Unity URP 렌더 파이프라인에서, 제가 원신 스타일의..

TECH.ART.FLOW.IO 2026.02.10

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

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

TECH.ART.FLOW.IO 2026.02.03