TECHARTNOMAD | TECHARTFLOWIO.COM

UNREAL ENGINE 43

Unreal Engine의 숨겨진 최적화: Roughness 1.0이 만드는 마법

이 글은 메이즈라인 velog 미러 입니다. Unreal Engine의 숨겨진 최적화: Roughness 1.0이 만드는 마법오늘은 제가 언리얼 엔진 소스를 파헤치다가 발견한 흥미로운 최적화 기능과, 그것을 몰라서 같은 기능을 직접 구현하려 했던 뻘짓(?)에 대한 이야기를 들려드리려 합니다.사실 며칠 전까지만velog.io바퀴를 다시 만들 뻔한 이야기오늘은 제가 언리얼 엔진 소스를 파헤치다가 발견한 흥미로운 최적화 기능과, 그것을 몰라서 같은 기능을 직접 구현하려 했던 뻘짓(?)에 대한 이야기를 들려드리려 합니다.사실 며칠 전까지만 해도 저는 모바일 플랫폼에서 TwoSided Foliage 셰이더의 성능을 개선하기 위해 고민하고 있었습니다. "모바일에서는 어차피 반사가 별로 안 보이니까, 강제로 Full..

UNREAL ENGINE 2025.10.28

언리얼 엔진 5.4 - DirectX12 → DirectX11 자동 Fallback 기능 분석

작성일: 2025년 9월 12일📋 개요언리얼 엔진 5.4에는 DirectX12가 지원되지 않는 하드웨어 환경에서 DirectX11로 자동 전환하는 강력한 호환성 시스템이 구현되어 있습니다. 이 문서는 해당 기능의 내부 구현을 상세히 분석합니다.🏗️ 아키텍처 구조핵심 컴포넌트RHI (Render Hardware Interface)├── WindowsDynamicRHI.cpp # 메인 RHI 선택 및 fallback 로직├── D3D12RHI Module # DirectX12 구현체│ └── WindowsD3D12Device.cpp # DX12 하드웨어 지원 검사└── D3D11RHI Module # DirectX11 구현체 └── WindowsD..

UNREAL ENGINE 2025.09.15

일부 휴대폰에서 VulkanRHI를 사용할 때 GPUSort 결과가 정확하지 않는 이슈.

오늘 고객사에 출근 했는데 니아그라 이펙트에 문제가 있는걸 TA 분이 테스트 하고 있더군요. 部分手机上,使用VulkanRHI时,GPUSort的结果不正确Soc: Snapdragon 8gen3,GPU:Adreno 750forums.unrealengine.com아무튼 문제는갤럭시 S24 에서 니아그라 GPU Sort 에 문제가 있는 점을 발견. 해결 해 나가는 과정에서 위 쓰레드를 이성학 사원이 발견.결론적으로 갤럭시 24 그러니까 아드레노 740 만 문제가 있으며 이 문제는 엔진 레벨에서 수정 해 봐야 의미가 없음.하드웨어 벤더 레벨에서 드라이버 수정을 해도(퀄컴에서 수정을 해도) 이게 삼성 갤럭시 S24를 제작하는 삼성 개발팀에서 퀄컴으로 부터 패치를 받아서 삼성 OS 에 통합을 해서 시스템 업데이트로 배..

UNREAL ENGINE 2025.09.12

Unreal Engine Data Validation 플러그인 API 총정리 및 확장 가이드

2년동안 MMORPG 출시를 위해 한다고는 했지만 시간과 여건이 허락하지 않아서 완성도 있게 하지 못한것이 일단 아쉬워서... 출시 이후에라도 이곳 저곳 견고하게 다져놔야 라이브 때 실수 없이 서비스를 이어갈 수 있을것이다. 주변에 게임 개발에 CI/CD 와 이런 데이터 검증 자동화 시스템이 얼마나 중요한지 이해하는 분들을 찾아보기란 참 어렵다. 특히 한국에서는 일단 현재까지 그랬고... 이 부분에 별도로 투자를 안하는 걸 보면 아마 게임개발 예산 항목에서 이 부분이 아예 검토 대상이 아니라고 프로듀서들이 생각해서인것 같다. 크래프톤의 퍼블리싱 플레폼 헤드분이 에픽 본사에서 오신 분이라 아마도 크래프톤은 아마도? 앞으로는 달라지지 않을까... 정도의 생각이랑 엔씨소프트가 욕은 많이 먹지만 그래도 좀 신경..

UNREAL ENGINE 2025.09.10

.Uasset 데이터 Validation 기능 몇 가지.

