Frage zu Geometry und Shape3D

Status
Nicht offen für weitere Antworten.

jagdfalke

Bekanntes Mitglied
Hi,
wie ihr euch sicher denken könnt bin ich etwas weiter voran geschritten von meinem Tutorial und jetzt gehts um Geometry und Shape3D. Da war ein Beispielprogramm, das ich ein wenig verändern wollte und jetzt klappt das alles nicht und ich finde nicht heraus warum:

Code:
import javax.swing.JFrame;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import javax.vecmath.*;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.*;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import javax.swing.Timer;
import java.awt.event.*;

public class Main extends JFrame{

	private SimpleUniverse un;

	
	public Main() {
		setLayout(new BorderLayout());
		setSize(500,500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
		
		Canvas3D c=new Canvas3D(config);
		getContentPane().add(c);
		
		un = new SimpleUniverse(c);
	    	un.getViewingPlatform().setNominalViewingTransform();
	    	un.addBranchGraph(createSceneGraph());
	    
		setVisible(true);
	}
	
	
	private BranchGroup createSceneGraph() {
		BranchGroup bg = new BranchGroup();
			
		///////////////////////////////////////////////////
		// LIGHT
		///////////////////////////////////////////////////
		BoundingSphere bndSphere = new BoundingSphere(new Point3d(0f,0f,0f),100000);
		AmbientLight ambLight = new AmbientLight(new Color3f(1f,1f,1f));
			ambLight.setInfluencingBounds(bndSphere);
		bg.addChild(ambLight);
		
		
	        /////////////////////////////////////////////////////
		// SHAPE3D
		/////////////////////////////////////////////////////
		Color3f[] colors = new Color3f[3];
			colors[0] = new Color3f(1f,0f,0f);
			colors[1] = new Color3f(0f,1f,0f);
			colors[2] = new Color3f(0f,0f,1f);
		TriangleArray triangleGeoData = new TriangleArray(3, TriangleArray.COORDINATES | TriangleArray.COLOR_3);
 			triangleGeoData.setCoordinate(0, new Point3f(0f,0f,0f));
 			triangleGeoData.setCoordinate(1, new Point3f(0f,1f,0f));
 			triangleGeoData.setCoordinate(2, new Point3f(1f,0f,0f));
 			triangleGeoData.setColor(0, colors[0]);
 			triangleGeoData.setColor(1, colors[1]);
 			triangleGeoData.setColor(2, colors[2]);
		Shape3D triangle = new Shape3D(triangleGeoData);
		bg.addChild(triangle);

		
		bg.compile();
		return bg;
	}
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Main();
	}

}

Meiner Meinung nach sollte sich da jetzt ein Dreieck zeigen, das die Farben rot, grün und blau hat. Aber alles was ich sehe ich schwarz. Nichts als schwarze gähnende Leere. Kann mich nicht erinnern in schwarzes Loch da reinprogrammiert zu haben, das alles Licht anzieht sodass nichts reflektiert wird :D
Also weiß jemand was da falsch ist?

mfg
jagdfalke
 

Illuvatar

Top Contributor
Das nennt sich "Culling" und ist in den PolygonAttributes der Appearance festgelegt. So wie du die Punkte gesetzt hast (gegen den Uhrzeigersinn) sieht man nämlich die "Rückseite" des Dreiecks. Der Standardwert für das Culling ist aber CULL_BACK, d.h. Rückseite nicht zeichnen.
D.h. du hast drei Möglichkeiten ;)
a) Punkte andersrum setzen
b) CULL_FRONT verwenden
c) CULL_NONE verwenden
 

jagdfalke

Bekanntes Mitglied
Ahh verstehe, ja wenn ich Punkte anderes herum eintrage sehe ich das Dreieck. Aber warum ist die Rückseite unsichtbar??? Sollte man da nicht eigentlich auch die Farben sehen? Ich meine das Ding hat ja keine Tiefe, also sieht man von dahinter auch die Vorderseite.
Aber nochwas: Wo genau kann ich das mit dem Culling umstellen???

mfg
jagdfalke
 

Illuvatar

Top Contributor
jagdfalke hat gesagt.:
Aber warum ist die Rückseite unsichtbar??? Sollte man da nicht eigentlich auch die Farben sehen?

Das heißt nicht "Die Rückseite wird nicht gezeichnet" sondern "Wenn die Rückseite vorne ist, wird es gar nicht gezeichnet". ;)

Umstellen zB so:

Code:
Appearance app = new Appearance();
      app.setPolygonAttributes (new PolygonAttributes (PolygonAttributes.POLYGON_FILL, PolygonAttributes.CULL_NONE, 0));
      Shape3D triangle = new Shape3D(triangleGeoData, app);
 

jagdfalke

Bekanntes Mitglied
Ok danke!
War irgendwie grad verplant. Hätte selber merken müssen, dass ich einfach die Appearance ändern muss :D

