我无法获得具有纹理透明性的3D模型以在Xcode中正确呈现。
头发的3D模型由两个几何形状(头发和帽子)组成,并在Maya中创建。它是从here购买的。
我将模型导出为COLLADA格式(DAE),并将其与纹理一起放入文件夹model.scnassets
中,并将其添加到Xcode。但是,在Xcode Scene Editor中,其呈现方式如下:
这是怎么了?
设置Transparent > Intensity = 5
,Settings > Transparency > Blend Mode = Double Sided
,Settings > Transparency > Options > Writes depth = false
可以得到此图像,其中正确绘制了针对蓝色球体的头发多边形,但是在蓝色球体上方,渲染的头发多边形不是最接近的多边形相机,但似乎是在头发模型的背面。这显然是由于Writes depth = false
引起的,但是似乎有必要禁用它以呈现半透明的头发。 (在这里使用棕色纹理代替读取的纹理,但是无论选择哪种纹理,结果都是相同的)
答案 0 :(得分:1)
如果要在Xcode场景编辑器中查看Transparent
插槽的正确结果,则需要对3D对象的透明部分使用预乘的TIFF
或PNG
文件。 TIFF
和PNG
文件格式可以容纳四个通道(RGBA
),但是JPEG
仅可以容纳三个通道(RGB
)。
Premultiplied
的意思是RGB
* Alpha
= RGBA
(但不要取消公开RGB, A
)。
将预乘纹理应用于Transparent
插槽后,将其Intensity
属性设置为1...5
,并将Components
属性从下拉菜单({{1} },All
,Red
,Green
,Blue
)。
Apple文档。
默认情况下,透明属性的内容对象是完全不透明的黑色,导致该属性没有可见效果。将透明属性的内容设置为任何纯色会根据该颜色的不透明度值均匀地淡化材质的不透明度。要使材料的某些部分看起来透明,请将属性的内容设置为图像或其他具有纹理贴图的内容,这些内容的Alpha通道定义了完全或部分不透明的区域。