title: SceneKit - Lighting and casting shadows
body: <p>I'm trying to create a spot light that illuminates a cube. The surface underneath should then show a shadow. Unfortunately I wasn't able to achieve this. The light ignores the cube and casts the light on both - the surface and the cube - regardless that the cube is in the way.</p>
  
  <p>How it looks like:</p>
  
  <p><img src="https://i.stack.imgur.com/s3oYl.png" alt="enter image description here"></p>
  
  <p>The code, I just set castsShadow to YES on every node for testing, but nothing so far helped:</p>
  
  <pre><code>BOOL shadows = YES;
  
  _baseNode.castsShadow = shadows;
  _scene.rootNode.castsShadow = shadows;
  
  SCNBox *box = [SCNBox boxWithWidth: 50 height: 50 length: 50 chamferRadius: 10];
  box.firstMaterial.diffuse.contents = [UIColor colorWithRed: 0.0 green:0.0 blue: 0.8 alpha: 1.0];
  box.firstMaterial.doubleSided = YES;
  SCNNode *boxNode = [SCNNode nodeWithGeometry: box];
  
  boxNode.position = SCNVector3Make(100, 100, 100);
  boxNode.castsShadow = shadows;
  [_baseNode addChildNode: boxNode];
  
  SCNBox *plane = [SCNBox boxWithWidth: 1000 height:1000 length: 40 chamferRadius: 10];
  plane.firstMaterial.diffuse.contents = [UIColor colorWithWhite: 0.2 alpha: 1.0];
  SCNNode *planeNode = [SCNNode nodeWithGeometry: plane];
  planeNode.position = SCNVector3Make(100, 100,  0);
  planeNode.castsShadow = shadows;
  [_baseNode addChildNode: planeNode];
  
  
  SCNNode *lightNode = [SCNNode node];
  lightNode.light = [SCNLight light];
  lightNode.light.type = SCNLightTypeSpot;
  lightNode.light.spotInnerAngle = 0;
  lightNode.light.spotOuterAngle = 45;
  lightNode.light.shadowRadius = 10.0;
  lightNode.light.zFar = 10000;
  lightNode.light.shadowColor = [UIColor colorWithRed: 0.0 green: 1.0 blue:0.0 alpha: 1.0];
  lightNode.castsShadow = shadows;
  lightNode.position = SCNVector3Make(100, 100, 170);
  [_baseNode addChildNode:lightNode];
  
  SCNNode *lightNode2 = [SCNNode node];
  lightNode2.light = [SCNLight light];
  lightNode2.light.type = SCNLightTypeAmbient;
  lightNode2.light.color = [UIColor colorWithRed: 0.3 green: 0.3 blue:0.3 alpha: 1.0];
  [_baseNode addChildNode: lightNode2];
  
  [_scene.rootNode addChildNode: _baseNode];
  </code></pre>
  
  <p>}</p>