<h5 dir="auto">Description of the problem</h5>
<p dir="auto">If all of the coordinates in <code class="notranslate">Box3</code> are set to <code class="notranslate">NaN</code>, then <code class="notranslate">empty()</code> returns false. This is troublesome for cases where we use <code class="notranslate">applyMatrix4()</code> transformations to empty boxes and expect them to remain empty.</p>
<h5 dir="auto">Three.js version</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Dev</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> r75</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> r73</li>
</ul>
<h5 dir="auto">Browser</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Chrome</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Firefox</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Internet Explorer</li>
</ul>
<h5 dir="auto">OS</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Windows</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Linux</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Android</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> IOS</li>
</ul>
<h5 dir="auto">Hardware Requirements (graphics card, VR Device, ...)</h5>
<p dir="auto">I think the new (and awesome!) feature of point lights with shadows has an issue.</p>
<p dir="auto">I've been playing with the feature using this example:<br>
three.js-dev/examples/webgl_shadowmap_pointlight.html</p>
<p dir="auto">and the only thing I did was adding disabling a shadow on existing light and adding a new light (in a most straightforward way):</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="//(...)
pointLight.castShadow = false; //that is the original light, shadow disabled
//(...)

//literally copypasted and added '2' everywhere
pointLight2 = new THREE.PointLight( 0xff0000 );
pointLight2.castShadow = true;
pointLight2.shadowCameraNear = 1;
pointLight2.shadowCameraFar = 30;
pointLight2.shadowDarkness = 0.5;
pointLight2.shadowMapWidth = 2048;
pointLight2.shadowMapHeight = 1024;
pointLight2.shadowBias = 0.01;
scene.add( pointLight2 );

var geometry2 = new THREE.SphereGeometry( 0.3, 32, 32 );
var material2 = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
var sphere2 = new THREE.Mesh( geometry2, material2 );
sphere2.castShadow = false;
sphere2.receiveShadow = false;
pointLight2.add( sphere2 );"><pre class="notranslate"><span class="pl-c">//(...)</span>
<span class="pl-s1">pointLight</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span> <span class="pl-c">//that is the original light, shadow disabled</span>
<span class="pl-c">//(...)</span>

<span class="pl-c">//literally copypasted and added '2' everywhere</span>
<span class="pl-s1">pointLight2</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-c1">THREE</span><span class="pl-kos">.</span><span class="pl-c1">PointLight</span><span class="pl-kos">(</span> <span class="pl-c1">0xff0000</span> <span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowCameraNear</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowCameraFar</span> <span class="pl-c1">=</span> <span class="pl-c1">30</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowDarkness</span> <span class="pl-c1">=</span> <span class="pl-c1">0.5</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowMapWidth</span> <span class="pl-c1">=</span> <span class="pl-c1">2048</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowMapHeight</span> <span class="pl-c1">=</span> <span class="pl-c1">1024</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">shadowBias</span> <span class="pl-c1">=</span> <span class="pl-c1">0.01</span><span class="pl-kos">;</span>
<span class="pl-s1">scene</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span> <span class="pl-s1">pointLight2</span> <span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-k">var</span> <span class="pl-s1">geometry2</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-c1">THREE</span><span class="pl-kos">.</span><span class="pl-c1">SphereGeometry</span><span class="pl-kos">(</span> <span class="pl-c1">0.3</span><span class="pl-kos">,</span> <span class="pl-c1">32</span><span class="pl-kos">,</span> <span class="pl-c1">32</span> <span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-k">var</span> <span class="pl-s1">material2</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-c1">THREE</span><span class="pl-kos">.</span><span class="pl-c1">MeshBasicMaterial</span><span class="pl-kos">(</span> <span class="pl-kos">{</span> <span class="pl-c1">color</span>: <span class="pl-c1">0xff0000</span> <span class="pl-kos">}</span> <span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-k">var</span> <span class="pl-s1">sphere2</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-c1">THREE</span><span class="pl-kos">.</span><span class="pl-c1">Mesh</span><span class="pl-kos">(</span> <span class="pl-s1">geometry2</span><span class="pl-kos">,</span> <span class="pl-s1">material2</span> <span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">sphere2</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span>
<span class="pl-s1">sphere2</span><span class="pl-kos">.</span><span class="pl-c1">receiveShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span> <span class="pl-s1">sphere2</span> <span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">It seems, however, that if the shadow is added on any light which is not the first added to the scene, shadows kind of mess up:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/11149454/10148404/89a08052-6633-11e5-980c-8a8d82b13cbd.png"><img src="https://cloud.githubusercontent.com/assets/11149454/10148404/89a08052-6633-11e5-980c-8a8d82b13cbd.png" alt="shadows" style="max-width: 100%;"></a></p>
<p dir="auto">The top example has</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="pointLight.castShadow = false;
pointLight2.castShadow = true;"><pre class="notranslate"><span class="pl-s1">pointLight</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">and the bottom one has it inverted (and works okay):</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="pointLight.castShadow = true;
pointLight2.castShadow = false;"><pre class="notranslate"><span class="pl-s1">pointLight</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">;</span>
<span class="pl-s1">pointLight2</span><span class="pl-kos">.</span><span class="pl-c1">castShadow</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">And if both lights have shadow, then even weirder thing happens:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/11149454/10148442/d196966c-6633-11e5-8026-cd56da9eca3d.png"><img src="https://cloud.githubusercontent.com/assets/11149454/10148442/d196966c-6633-11e5-8026-cd56da9eca3d.png" alt="shadows2" style="max-width: 100%;"></a></p>
<p dir="auto">Local environment: <em>Chrome 45.0.2454.101 m</em>, Windows 7 64bit, ASUS Radeon HD 6950 2GB<br>
Behaves the same way on <em>Firefox 40.0.3</em> and on <em>Internet Explorer 11 (11.0.9600.18015)</em></p>