Je joue avec des instances et est génial.
Maintenant, j'essaye de faire en sorte que chaque instance projette des ombres mais pas de chance. J'ai fait un clone de Lambert en ajoutant la gestion de l'instance pour la position, l'échelle, etc. et ça marche, mais ça ne projette qu'une seule ombre: celle de la géométrie originale en position (0,0,0) (même si aucune instance n'est à cette position).
Quelqu'un peut-il m'indiquer où chercher pour le faire fonctionner ou est-ce une limitation d'instances ou de matériel?
Merci.TROIS.InstancedBufferGeometry et les ombres
3
A
Répondre
1
Je fixe avec cette information de ce poste: http://blog.edankwan.com/post/three-js-advanced-tips-shadow
EDIT:
J'ai fait une copie de THREE.ShaderLib.depthRGBA.vertexShader et ajouté tous les attributs (translation, échelle, rotation) et code J'ai dans le matériel qui dessine réellement les instances (utilisez THREE.ShaderChunk). THREE.ShaderLib.depthRGBA.fragmentShader reste le même.
Ensuite, je créé une nouvelle THREE.ShaderMaterial avec le nouveau VS et FS créé à l'étape précédente:
mesh.customDepthMaterial = new THREE.ShaderMaterial({
vertexShader: <my DepthRGBA vertex shader here>,
fragmentShader: THREE.ShaderLib.depthRGBA.fragmentShader,
....
});
BTW, les instances ne reçoit les ombres d'autres mailles. – arnaldof