【UE4虛幻】UTexture2D紋理裁剪函數

參數說明:
源2D紋理圖片:UTexture2D* SourceTexture
裁剪區域的左上角:const FVector2D TopLeft
裁剪區域的右下角:const FVector2D BottomRight
返回值是裁剪之后的紋理圖片

UTexture2D* APointProjection::CropPicture(UTexture2D* SourceTexture,const FVector2D TopLeft, const FVector2D BottomRight)
{if (!SourceTexture || !SourceTexture->IsValidLowLevel()){UE_LOG(LogTemp, Error, TEXT("value error"));return SourceTexture;}int32 TextureWidth = BottomRight.X - TopLeft.X;int32 TextureHeight = BottomRight.Y - TopLeft.Y;UE_LOG(LogTemp, Error, TEXT("TextureWidth is %d TextureHeight is %d"), TextureWidth, TextureHeight);const uint8* FormatedImageData = static_cast<const uint8*>(SourceTexture->PlatformData->Mips[0].BulkData.LockReadOnly());TUniquePtr<uint8[]> ClippedTextureData(new uint8[TextureWidth * TextureHeight * 4]);UE_LOG(LogTemp, Error, TEXT("FormatedImageData %p"), FormatedImageData);for (int32 y = TopLeft.Y; y < BottomRight.Y - 1; y++) //減去一是為了防止類型轉換而導致越界{for (int32 x = TopLeft.X; x < BottomRight.X - 1; x++){int32 m_x = x - TopLeft.X;int32 m_y = y - TopLeft.Y;int32 curPixelIndex1 = (m_y * TextureWidth + m_x);int32 curPixelIndex2 = (y * SourceTexture->GetSizeX() + x);// 將當前像素顏色添加到像素數組中,注意 BGRA 通道的順序ClippedTextureData[curPixelIndex1 * 4]     = FormatedImageData[curPixelIndex2 * 4];ClippedTextureData[curPixelIndex1 * 4 + 1] = FormatedImageData[curPixelIndex2 * 4 + 1];ClippedTextureData[curPixelIndex1 * 4 + 2] = FormatedImageData[curPixelIndex2 * 4 + 2];ClippedTextureData[curPixelIndex1 * 4 + 3] = FormatedImageData[curPixelIndex2 * 4 + 3];}}// 解鎖 MipMapSourceTexture->PlatformData->Mips[0].BulkData.Unlock();寫操作UTexture2D* CropTexture = UTexture2D::CreateTransient(TextureWidth, TextureHeight, SourceTexture->GetPixelFormat());void* TextureData = CropTexture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);FMemory::Memcpy(TextureData, ClippedTextureData.Get(), sizeof(uint8) * TextureHeight * TextureWidth * 4);CropTexture->PlatformData->Mips[0].BulkData.Unlock();CropTexture->UpdateResource();return CropTexture;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163713.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洗地機哪個牌子好用?洗地機選購攻略

傳統的清潔方式都是掃把拖把的結合&#xff0c;既繁瑣也勞累&#xff0c;每次清潔完后還得累的腰酸背痛的&#xff0c;像廚房這種地方甚至會不容易清潔干凈&#xff0c;總感覺地板灰蒙蒙的。洗地機的誕生就很好的解決了這些問題&#xff0c;不用一遍遍的重復掃地拖地擦地&#…

1410. HTML 實體解析器 --力扣 --JAVA

題目 「HTML 實體解析器」 是一種特殊的解析器&#xff0c;它將 HTML 代碼作為輸入&#xff0c;并用字符本身替換掉所有這些特殊的字符實體。 HTML 里這些特殊字符和它們對應的字符實體包括&#xff1a; 雙引號&#xff1a;字符實體為 &quot; &#xff0c;對應的字符是 &qu…

JOSEF約瑟 過電流繼電器 JL15-300/11 觸點形式一開一閉 板前接線

系列型號 JL15-1.5/11電流繼電器JL15-2.5/11電流繼電器 JL15-5/11電流繼電器JL15-10/11電流繼電器 JL15-15/11電流繼電器JL15-20/11電流繼電器 JL15-30/11電流繼電器JL15-40/11電流繼電器 JL15-60/11電流繼電器JL15-80/11電流繼電器 JL15-100/11電流繼電器JL15-150/11電流繼電…

linux的系統

10.4 I2C 系統的重要結構體 參考資料&#xff1a; ? Linux 驅動程序:&#xff08;某版本的 Linux&#xff0c;比如 Linux-4.9.88&#xff09;/drivers/i2c ? I2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/ 284 / 577 10.4.1 重要結構體 使用一句…

母嬰團隊半年破億秘訣揭秘,合規經營成就輝煌

這支母嬰產品銷售團隊在短短半年內實現了過億的銷售額&#xff0c;這是一個令人矚目的成就。他們既不依賴線下門店&#xff0c;也不是傳統的電商平臺&#xff0c;那么他們是如何做到這一點的呢&#xff1f; 這個團隊從16年10月開始經營母嬰產品&#xff0c;如今已經過去了6年時…

生成式AI:SEO的末日?

由于在搜索結果中引入生成式AI (GAI)&#xff0c;以 SEO 為主導的內容的未來成為最近的熱門話題&#xff0c;這是有充分理由的。 對于出版商和網站所有者&#xff08;從現在開始我們將他們稱為內容創建者&#xff09;的影響可能是毀滅性的。 如下圖所示&#xff0c;谷歌新的搜…

成為AI產品經理——模型構建過程(上)

目錄 一、背景 1.對內 2.對外 二、模型構建過程 1.模型設計 2.特征工程 ① 數據清洗 ② 特征提取 數值型數據 標簽/描述類數據特征 非結構化數據&#xff08;處理文本特征&#xff09; 網絡關系型數據 ③ 特征選擇 ④ 訓練集/測試集 一、背景 雖然產品經理不…

Linux應用開發基礎知識——I2C應用編程(十二)

前言&#xff1a; I2C&#xff08;Inter-Integrated Circuit BUS&#xff09;是集成電路總線&#xff0c;是目前應用最廣泛的總線之一&#xff0c;最初由PHILIPS&#xff08;現為NXP&#xff09;設計。它使用多主從架構&#xff0c;主要用于連接低速周邊設備。I2C總線在硬件物理…

WorkPlus即時通訊,打通上下游產業鏈,構建企業生態圈

如今&#xff0c;隨著信息技術的迅速發展&#xff0c;智慧水務、智慧醫療、智慧城市、智慧教育、智慧政務等領域正蓬勃發展。在這個智慧時代&#xff0c;企業需要一個具備開放性和擴展性的平臺級產品&#xff0c;以滿足多樣化的業務需求。WorkPlus作為一款全新的移動底座產品&a…

String 真的不可變嗎?

為什么 String 類不可變 final修飾符&#xff1a; String類被聲明為final&#xff0c;這意味著它不能被繼承。因此&#xff0c;無法創建String的子類來修改其行為。私有字符數組&#xff08;char[]&#xff09;&#xff1a; String類內部使用私有的字符數組來存儲字符串的內容…

Excel文件比較不再繁瑣,xlCompare助您快速找出差異

概要 在現代職場中&#xff0c;Excel 已成為工作中不可或缺的利器。 在日常操作中&#xff0c;我們會遇到需要對兩個或多個 Excel 文件進行比較的情況&#xff0c;此時&#xff0c;一款高效的 Excel 文件比較工具就顯得尤為重要。 本文將為您介紹一款功能強大、優勢明顯的 Exc…

創新建筑形式:氣膜體育館助力校園體育設施革新

體育場館在校園中扮演著重要的角色&#xff0c;是學生們進行體育鍛煉、比賽和各類體育活動的場所。傳統的室內體育館建設往往需要大量資金和漫長的建設周期&#xff0c;但隨著氣膜體育館的嶄露頭角&#xff0c;校園體育設施的面貌正迎來一場革新。 快速搭建&#xff0c;靈活性極…

電機應用開發-直流有刷電機電流環控制實現

目錄 直流有刷電機電流環控制實現 硬件設計 直流電機電流環控制-位置式PID實現 編程要點 配置ADC可讀取電流值 配置基本定時器6產生定時中斷讀取當前電路中驅動電機的電流值并執行PID運算 配置定時器1輸出PWM控制電機 ADC數據處理 編寫位置式PID算法 直流電機電流環控…

3、領導跟你談話,講到你的團隊里面的好友,公司會進行觀察裁員,你會去傳話么?

作為一個團隊成員&#xff0c;我會認真聽取領導的意見&#xff0c;并尊重公司的決定。然而&#xff0c;作為一個好友&#xff0c;我也會考慮他們的利益&#xff0c;我會與他們溝通&#xff0c;提醒他們注意自己的表現和工作&#xff0c;努力提高業績和工作質量&#xff0c;以確…

5個免費在線工具推薦

NSDT 三維場景建模工具GLTF/GLB在線編輯器Three.js AI自動紋理化開發包YOLO 虛幻合成數據生成器3D模型在線轉換 1、NSDT 三維場景建模 訪問地址&#xff1a;NSDT 編輯器 2、GLTF/GLB在線編輯器 訪問地址&#xff1a;GLTF 編輯器 3、Three.js AI自動紋理化開發包 圖一為原始模…

Linux下安裝兩個版本python

1 python下載&#xff1a; 官網地址&#xff1a;Download Python | Python.org 第一&#xff1a;點擊下載如下圖&#xff1a; 第二&#xff1a;找到對應的python版本源碼包&#xff1a; 點擊右鍵復制下載地址&#xff0c;如下圖 例如我的是&#xff1a;https://www.python.org/…

【鴻蒙應用ArkTS開發系列】- 云開發入門實戰二 實現省市地區聯動地址選擇器組件(上)

目錄 概述 云數據庫開發 一、創建云數據庫的對象類型。 二、預置數據&#xff08;為對象類型添加數據條目&#xff09;。 三、部署云數據庫 云函數實現業務邏輯 一、創建云函數 二、云函數目錄講解 三、創建resources目錄 四、獲取云端憑據 五、導出之前創建的元數據…

企業如何通過軟文推廣提高競爭力

數字時代我們每天接收到的信息遠遠超過可接受的量&#xff0c;且技術進步帶來的“信息繭房”使用戶很難獲取真正有效的信息&#xff0c;但越是雜亂的信息環境&#xff0c;有價值信息的穿透力就越強&#xff0c;軟文推廣正是憑借價值感信息助力企業提高競爭力&#xff0c;接下來…

RabbitMQ快速學習之WorkQueues模型、三種交換機、消息轉換器(SpringBoot整合)

文章目錄 前言一、WorkQueues模型消息發送消息接收能者多勞 二、交換機類型1.Fanout交換機消息發送消息接收 2.Direct交換機消息接收消息發送 3.Topic交換機消息發送消息接收 三、編程式聲明隊列和交換機fanout示例direct示例基于注解 四、消息轉換器總結 前言 WorkQueues模型…

C plus plus

環境配置 vscodewindows vscode c 環境配置(終極版)_vscode配置c/c環境_BangBang的博客-CSDN博客VsCode安裝和配置C環境詳細全流程_vscode安裝c-CSDN博客MinGW、MinGW-w64 與TDM-GCC 應該如何選擇&#xff1f; - 知乎、VsCode安裝和配置C環境詳細全流程_vscode安裝c-CSDN博客 …