如何解决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中的样子:
但是我花了半天时间在互联网上尝试寻找解决方案(没有成功),并且我至少发现,如果我将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
那么obj / mtl是否支持在mtl文件中定义的透明png图像的alpha通道? 如果能做到这一点(在mtl文件中编码),使其看起来像预期的那样(红色背景上的黄色箭头)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。