【UE4】新建Texture并保存

最近在做在编辑器下用代码创建Texture2D,并保存在本地,因为有时要对资源做一些操作,比如缩放,合并RGBA,加减像素等操作,但是每次生成的Texture都无法真正保存在磁盘上,搞了很久终于明白是哪里出了问题,记下来

1.Flag一定要有Public不然看不到,还要有Standalone或SetRoot存下来

有关Flag含义看这里

https://docs.unrealengine.com/en-US/API/Runtime/CoreUObject/UObject/EObjectFlags/index.html

2.修改完像素后一定要Source.Init不然无法保存到磁盘

Saving the texture

到目前为止,我们已经在PlatformData中输入数据。但是,PlatformData是临时的,不能存入到disk上去。为了将数据输入到texture非临时的变量中去,我们需要引用Source字段

NewTexture->Source.Init(TextureWidth, TextureHeight, 1, 1, ETextureSourceFromat::TSF_BGRA8, Pixels);

3.Packge的命名及映射

FString pathPackage = A + "/" + FileName;
    FString absolutePathPackage = FPaths::ProjectContentDir() + "/" + Path + "/";
    FPackageName::RegisterMountPoint(A, *absolutePathPackage);
    UPackage* Package = CreatePackage(nullptr, *pathPackage);

这里要把A映射一下

4.最后不要忘记

Texture->AddToRoot();

FAssetRegistryModule::AssetCreated(Texture);

参考:

虚幻4程序动态创建package资源并且导出资源

https://blog.csdn.net/qq_16756235/article/details/83004181

UE4 – Save a texture as a new asset

https://zhuanlan.zhihu.com/p/67983183

 

 

Copy RenderTarget2D:

TArray<FColor> RawColorArray;

auto RenderTarget = RT2D->GameThread_GetRenderTargetResource();

RenderTarget->ReadPixels(RawColorArray);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4中的图集是一种将多个小的图片资源合并到一个大的贴图中的技术。它能够显著地提高游戏运行时的性能表现。而Texture Sprite则是用于将图集中的某个小图提取出来,在场景中以精灵的形式进行使用的功能。 使用图集的主要目的是为了减少内存占用和提高渲染性能。当我们使用多个小的图片资源时,每一个单独的图片都需要在内存中分配一定的空间。而使用图集后,所有的小图都被整合到一个较大的贴图中,并且只需占用一次内存分配,大大减少了内存占用。 在UE4中,我们可以通过使用TexturePacker等工具将多个小图合并成一个图集贴图。然后,我们可以使用这个贴图在游戏的材质中创建一个Texture Sprite节点。通过设置该节点的属性,我们可以选择要使用的小图在图集中的位置和大小,还可以进行一些其他的设置,如旋转、偏移等。 使用Texture Sprite节点,我们可以在游戏中快速地创建并使用各种不同的角色、物品和特效等元素。由于使用了图集技术,渲染时只需要绘制贴图中的那部分小图,比起单独绘制每一个小图,能够更加高效地渲染。 总结来说,UE4中的图集和Texture Sprite是用于优化游戏性能的重要工具。图集可以节省内存占用,而Texture Sprite可以提高渲染性能。它们的结合使用能够使得游戏在运行时更加流畅,并且减少对硬件资源的需求,提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值