Replicated

** [Drag Down] Unreal 5.5 DLSS C++ 설정해주기 ** 본문

언리얼 엔진/Drag Down (캡스톤 디자인)

** [Drag Down] Unreal 5.5 DLSS C++ 설정해주기 **

라구넹 2025. 4. 30. 22:14

https://developer.nvidia.com/rtx/dlss?sortBy=developer_learning_library%2Fsort%2Ffeatured%3Adesc%2Ctitle%3Aasc&hitsPerPage=6#getstarted

 

NVIDIA DLSS

Boosts frame rates and generates sharp images.

developer.nvidia.com

여기서 버전에 맞는 DLSS 플러그인 다운로드

* DLSS

내부에서 렌더링하는 걸 더 작은 해상도 렌더링하고 업스케일링해서 화면 해상도까지 올리는 것

-> 그만큼 GPU 병목이 줄어서 프레임 레이트 상승!

 

Drag Down은 5.5라 5.5를 다운로드 및 압축 해제

 

경로 가서 Marketplace 폴더 만들고

 

필요한 거 넣어주기

 

그럼 이제 플러그인 활성화 가능

 

이제 엔진의 Plugin 가보면 DLSS 생겨 있음

꺼진 거 있으면 켜주자

 

이거 켜져 있어야 뷰포트에서 적용 가능

 

r.NGX.DLSS.Enable 1

r.ScreenPercentage 66.7

이런 방식으로 콘솔 명령 써서 조절 가능

* Screen Percentage: 내부 렌더링 해상도를 어느 수준으로 할지 설정. 실제 출력 디스플레이 해상도랑 다름

* DLSS 켜지만 스크린 퍼센테이지는 꺼지고 DLSS가 자동 조정.. 후 업스케일링

 

그리고 stat dlss 하면 현재 얼마나 vram 많이 먹는지 체크 가능

 

근데 일단 나는 C++로 컨트롤할 거다

 

플러그인 보면 DLSS랑 DLSSBlueprint 있음

 

빌드 파일에서 패스 포함하고

 

// Fill out your copyright notice in the Description page of Project Settings.


#include "Setting/DDUserSettings.h"
#include "DLSSLibrary.h"

UDDUserSettings::UDDUserSettings()
{
	MasterVolume = 1.0f;
	BGMVolume = 1.0f;
	SFXVolume = 1.0f;
	DLSSMode = UDLSSMode::Off;
	LoadConfig();
}

void UDDUserSettings::ApplySettings(bool bForce)
{
	Super::ApplySettings(bForce);
	
	SetMasterVolume(MasterVolume);
	SetBGMVolume(BGMVolume);
	SetSFXVolume(SFXVolume);
	SetDLSSMode(DLSSMode);

	ApplyDLSSMode();

	SaveSettings();
}

void UDDUserSettings::SetMasterVolume(float InMasterVolume)
{
	MasterVolume = FMath::Clamp(InMasterVolume, 0.0f, 1.0f);
	SaveConfig();
}

void UDDUserSettings::SetBGMVolume(float InBGMVolume)
{
	BGMVolume = FMath::Clamp(InBGMVolume, 0.0f, 1.0f);
	SaveConfig();
}

void UDDUserSettings::SetSFXVolume(float InSFXVolume)
{
	SFXVolume = FMath::Clamp(InSFXVolume, 0.0f, 1.0f);
	SaveConfig();
}

void UDDUserSettings::SetDLSSMode(UDLSSMode InDLSSMode)
{
	DLSSMode = InDLSSMode;
	SaveConfig();
}

void UDDUserSettings::ApplyDLSSMode()
{
	if (!CheckDLSSAvailable()) return;

	UDLSSLibrary::SetDLSSMode(GetWorld(), DLSSMode);
}

bool UDDUserSettings::CheckDLSSAvailable()
{
	return UDLSSLibrary::IsDLSSSupported();
}

DLSSBlueprint.h는 딱히 안쓰긴 했는데 아직 일단 패스에만 추가..

일반 라이브러리만 가져오자 (gpt는 업데이트 안됐는지 제대로 안알려주는데, DLSSLibrary.h 포함해야 함)

DLSS 컨트롤 가능한 코드 작성해놨다

당연히 config 설정

 

일단 UI랑 연결하기 위해 어떤 옵션이 있는지 체크

 

맞게 설정해주기

 

 

정상 작동 확인 가능

High Performance 시 퀄리티 훅 떨어지는 거 보면 설정된게 맞다..