UE4 如何将材质Material保存为本地图片Png

 


昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心

手机淘宝二维码 扫描      

或者打开连接:程序设计开发 ,掌声鼓励,欢迎光临.


     

                             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,

一切又恢复到了正常的模样:

就好像从来没发生过一样。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章