Please use InstancedMesh. It will make it easier to transform individual instances like demonstrated in the official demos, e.g. three.js webgl - instancing - dynamic.
Its posible to use several materials like phong, standard, lambert in one shader and one draw calls, but bad solution, because will be very big code and warst fps
Its posible to set different colors, textures to different objects in instancedBufferGeometry and InstancedMesh
For me instancedBufferGeometry is raw solution of InstancedMesh fo custom developing.
For you maybe simple be using instancedMesh
My sprites with 13 textures is instancedBufferGeometry, 1 draw call
Could one write a custom shader that makes Instances meshes appear completely different? From what I understand one can modify the vertices with a custom shader too.
That way one could only have instanced meshes in the scene. But change the shape with a custom shader.
Or is it only possible to have the same shader code for all instances? I found this InstancedUniformsMesh where it is at least possible to change the uniforms per instance.
I’ve researched a little more and found out it can’t be done because for that (for example adding a vertex within a shader) you would need a geometry shader which WebGL does not support.