Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Java Discussion :

[Java 3D] Transparence partielle


Sujet :

3D Java

  1. #1
    Membre du Club
    [Java 3D] Transparence partielle
    Bonjour,

    Je travaille sur une scène 3D avec Java 3D, laquelle comporte un repère 3D dessiné à la main (x,y,z), ainsi que dans celui-ci, un nombre important de cubes de couleurs différentes les uns sur les autres (comme des legos).

    Ces derniers ont la propriété d’être transparents, pour faire apparaître les cubes les plus au centre.

    Toutefois j'aimerais que ces cubes ne laissent pas passer les lignes des repères quand ils se trouvent derrière (c'est-à-dire quand on regarde un cube en particulier, on voit seulement par transparence les cubes qui se trouvent derrière lui, mais pas autre chose comme les lignes de repère).

    Est-il possible de faire ceci en Java 3D ?

    Merci d'avance pour votre aide.
    Elle m'a dit "Le soleil est en toi et tout tourne autour du soleil"

  2. #2
    Membre actif
    Il me semble que l'utilisation de shaders permet un rendu de ce type. La logique suivie serait :
    • rendu de tous les cubes en noir, sur un fond blanc,
    • enregistrement de ce rendu dans une image temporaire,
    • rendu de ta scène normalement,
    • rendu du repère en utilisant un shader qui se base sur ton image temporaire pour n'afficher que les parties qui correspondent à la zone blanche.

    Bien entendu, le choix du noir et du blanc pour le rendu de tes cubes dans une image temporaire est arbitraire. Simplement, j'aurais tendance à faire ces choix de couleurs-là car au niveau du fragment shader, multiplier une couleur par du blanc te permet de retrouver ta couleur, et par du noir, cela te permet d'éliminer l'information.
    C'est un petit peu le même raisonnement que les masques de calque sous Photoshop / Gimp (si jamais tu connais).
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer