• [Unreal 게시판] player가 그린 그림을 texture로 사용하기2015.05.09 AM 11:19

게시물 주소 FONT글자 작게하기 글자 키우기

Question>

UE4를 사용 중인데, game을 하는 사람이 그린 그림을
texture로 사용하는 기능을 넣고 싶습니다.

예를 들어, player가 문양이나 기호를 임의로 그리면,
그걸 texture로 사용하는 기능을 구현하고 싶은데요.

어떤 식으로 접근하면 될까요?

-------------------------------------------------------------

Answer>

'class CanvasRenderTarget2D'을 사용하면 쉽게 해결될 거라고 봅니다.^^


상속 관계를 살펴 보시면 아시겠지만,
'class CanvasRenderTarget2D'는 'class UTexture'와 'class UTextureRenderTarget'를 상속하므로,
일반적인 texture로 사용하는 것이 가능하고, render target으로도 사용 가능합니다.


게다가,
이름에서 알 수 있듯이 'class UCanvas'를 사용해서,
texture에 자유롭게 그리는 기능까지 내포되어서리..@_@;;;;;
기능적인 면에서 상상을 초월하는 편의성을 가진 class라고 말할 수 있습니다.*-_-*


대략, 아래와 같은 형태로 생성해서 설정하시면 됩니다.


m_crtExample = UCanvasRenderTarget2D::CreateCanvasRenderTarget2D(
UCanvasRenderTarget2D::StaticClass(), 512, 512
);
m_crtExample->OnCanvasRenderTargetUpdate.AddDynamic( this, &MyHud::DrawInTarget );


'class MyHud'의 DrawInTarget()은 delegate function이고요.
이 함수 안에서 target texture에 임의로 그리는 code를 넣으면 되겠습니다.^^


void MyHud::DrawInTarget( class UCanvas* canvasIn, int32 iWidthIn, int32 iHeightIn )
{
//여기서, 'canvasIn'에 뭔가를 그리면,
//그린 내용이 'm_crtExample'에 반영되어, texture로 사용할 수 있습니다.
}


'm_crtExample'의 갱신은 주기적으로(또는 갱신의 필요가 있을 때)
tick이나 timer로 'm_crtExample->UpdateResource();'를 호출하시면 되겠습니다.^^







Tag:
안기훈, Kee Hoon Ahn, 언리얼, Unreal, UDK, iPhone, iPad, app, 앱, iOS
댓글 : 0 개
친구글 비밀글 댓글 쓰기