昨日不可追, 今日尤可爲.勤奮,熾誠,不忘初心
手機淘寶二維碼 掃描
或者打開連接:程序設計開發 ,掌聲鼓勵,歡迎光臨.
UE4 如何將材質Material保存爲本地圖片Png
下面這篇文章講了如何將TextureRenderTarget2D保存爲本地圖片
https://blog.csdn.net/lunweiwangxi3/article/details/87457594
要麼,我想要將UE4的材質,最終效果,保存到本地圖片,怎麼辦呢?
人要是越來越厲害,他對應感官也會越來越敏銳,使用手段也會越來越刁鑽
自然而然地,就會想到,Material類裏面有沒有類似於輸出到本地之類的函數,找了下,沒有。
接着想,因爲有了TextureRenderTardet2D保存爲本地圖片的成功例子,能否利用起來。將材質轉換爲TextureRenderTarget2D,然後再進行保存操作?想想都激動,趕緊試試。
1.首先,創建一個保存用的TextureRenderTarget2D,如下圖所示:
2.將要保存爲本地Png材質,寫入TextureRenderTarget2D,如下圖所示
然後通過上一篇文章,點此連接,將TextureRenderTarget2D保存爲本地圖片
要保存的材質: VS
SaveRenderTargetToFile函數保存出來的圖片:
爲什麼這樣子???
毫不猶豫,想到Alpha通道要反向。不要問我爲什麼會想到要反向,請回退到文章頂部,查看紅色字體部分
3.Alpha反向代碼:
再次保存,運行。能保存了,舒服。
要保存的材質圖 VS
保存的Png:
逐漸,消失的笑容... 問題來了,紅綠色盲的都看出兩幅圖的顏色不一致了
保存的圖真的跟老外一樣,Much Darker了 https://blog.csdn.net/lunweiwangxi3/article/details/87457594
很明顯,不能忍。不知道怎麼解決,搜索引擎也提取不出關鍵搜索詞,程序又不懂美術的色彩,很難受。
靈光一現,爲什麼不能:“從哪來,回哪去呢?”
4.調試方案之哪來回哪去
毫不留情地,把引擎吐出來的Png圖片又讓我塞進了引擎。
強烈的第六感讓我點開它,
裏面的參數,應該能告訴我點什麼,
當我試到CompressionQuality-HDR(RGB,no sRGB)的時候,我的心咯噔就是一跳,確認過眼神,就是我要找的人。
CompressionSettings,壓縮設置!!!,趕緊到SaveRenderTargetToFile函數中去找壓縮那一段,看看能不能改成HDR!!!
FImageUtils::CompressImageArray:不好意思,沒有重載的函數或可設置默認的參數。
不死心的我又把萬惡的矛頭指向了FFileHelper::SaveArrayToFile...因爲能力不夠加上沒查到合適的資料,只能作罷。
黔驢技窮之時,我又想起了那句話:哪裏來,回哪去。
我趕緊又打開了老外的那篇文章:
https://blog.csdn.net/lunweiwangxi3/article/details/87457594
5.溫故而知新,可以爲師矣
重新看了這篇文章,下面兩個紅圈如此強烈而持續地抨擊着我胸懷,這個東西,我在哪裏見過。
沒錯,就是它:
十年之前,我不認識它,以爲是顏色的一種格,無關痛癢的一種格式。如果再相遇,我想我會記得你。
平時不努力,答案寫臉上,都不知道是幹什麼的。
自己不努力,別人想拉一把都不知道從哪裏下手.
...
下一步的關鍵已經很明顯了,製作HDR格式的 UTextureRenderTarget2D
強烈的成功預感...
函數的,拿過來
用:方式,取代第一步的創建RenderTarget2D的方式。其他不變。
保存,運行,打開Png,
一切又恢復到了正常的模樣:
就好像從來沒發生過一樣。