<p dir="auto">(*** This section is for bug reports and feature requests only. This is NOT a help site. Do not ask help questions here. If you need help, please use stackoverflow. ***)</p>
<h5 dir="auto">Description of the problem</h5>
<p dir="auto">It seems like the standard geometries have faces as indices/elements. But it appears like gl.drawArrays is being used. I'm assuming that there is a way for drawElements to be used instead, to minimize the attribute buffer sizes, using the face element/index values.</p>
<p dir="auto">Also, as I get into ShaderMaterials, I'd prefer to have attribute arrays the size of the number of unique vertices, with color, positions etc the same size as well, using drawElements to manage duplications .. i.e. 4 vertices per rectangle, with 6 elements for its two triangles.</p>
<p dir="auto">What is the method used to have WebGLRenderer use drawElements? Possibly WebGLIndexedBufferRenderer?</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=""> r84</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> ...</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" checked=""> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> 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" checked=""> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> 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">It would be great if derived Materials (e.g. Phong, Normal, etc.) allowed the user to pass an existing instance of a material to the Clone() method, as you can with base materials.</p>
<p dir="auto">I think this would just require (Phong for example):</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="if ( material === undefined ) material = new THREE.MeshPhongMaterial();"><pre class="notranslate"><code class="notranslate">if ( material === undefined ) material = new THREE.MeshPhongMaterial();
</code></pre></div>