1

我对这件事摸不着头脑:我有一个简单的 LEGO tile 2x2 砖模型,采用红色 OBJ 文件格式,在其顶部表面应用了黄色箭头的透明图像。它在 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 查看器)中看到,砖背景颜色是黑色(或 PoseRay 中的白色)tho黄色箭头可见。似乎它只是忽略了透明 png 图像的 alpha 通道,或者我是对的吗?这是它在 PoseRay 中的样子:

在此处输入图像描述

然而,在互联网上花了半天试图找到解决方案(没有成功)之后,我玩了一下它,我至少发现如果我改变它map_Kdmap_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

在此处输入图像描述

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

4

0 回答 0