虚幻4渲染编程(Shader篇)【第六卷:资源操作】

专栏目录:

小IVan:专题概述及目录​zhuanlan.zhihu.com图标

本节将会介绍虚幻的贴图资源读取,写入,存出等操作。这也是做Instanceing动画,工具开发等的基础。


【1】向UTexture2D写入数据

v2-cc282403dd7f66e100560ffc176fd9c9_b.jpg

我把蓝色写入UTexture2D

效果如下:

写入前

v2-23bfbd1cc52084cc8e0bb35e8a952d37_b.jpg

写入后

v2-6682f467a15eb7eed47ade522b058f17_b.jpg

【2】向FRHITexture2D写入数据

v2-76542f0de0033e2fd3e572f72113229c_b.jpg

效果如下

v2-cb29b84859b7e56fbbcac4610f57bf7a_b.jpg

【3】从FRHITexture2D读取数据

平时写代码的时候很少用到位操作

v2-69d6a8ab6e4de94e0da2e1ac53559ac8_b.jpg

【4】从UTexture2D转换为FTexture2D并且读取它然后写成文件到磁盘

void UTestShaderBlueprintLibrary::TextureWriting(UTexture2D* TextureToBeWrite, AActor* selfref)
{
	check(IsInGameThread());

	if (selfref == nullptr && TextureToBeWrite == nullptr)return;

	//TextureToBeWrite->CompressionSettings = TextureCompressionSettings::TC_VectorDisplacementmap;
	//TextureToBeWrite->SRGB = 0;

	//FTexture2DMipMap& mipmap = TextureToBeWrite->PlatformData->Mips[0];
	//void* Data = mipmap.BulkData.Lock(LOCK_READ_WRITE);

	//int32 texturex = TextureToBeWrite->PlatformData->SizeX;
	//int32 texturey = TextureToBeWrite->PlatformData->SizeY;
	//TArray<FColor>colors;
	//for (int32 x = 0; x < texturex * texturey; x++)
	//{
	//	colors.Add(FColor::Blue);
	//}
	//int32 stride = (int32)(sizeof(uint8) * 4);
	//FMemory::Memcpy(D
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpongo11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值