Main Menu

Textur verschwommen

Started by Xerses, May 10, 2012, 05:52:52 PM

Previous topic - Next topic

Xerses

Hallo zusammen,

ich bin gerade dabei mich mit jPCT zu beschäftigen und stoße schon auf erste Probleme. Könnte also sein, dass ich öffters hier im "German Corner" etwas poste.

Nun zu meinem eigentlichen Problem.

Wie im Titel bereits zu erkennen habe ich das Problem, dass die Textur, die ich auf eine einfache Box platzieren, deutlich verschwommen dargestellt wird. Vorallem wenn die Box rotiert wird, sieht es so aus als ob sich die Textur nicht mitrotieren würde.


import java.awt.Color;

import org.lwjgl.opengl.Display;

import com.threed.jpct.*;

public class HelloWorld {

World world;
Camera camera;
FrameBuffer buffer;
TextureManager texManager;

Object3D box;

public HelloWorld() {
Config.maxPolysVisible = 10000;
Config.farPlane = 4000;

world = new World();
world.setAmbientLight(120, 120, 120);

camera = world.getCamera();
texManager = TextureManager.getInstance();
buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_NORMAL);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);

box = Primitives.getBox(1.0f, 2.0f);
texManager.addTexture("box", new Texture("test.png"));
box.setTexture("box");
box.setEnvmapped(Object3D.ENVMAP_ENABLED);
box.build();
world.addObject(box);

camera.setPosition(0, -5, 10);
camera.lookAt(box.getTransformedCenter());

render();
}

private void render() {
while(!Display.isCloseRequested()) {
Display.sync(60);

box.rotateY(0.01f);
box.rotateX(0.01f);

buffer.clear(Color.CYAN);
world.renderScene(buffer);
world.draw(buffer);
buffer.update();
buffer.displayGLOnly();
}

buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
buffer.dispose();
System.exit(0);
}

public static void main(String[] args) {
new HelloWorld();
}
}


Die Textur sieht so aus



Und das gerenderte Bild so





VG

EgonOlsen

Da ist eigentlich nichts "verschwommen". Du hast nur Enviroment-Mapping an (box.setEnvmapped(Object3D.ENVMAP_ENABLED)) und dann sieht das eben so aus. Die Objekte, die über die Primitives-Klasse erzeugt werden, haben keine richtigen Texturkoordinaten. Deswegen schalten die Beispiele oft das Env-Mapping an, damit man überhaupt was von der Textur sieht.