Comportement des textures transparentes dans WebGL

Environnement: WebGL, Chrome. J'ai le problème suivant lors de l'utilisation transparente de la png en tant que textures pour les modèles:

  1. Image A - l'arbre cache le bâtiment derrière elle et je vois le monde de la boîte de texture. Il cache également lui-même (à l'arrière des branches ne sont pas visibles)
  2. Dans le même temps - Image B - fonctionne correctement, la fenêtre est transparente et je vois ce qui se cache derrière

Un: Comportement des textures transparentes dans WebGL
B: Comportement des textures transparentes dans WebGL

Les deux captures d'écran ont été faites sur la même scène au même moment à partir de différentes positions de la caméra. Les Textures sont produites par le même algorithme.

Je ne comprends pas quelle est la différence entre la fenêtre et les branches de la transparence. Ma principale question est - comment fixer les branches de manière à ne pas masquer les objets derrière eux? Code du Shader est:

gl_FragColor = vec4(textureColor.rgb * vLightWeighting, textureColor.a);

J'ai joué avec activer/désactiver le mélange et depth_test, parfois obtenir les résultats souhaités, mais vous ne savez pas si c'est la bonne façon de faire les choses.

source d'informationauteur Vecnas | 2012-01-06