2016-08-08 12 views
0

Ich versuche, einen Schatten meines Charakters auf einer Karte anzuzeigen, die ich habe. Ich habe eine Umgebung Licht und eine Omni Licht. Wenn ich einen Boden hinzufüge, zeigt er den Schatten/die Reflexion, aber der Boden bedeckt die Karte. With FloorVerstecke SCNFloor aber zeige Schatten mit SceneKit (swift)

Ohne einen Boden, bekomme ich keinen Schatten/Reflexion. Without Floor

Ich füge Boden wie folgt aus:

floor = SCNFloor() 
floor.reflectionFalloffEnd = 10 
floor.reflectivity = 0.5 
let floorNode = SCNNode(geometry: floor) 
floorNode.position = SCNVector3(x: 0, y: -1.0, z: 0) 
self.rootNode.addChildNode(floorNode) 

Die Karte wird erstellt mit MapBox iOS SDK (MGLMapView).

Antwort

2

In Ihren Screenshots sehe ich keinen Schatten. Ich sehe nur die Reflexion. Für Schatten benötigen Sie entweder ein Richtungs- oder Spot-Licht. Für die Reflexionen über Ihre Karte haben Sie versucht, die Kartenstruktur zu Ihrem SCNFloor? Eine andere Option ist die Verwendung eines SCNFloor mit einer Materialtransparenz von 0, die jedoch aufgrund der Überziehung Kosten verursacht.

+0

Danke für die Antwort. Ich könnte die Kartenstruktur auf dem SCNFloor anwenden, aber die Karte ändert sich ständig, abhängig davon, wo sich der Benutzer befindet. Daher ist die Textur dynamisch und kann nicht angewendet werden. Das Ändern der Materialtransparenz auf 0 hat funktioniert. Es wirft eine Reflexion wie es sollte! Aber das Omni an einen Ort zu bringen, scheint keinen Schatten zu werfen. Es gibt immer noch nur eine Reflexion. Weißt du, warum? – Fredrik