유니티 엔진 기반의 프로젝트에서 이런 검증툴을 만드는 시간은 아마도 언리얼 엔진에서 만드는 시간에 비해 3분의 1 정도 소요되는 것 같더라고요. 좀 더 큰 프로젝트들을 할 때는 대기업등에 고용되서 제 팀을 운용하면서 진행 하는터라 저도 거의 12년 만에 이런 기능을 다시 작업 해 보는 거 같습니다. 제 기억엔 2013년까지는 맥스 스크립트나 마야 스크립트 아니면 유니티나 언리얼 엔진에서 뭔가 직접 작업을 했었습니다만... 부서의 리더로서 최근 10년을 지내오면서는 팀 내의 전담인력에게 무엇을 해야 하는지를 지시하던 입장으로 지냈던 터라... 프로젝트 후반부로 갈 수록 매우 사소한 데이터 오류에 의한 빌드 실패나 어서트 실패부터 정말 많은 일들이 발생하고 정말 많은 시간을 소비하게 만들죠. 신경 써서 잘 ..

UNREAL ENGINE 2025.07.09

어셋 레퍼런스 규칙 위반 검사기 플러그인.

급하게 만들었다.아트팀이 따로 관리하는 임시 디렉토리의 어셋이 레퍼런스에 걸려있는지 참조 검사하는 플러그인.쿡킹 할 때 제외 해서 문제 없지만 근본적으로 제외 되어 버리고 정규 디렉토리에 없으면 빌드 하고 손실 된 상태로 빌드 되는지라... 잘 관리 해야 하는... 다음주에는 팀메신저로 포워딩 해 주는 거 추가와 임시디렉토리에서 정규 디렉토리로 자동 복사 및 자동 참조 리플레이스 넣을지 말지.. 고민 하고 진행.사실 이게... 근본적으로... SVN 을 쓰는 것 때문에 생긴 문제라... 퍼포스 쓰면 커밋 전 선반(Shelves) 에서 관리하고 브렌치 잘 따서 관리하면 될것을... ㅜㅜ이런 저런 이유로.... SVN 브렌치 정책도 다시 만들어지고 프리후킹도 다음주부터는 진행.

UNREAL ENGINE 2025.05.24

언리얼 엔진 5.5.X 인스톨빌드 이슈 회피에 대하여.

5.4.4 에서 5.5 로 올라가면서 nuget 종속성 위험과 닷넷 관련 된 이슈가 좀 있습니다.결국 이 것 때문에 인스톨빌드까지 진행이 안되는 상황이 발생하는데요.제가 테스트 하여 정상 빌드 한 내용을 정리 하자면 ( 두서 없이 ) 팀씨티의 경우 가장 속편하게.... 기존 엔진빌드 쪽을 사용하지 않는다. 신규 빌드 스텝을 만든다. 회사 버전서버에서 버전을 완전히 새로 땡겨온다. 그리고 선행으로는 비주얼 스튜디오 최신화를 해야 합니다. 깃랩에서 우리 엔진을 땡겨 온 디렉토리에 가서 프로젝트 생성 후 꼭 비주얼 스튜디오로 솔루션 열어보기 진행 해야 합니다. 열린 솔루션에서 Nuget 종속성 심각한 위험 메시지가 완전히 없어야 합니다. 종속성 위험 해결법. 누겟 리스토어 하기. ( 라이더 등이 ..

UNREAL ENGINE 2025.03.23

[1편] PipelineStateCache 문제점 해결을 위한 코드 트래킹.

최근 5.5.4 업데이트 후 가장 크게 문제되는 부분을 꼽자면PSOprecache 부분이 되겠습니다. PSOprecache 자체가 워낙 반복개발로 분류 된 피처라서 계속 수정되고 있습니다.문제는 5.5.4 네요. PSOprecache 에 대한 스레드 관리부분에서 많은 문제점이 있습니다. PC 에서는 문제가 거의 발생하지 않지만 성능이 좋지 않은 PC 또는 모바일 하드웨어에서는 매우 큰 문제를 유발하고 있어요.ue5_main 브렌치의 3월 19일짜 브렌치쪽의 Engine/Source/Runtime/RHI/Private/PipelineStateCache.cpp 를 좀 살펴 볼까요? #if PLATFORM_SUPPORTS_WORKGRAPH_SHADERS Hash = HashCombineFast(Hash..

UNREAL ENGINE 2025.03.19

Plugin 개발만 git 으로 관리 할 때 플러그인 경로

안드로이드용 최적화를 진행 하면서 플러그인을 추가로 만들거나 수정해야 할 일이 있어서요.그런데 집에서도 작업하고 회사에 방문해서도 작업하고 그러다보니 git 으로 플러그인 모듈과 소스만 버전관리를 하고 싶었습니다.주로 회사에서만 개발을 하시는 분이라면 굳이? 일 수도 있구요... 만약 회사에서 프로젝트의 버전관리를 SVN 을 사용하는데 "아! 나는 코드 플러그인 같은건 깃으로 관리 하고 싶어!" 라든가 하신다면 유용할 듯 합니다.이럴땐 언리얼 엔진에서 제공하는 시스템 환경변수를 사용하면 됩니다. 예전엔 특별히 살펴보질 않아서... 심볼릭을 만들어서 쓰곤 했는데요. 굳이 그럴 필요가 없죠.이렇게 시스템 변수 편집창을 열고 UE_ADDITIONAL_PLUGIN_PATHS 를 변수 이름으로 그리고 변수 값..

UNREAL ENGINE 2025.03.14