Como desenhar um avião transparente em Java 3D?
Pergunta
Eu estou tentando desenhar um avião transparente (X [0..100], Y [0..100], Z = 0) em Java 3D, mas não consigo descobrir como. Eu olhei na página de tutorial e ainda não conseguiu encontrar quaisquer programas de exemplo.
Eu estou tentando encontrar um objeto "plano" como um BranchGroup para adicionar ao meu TransformGroup existente, mas não há tal objeto plano; o que devo usar? E como faço para torná-lo transparente?
Solução
Este é um trecho de código que usei em um histograma -. Este trabalho poder em uma superfície plana
private static void createAppearances() {
normalAppearance = new Appearance();
normalAppearance.setMaterial(normalMaterial);
selectedAppearance = new Appearance();
selectedAppearance.setMaterial(selectedMaterial);
TransparencyAttributes ta = new TransparencyAttributes();
ta.setTransparencyMode (TransparencyAttributes.BLENDED);
ta.setTransparency (DEFAULT_HISTOGRAM_ALPHA);
normalAppearance.setTransparencyAttributes (ta);
selectedAppearance.setTransparencyAttributes(ta);
}
A chave é a TransparencyAttributes
se bem me lembro. Eu gostaria de poder dizer-lhe mais, mas eu não posso conseguir isso para compilar agora (faltando algumas bibliotecas antigas que não estão relacionadas com 3D).
Outras dicas
Tente este código ...
BranchGroup group = new BranchGroup(); //Content branch.
PolygonAttributes p = new PolygonAttributes(); //Not sure how to make it transparent/try code above.
Appearance planeAppearance = new Appearance();
planeAppearance.setPolygonAttributes (p);
Color3f planeColor = new Color3f (1.0f, 1.0f, 1.0f); //This makes it white.
ColoringAttributes planeCA = new ColoringAttributes (planeColor, 1);
planeAppearance.setColoringAttributes(planeCA);
QuadArray plane = new QuadArray (4, QuadArray.COORDINATES); //This makes the plane.
plane.setCoordinate(0, new Point3f(-5f, -5f, -15f)); //You specify your own cornerpoints...
plane.setCoordinate(1, new Point3f(5f, -5f, -15f));
plane.setCoordinate(2, new Point3f(5f, 5f, -15f));
plane.setCoordinate(3, new Point3f(-5f, 5f, -15f));
group.addChild(new Shape3D(plane, planeAppearance)); //Add plane to content branch.