【问题标题】:Alpha map is not working in scenekit swift iosAlpha地图在scenekit swift ios中不起作用
【发布时间】:2018-06-27 13:36:58
【问题描述】:

我有托盘可以在模型上应用漫反射、金属度、法线、粗糙度和 Alpha 贴图,但所有贴图都可以工作,但只有 alpha 贴图不工作。 如何在scenekit中制作透明玻璃?我在 swift iOS 中有托盘到下面的代码。谁能告诉我具体原因?

if let finishMap = finish.finishMap {
      if let diffuseTexturePath = finishMap.diffuseMapUrl {
            disPatchGroup.enter()
            self.dataProvider.fetchTextureFile(forpath: diffuseTexturePath, successBlock: { (success, imageObject) in
                material.diffuse.contents = imageObject
                disPatchGroup.leave()
            }, failureBlock: { (error) in
                disPatchGroup.leave()
            })
        }

       if let metalTexturePath = finishMap.metalnessMapUrl {
            disPatchGroup.enter()
            self.dataProvider.fetchTextureFile(forpath: metalTexturePath, successBlock: { (success, imageObject) in
                material.metalness.contents = imageObject
                disPatchGroup.leave()
            }, failureBlock: { (error) in
                disPatchGroup.leave()
            })
        }

        if let roughnessTexturePath = finishMap.roughnessMapUrl {
            disPatchGroup.enter()
            self.dataProvider.fetchTextureFile(forpath: roughnessTexturePath, successBlock: { (success, imageObject) in
               material.roughness.contents = imageObject
                disPatchGroup.leave()
            }, failureBlock: { (error) in
                disPatchGroup.leave()
            })
        }

        if let normalTexturePath = finishMap.normalMapUrl {
            disPatchGroup.enter()
            self.dataProvider.fetchTextureFile(forpath: normalTexturePath, successBlock: { (success, imageObject) in
                material.normal.contents = imageObject
                disPatchGroup.leave()
            }, failureBlock: { (error) in
                disPatchGroup.leave()
            })
        }
        if let transparentTexturePath = finishMap.transparentMapUrl {
            disPatchGroup.enter()
            self.dataProvider.fetchTextureFile(forpath: transparentTexturePath, successBlock: { (success, imageObject) in

               material.transparent.contents = imageObject

                disPatchGroup.leave()
            }, failureBlock: { (error) in
                disPatchGroup.leave()
            })
        }

        }

【问题讨论】:

标签: ios swift scenekit


【解决方案1】:

将透明度贴图设置为 rbgZero。有几种透明度模式,我认为默认是 alpha(不确定),如果你想使用灰度图像作为地图,那么你需要使用 rgbZero

material.transparencyMode   = .rgbZero

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 2023-03-25
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多