mfg
jagdfalke
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Minecraft Frage für einen Minecraft Server Spiele- und Multimedia-Programmierung 2
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
S ImageSlider frage Spiele- und Multimedia-Programmierung 3
Anfänger2011 Minimap: Theoretische Frage zur Umsetzung Spiele- und Multimedia-Programmierung 2
Androbin Kollisions-Frage Spiele- und Multimedia-Programmierung 8
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
P Frage zu einem Projekt "Einarmiger Bandit" 3 Walzen / 9 Zeichnungen BLUEJ Spiele- und Multimedia-Programmierung 10
Guybrush Threepwood Ketzerische Frage: Opus-Codec für Java Spiele- und Multimedia-Programmierung 14
CookieSoft OpenGl Translatef Frage Spiele- und Multimedia-Programmierung 2
Kenan89 Theoretische Frage zu Tile Spielkarten Spiele- und Multimedia-Programmierung 9
R Tileloader Frage Spiele- und Multimedia-Programmierung 2
S Frage: NullPointer, aber warum? Spiele- und Multimedia-Programmierung 8
J Anfänger Frage wie adden? Spiele- und Multimedia-Programmierung 9
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
M.F.G. Spielvorstellung (plus KI frage): Connect Four – Extreme Spiele- und Multimedia-Programmierung 11
Helgon OpenGL Blend Frage Spiele- und Multimedia-Programmierung 18
P Frage bzgl. TextAdventure Spiele- und Multimedia-Programmierung 11
K Frage zur 3D Entwicklung zwecks vorhandener Engines Spiele- und Multimedia-Programmierung 17
V Frage zu AffineTransforms Spiele- und Multimedia-Programmierung 2
N frage zu der mp3spi Spiele- und Multimedia-Programmierung 2
J Frage zu Threads Spiele- und Multimedia-Programmierung 5
C Frage zu Ray-Picking mit JOGL Spiele- und Multimedia-Programmierung 13
M VRML Loader(noob Frage) ^^ Spiele- und Multimedia-Programmierung 3
M Prinzipielle Frage: Kann Java Grafiken ausschneiden? Spiele- und Multimedia-Programmierung 3
R Frage zu Hütchenspielprogrammierung! Spiele- und Multimedia-Programmierung 47
V Frage zu Grafiken und Software! Spiele- und Multimedia-Programmierung 5
radiac Mal eine ganz Doofe Frage... verzeiht :) Spiele- und Multimedia-Programmierung 9
Developer_X Eine Frage zur ViewBesetzung Spiele- und Multimedia-Programmierung 28
H BlueJ Frage Spiele- und Multimedia-Programmierung 13
K Malefiz programmieren - Frage zu den einzelnen Spielfeldern Spiele- und Multimedia-Programmierung 5
G Ping Pong Frage Spiele- und Multimedia-Programmierung 17
0x7F800000 allgemeine frage zu Java 3D Spiele- und Multimedia-Programmierung 12
B Frage zur Spielsteuerung bei einem rundenbasiertes Spiel Spiele- und Multimedia-Programmierung 5
G frage zu tutorial Spiele- und Multimedia-Programmierung 3
M Frage eines Anfängers Spiele- und Multimedia-Programmierung 3
N Schiffe Versenken Frage zum Spielbrett Spiele- und Multimedia-Programmierung 24
N Generelle Frage: "GUI"-Werkzeuge Spiele- und Multimedia-Programmierung 5
X Frage zu Import von CAD Zeichnungen Spiele- und Multimedia-Programmierung 4
A kurze Frage zu Java3D! (automatische Skalierung) Spiele- und Multimedia-Programmierung 3
S Poker - grundlegende frage zu paint() Spiele- und Multimedia-Programmierung 10
B Frage zum GUI-Design bei Brettspielen Spiele- und Multimedia-Programmierung 4
P Frage zum Scrolling Spiele- und Multimedia-Programmierung 23
B Frage zum Abspielen von Sounddateien Spiele- und Multimedia-Programmierung 2
J Frage zu Transform3D.mul() Spiele- und Multimedia-Programmierung 2
J Java3D: Texture-Frage Spiele- und Multimedia-Programmierung 4
C frage zu glrotated Spiele- und Multimedia-Programmierung 12
T Einsatzbereich-Frage von Java 3D Spiele- und Multimedia-Programmierung 24
S [Java2D] Performance Frage Spiele- und Multimedia-Programmierung 4
G Frage zur Sichtbarkeit von Flächen Spiele- und Multimedia-Programmierung 2
X Geometry Wars Clone Problem Spiele- und Multimedia-Programmierung 4
A Shape Geometry, wird nicht angezeigt Spiele- und Multimedia-Programmierung 6
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
aze Shape3d setApperance bleibt wirkungslos Spiele- und Multimedia-Programmierung 2
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
Developer_X Java Shape3D Example Spiele- und Multimedia-Programmierung 3
C Shape3D und Licht Spiele- und Multimedia-Programmierung 2
Quaxli Picking: Vom Shape3D zum eigentlichen Objekt Spiele- und Multimedia-Programmierung 2
F Fehlermeldung(Picking)Shape3D: nocapability to get geometrie Spiele- und Multimedia-Programmierung 7
N Shape3D Objekt auf dem Bildschirm zentrieren Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben