swift RealityKit仅显示深色图像

sg2wtvxw  于 2023-06-21  发布在  Swift
关注(0)|答案(2)|浏览(136)

我正在使用ARKit 3和RealityKit开发iOS应用程序。我想在包含图像的房间内创建虚拟2d平面。所以我用
Adding a material to a ModelEntity programmatically
但不是接近白色的图像将显示非常暗,接近黑色。我也试过UnlitMaterial。它确实创造了一个更好的结果,但图像仍然是黑暗的方式。此问题在JPEG和PNG文件上仍然存在。
在我使用SceneKit的早期版本中,我通过

sceneView.automaticallyUpdatesLighting = true
sceneView.autoenablesDefaultLighting = true

我想图像确实通过这个代码照亮了自己。
如何在RealityKit中解决问题?
可能相关:https://forums.developer.apple.com/thread/119265

6kkfgxo0

6kkfgxo01#

let img = UIImage(named: ouputSrc, in: Bundle(path: resourcePath), compatibleWith: nil)
                
  var myMaterial = UnlitMaterial()
  myMaterial.baseColor = try! .texture(.load(named: ouputSrc, in: Bundle(path: resourcePath)))
  myMaterial.tintColor = UIColor.white.withAlphaComponent(1)
iswrvxsc

iswrvxsc2#

场景光照不影响材质时

开箱即用的ARView具有嵌入在光估计阶段的自动照明功能。然而,有时,它不正常工作,由于恶劣的环境照明。因此,材质忽略场景照明的唯一方法是使用UnlitMaterial或VideoMaterial。
此外,请确保未点亮的材料具有white颜色,并且jpgpng图像没有特殊的颜色配置文件。下面是我的代码:

import UIKit
import RealityKit

class ViewController : UIViewController {
    
    @IBOutlet var arView: ARView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        arView.renderOptions = [.disableGroundingShadows]

        var material = UnlitMaterial(color: .white)
        material.color.texture = .init(try! .load(named: "img", in: nil))

        let mesh = MeshResource.generateSphere(radius: 0.25)
        let model = ModelEntity(mesh: mesh, materials: [material])
        
        let anchor = AnchorEntity()
        anchor.addChild(model)
        arView.scene.anchors.append(anchor)
    }
}

相关问题