obj的mtl文件中的透明pngalpha通道支持

问题描述

我为这件事抓挠了头:我有一个简单的模型,它是红色的OBJ文件格式的LEGO瓷砖2x2砖,上面涂了黄色箭头的透明图像。它是在这样的mtl文件中定义的(由Blender 2.90.1生成):

newmtl 21
Ns 50.000007
Ka 1.000000 1.000000 1.000000
Kd 0.705882 0.000000 0.000000
Ks 0.700000 0.700000 0.700000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd 306808.png

问题是,一旦导入回Blender(以检查是否应做,看起来好像不是)或在PoseRay(3D查看器)中看到,砖的背景颜色是黑色(或白色)。可以看到黄色箭头。似乎它只是忽略了透明png图像的Alpha通道,还是可以吗?这就是PoseRay中的样子:

enter image description here

但是我花了半天时间在互联网上尝试寻找解决方案(没有成功),并且我至少发现,如果我将map_Kd更改为map_d它使透明png的alpha通道处于活动状态,但会改变图像的颜色(黑色使砖块的表面完全透明,因此我们可以看到砖块,而黄色变为白色,因为它基本上以黑色为底色,白色(不透明),部分介于可见/不可见之间,具体取决于实际颜色位于黑色和白色之间。请参见下面的代码和结果图像。

newmtl 21
Ns 50.000007
Ka 1.000000 1.000000 1.000000
Kd 0.705882 0.000000 0.000000
Ks 0.700000 0.700000 0.700000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_d 306808.png

enter image description here

那么obj / mtl是否支持在mtl文件中定义的透明png图像的alpha通道? 如果能做到这一点(在mtl文件中编码),使其看起来像预期的那样(红色背景上的黄色箭头)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)