.autoenablesDefaultLighting
インスタンスプロパティを介してSCNViewでデフォルトの照明をオンまたはオフにしようとしましたが、機能しません(UIでもプログラムでも)。
光がないときは、すべてのオブジェクトを黒にする必要があります。
デフォルトの照明をオフにする方法は?
コードは次のとおりです。
import SceneKit
import QuartzCore
class GameViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let scnView = SCNView(frame: NSRect(x: 0,
y: 0,
width: 450,
height: 300))
view.addSubview(scnView)
scnView.autoenablesDefaultLighting = false // DOESN'T WORK
scnView.allowsCameraControl = true
scnView.backgroundColor = NSColor.blue
let scene = SCNScene()
scnView.scene = scene
let sphereGeo = SCNSphere(radius: 2)
sphereGeo.segmentCount = 4
sphereGeo.materials.first?.diffuse.contents = NSColor.lightGray
let sphereNode = SCNNode(geometry: sphereGeo)
sphereNode.name = "Sphere Node"
scene.rootNode.addChildNode(sphereNode)
}
}
Physically Based Rendering
シェーディングモデルを使用している場合にのみ機能しているようです。
let material = SCNMaterial()
material.lightingModel = SCNMaterial.LightingModel.physicallyBased
sceneView.autoenablesDefaultLighting = false
.physicallyBased
モデルのシェーディングにtypeプロパティを使用すると、ライティングは想定どおりに機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加