le problème que j'ai est quand j'ai un maillage où seulement certaines des faces de ce maillage devraient être semi-transparentes tandis que le reste de l'objet devrait être opaque. Quelqu'un at-il une idée sur la façon dont je devrais résoudre ce problème?comment rendre des maillages partiellement semi-transparents?
Voici une description plus détaillée du problème pour plus de clarté: Dans notre visionneuse, nous fusionnons plusieurs maillages si elles ont les mêmes propriétés matérielles.
Ensuite, si l'utilisateur clique sur l'objet fusionné, nous trouvons la surface qui a été cliquée et l'identifiant d'origine de l'objet de ce visage. Ensuite, nous ne mettons en évidence les faces de cet objet qu'avec nos propres shaders personnalisés.
Maintenant, la question est que si nous faisons le matériau transparent (si la partie sélectionnée est semi-transparent) puis l'ensemble maille fusionnée est transparente et la partie opaque du modèle est rendu comme transparent.
Vous pouvez voir quelques-unes des questions visuelles dans cette image:
problèmes visuels pour objet partiellement transparent
j'ai eu plusieurs idées sur la façon dont nous pourrions résoudre ce problème, mais ils ont tous augmenterions la mémoire la consommation et de la complexité:
fragments de rejet qui doit être transparent puis créer une nouvelle maille avec les faces sélectionnées et des matériaux transparents.
Créez une copie de tout le maillage fusionné qui est transparent, puis restituez uniquement les faces des objets sélectionnés dans l'objet transparent et supprimez les fragments dans le maillage non transparent d'origine.
Quelqu'un a-t-il eu une meilleure idée?
en utilisant trois r84.
avez-vous '.transparent = true' pour toutes les cases? – prisoner849
toutes les boîtes sont une maille dans cet exemple donc en mettant le matériau à transparent afin que je puisse montrer certaines faces transparentes feront en sorte que toutes les boîtes soient transparentes. – Krigsdal
En utilisant le peeling en profondeur, vous pouvez réaliser ce que vous voulez, mais je pense que trois.js ne l'implémente pas nativement. Votre meilleure stratégie, je pense, est de diviser votre "maillage groupé" en plusieurs mailles et de traiter chaque "boîte" indépendamment. La transparence n'est jamais un problème trivial dans le rendu 3D. –