星鸿阁

 找回密码
 立即注册
搜索
热搜: 活动 交友 动画
查看: 1632|回复: 0

如何读写UTexture2D的像素值?

[复制链接]

2250

主题

2760

帖子

9610

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9610
发表于 2021-1-5 12:53:26 | 显示全部楼层 |阅读模式
如何读写UTexture2D的像素值?

  • void ADynamicTexture::capture()
  • {
  •      cv::Mat img = cv::imread("D:\\img.jpg");
  •      UTexture2D *ut2 = UTexture2D::CreateTransient(img.size().width, img.size().height);
  •      ut2->CompressionSettings = TextureCompressionSettings::TC_VectorDisplacementmap;
  •      ut2->SRGB = 0;
  •      ut2->AddToRoot();
  •      ut2->UpdateResource();
  •      FTexture2DMipMap &mip = ut2->PlatformData->Mips[0];
  •      void *data = mip.BulkData.Lock(LOCK_READ_WRITE);
  •      FMemory::Memcpy(data, img.data, img.size().width * img.size().height);
  •      mip.BulkData.Unlock();
  •      ut2->UpdateResource();
  •      matInst->SetTextureParameterValue(FName("DTexture"), ut2);
  •      mesh->SetMaterial(0, matInst);
  • }





应该改为:
  • auto stride = (int32)( sizeof(uint8) * 4 ); // for r, g, b, a
  • FMemory::Memcpy(data, img.data, img.size().width * img.size().height * stride);


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|starfluidga

GMT+8, 2025-1-2 07:12 , Processed in 0.015078 second(s), 21 queries .

Made by Liga 星鸿阁

Copyright © 2020-2048, LigaStudio.

快速回复 返回顶部 返回列表