# jPCT rendert nur einen schwarzen Bildschirm



## Illuvatar (7. Nov 2004)

Ich habe mal versucht, mit Hilfe des "fps" - Beispielprogramms ein Programm zu schreiben, das nichts weiter machen soll, als mit jPCT/LWJGL einen einfachen Würfel zu rendern. Die Ausgabe ist allerdings ein schwarzes Fensterchen. Das ist der Code:

```
package main;

import com.threed.jpct.*;
import java.io.*;

public class JPCTTest 
{
	public JPCTTest()
	{
		World w = new World ();
		World.setDefaultThread(Thread.currentThread());
		Thread.currentThread().setPriority(Thread.NORM_PRIORITY);
		FrameBuffer fb = new FrameBuffer (800, 600, FrameBuffer.SAMPLINGMODE_NORMAL);
		fb.optimizeBufferAccess();
		fb.disableRenderer(IRenderer.RENDERER_SOFTWARE);
		fb.enableRenderer(IRenderer.RENDERER_OPENGL); //OpenGL aktivieren
		fb.optimizeBufferAccess();
		Object3D o = Primitives.getBox(10, 10); //Würfel
		o.translate(0, 0, -15); //Würfel versetzen
		o.translateMesh();
		o.setTranslationMatrix(new Matrix());
		o.createTriangleStrips(2); //gut für die performance mit OpenGL
		o.enableLazyTransformations(); //es bewegt sich ja eh nix
		w.addObject(o);
		w.buildAllObjects();
		while (true){
			fb.clear();
			w.renderScene(fb);
			w.draw(fb);
			fb.update();
			fb.displayGLOnly();
		}
	}
}



//und die Startklasse

package main.start;

import main.*;

public class Mainclass 
{
	public static void main(String[] args)
	{
		JPCTTest sm = new JPCTTest();
	}	
}
```

Kennt sich da jemand aus und weiß, wo der Fehler ist?


----------



## EgonOlsen (26. Nov 2004)

Sorry, bin ein wenig spät dran mit einer Antwort, aber ich habe den Thread vorher leider nicht gesehen. Die Lösung ist recht einfach und besteht aus zwei Teilen: Zum einen ist der Defaultwert des Umgebungslichts -100, d.h. alles wird verdunkelt. Da du keine sonstige Lichtquelle gesetzt hast, wird aus dunkel+noch mehr dunkel=ganz dunkel. Ein w.setAmbientLighting(255,255,255); sollte hier helfen. Ferner geht Z bei jPCT in den Bildschirm hinein, d.h. du musst die -15 in was positives (100 oder so) ändern, sonst schiebst du alles hinter den Betrachter. Dann sollte was zu sehen sein.
Ach ja: getBox(10,10) liefert ein ziemlich langes Gebilde, weil die zweite 10 nicht die absolute Höhe angibt, sondern relativ zur ersten arbeitet. 10,1 wäre demnach ein Quader.


----------



## Illuvatar (26. Nov 2004)

Ui, der große jPCT-Master is ja auch in dem Forum 
Danke schonmal für die Antworten, ich hab grad net soviel Zeit, ich schaus mir nachher mal an.


----------

