SMALL
1. BeginDrawCanvasToRenderTarget
/**
* Returns a Canvas object that can be used to draw to the specified render target.
* Canvas has functions like DrawMaterial with size parameters that can be used to draw to a specific area of a render target.
* Be sure to call EndDrawCanvasToRenderTarget to complete the rendering!
*/
UFUNCTION(BlueprintCallable, Category="Rendering", meta=(Keywords="BeginDrawCanvasToRenderTarget", WorldContext="WorldContextObject", UnsafeDuringActorConstruction="true"))
static ENGINE_API void BeginDrawCanvasToRenderTarget(UObject* WorldContextObject, UTextureRenderTarget2D* TextureRenderTarget, UCanvas*& Canvas, FVector2D& Size, FDrawToRenderTargetContext& Context);
UCanvas 객체를 통해 렌더 타겟에 데이터를 그릴 준비를 시작함.
Unreal Engine의 렌더 타겟 기반 작업은 GPU로 데이터를 기록하는 구조이며
렌더 타겟에 무언가를 기록하기 전 GPU상태를 초기화하기 위해 실행되어야 하는 함수.
2. EndDrawCanvasToRenderTarget
/**
* Must be paired with a BeginDrawCanvasToRenderTarget to complete rendering to a render target.
*/
UFUNCTION(BlueprintCallable, Category="Rendering", meta=(Keywords="EndDrawCanvasToRenderTarget", WorldContext="WorldContextObject", UnsafeDuringActorConstruction="true"))
static ENGINE_API void EndDrawCanvasToRenderTarget(UObject* WorldContextObject, const FDrawToRenderTargetContext& Context);
GPU가 렌더링 작업을 종료 및 완료했다고 노티파이 해 주는 함수.
GPU의 안정적인 데이터 처리를 위해 Unreal Engine에서의 명시적인 렌더링 작업 시작, 종료가 필요함.
호출해주지 않으면 렌더링 작업이 GPU상에서 계속해서 대기 상태로 남을 수 있음.
3. ClearRenderTarget2D
/**
* Clears the specified render target with the given ClearColor.
*/
UFUNCTION(BlueprintCallable, Category="Rendering", meta=(Keywords="ClearRenderTarget", WorldContext="WorldContextObject", UnsafeDuringActorConstruction="true"))
static ENGINE_API void ClearRenderTarget2D(UObject* WorldContextObject, UTextureRenderTarget2D* TextureRenderTarget, FLinearColor ClearColor = FLinearColor(0, 0, 0, 1));
이전 프레임의 데이터를 삭제하고 렌더 타겟을 초기화 해 새로운 데이터를 기록할 준비를 함.
4. CreateRenderTarget2D
/**
* Creates a new render target and initializes it to the specified dimensions
*/
UFUNCTION(BlueprintCallable, Category="Rendering", meta=(WorldContext="WorldContextObject"))
static ENGINE_API UTextureRenderTarget2D* CreateRenderTarget2D(UObject* WorldContextObject, int32 Width = 256, int32 Height = 256, ETextureRenderTargetFormat Format = RTF_RGBA16f, FLinearColor ClearColor = FLinearColor::Black, bool bAutoGenerateMipMaps = false, bool bSupportUAVs = false);
이름 그대로인 함수.
필자는 이 함수를 놓쳐서 번거롭게 UTextureRenderTarget2D자료형의 일반 변수를 코드로 선언해 놓고
언리얼 에디터에서 직접 생성해 손으로 넣어주고 있었음ㅎ.
반응형
SMALL
'UnrealEngine5 > C++' 카테고리의 다른 글
Unreal Engine 5 기준 C++ 자주 쓰는 자료형 캐스팅(형변환) 문법 메모 (0) | 2024.02.16 |
---|---|
언리얼 엔진 5 (Unreal Engine 5) 하늘&날씨 시스템 Part5 흐린 날씨3(4k) (0) | 2023.09.22 |
언리얼 엔진5 (Unreal Engine 5) 하늘&날씨 시스템 Part4 흐린 날씨2(4k) (0) | 2023.09.22 |
언리얼 엔진(UnrealEngine) 5 하늘&날씨 시스템 Part3 흐린 날씨1 (4k) (0) | 2023.09.22 |
언리얼 엔진(UnrealEngine) 5 하늘&날씨 시스템 Part2 태양 (4k) (0) | 2023.09.22 |
언리얼 엔진 5 (Unreal Engine 5) 하늘 & 날씨 시스템 Part 1(4k) (0) | 2023.09.22 |
UnrealEngine 5 C++ Beginner Tutorial (Interactable Prop System) Part 02 (0) | 2023.09.22 |
UnrealEngine 5 C++ Beginner Tutorial (Interactable Prop System) Part 01 (0) | 2023.09.22 |