<p dir="auto"><a href="https://threejs.org/docs/#api/en/materials/SpriteMaterial.sizeAttenuation" rel="nofollow">.sizeAttenuation</a> property works great at any zoom level but when perspective camera fov is changed ..the size is not maintained.</p>
<p dir="auto">fiddle <a href="https://jsfiddle.net/orion_prime/exfmp6nw/92/" rel="nofollow">https://jsfiddle.net/orion_prime/exfmp6nw/92/</a></p>
<p dir="auto">I'm using PerspectiveCamera and a model including some Points using a PointsMaterial. I'm using a customised version of OrbitControls.js to allow the viewing of a large and complex model.  One of the changes is that zoom function changes the FOV of the camera instead of moving it closer. The camera moves to show a specfic part of the models. I've noticed that the PointsMaterial attenuation changes sizes when the camera moves closer to the model but not when the FOV is changed.</p>
<p dir="auto">I assume the size algorithm uses distance to the camera but not FOV? I've never posted to this repo before so excuse me if I miss something. I tried to test with IE but cannot get it to load the page at the moment. Equally, not sure exactly which version of Three it is but within the last year.</p>
<p dir="auto">Code that creates the PointsMaterial:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="var texFlame = new THREE.TextureLoader().load(&quot;textures/flame.png&quot;);
mtlFlame = new THREE.PointsMaterial ({size: 2, sizeAttenuation: true, color: 0xffffff, transparent: true,  blending: THREE.AdditiveBlending, depthWrite: false, map: texFlame});"><pre class="notranslate"><code class="notranslate">var texFlame = new THREE.TextureLoader().load("textures/flame.png");
mtlFlame = new THREE.PointsMaterial ({size: 2, sizeAttenuation: true, color: 0xffffff, transparent: true,  blending: THREE.AdditiveBlending, depthWrite: false, map: texFlame});
</code></pre></div>
<p dir="auto">The code that changes FOV is similarly unexciting:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="this.camera.fov = fov;
this.camera.updateProjectionMatrix ();"><pre class="notranslate"><code class="notranslate">this.camera.fov = fov;
this.camera.updateProjectionMatrix ();
</code></pre></div>
<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"> r87</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> ...</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" checked=""> 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"> macOS</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">Don't know if this is hardware specific but it seems unlikely. I'm using GeForce GTX950 in Windows 10.</p>