2016-06-12 17 views
0

Ich habe Probleme beim Rendern eines Modells in libGdx.
Ich habe ein einfaches Automodell im Mixer erstellt, aber wenn ich es in libGdx rendere, wird es falsch gerendert.
Dies ist, was es in den Mixer sieht (wie es aussehen soll): Dies ist, wie es aussieht, ist in Libgdx enter image description hereBlender-Modell wird falsch in libGDX gerendert

:

Wie Sie die Räder alle sehen können, die falsche Richtung zeigend, die keinen Sinn ergibt, weil ich sie überhaupt nicht umwende.

Es funktioniert, wenn nur 1 Objekt im Modell ist, aber wenn ich weitere Objekte wie die Räder hinzufüge, passiert dies.

Hier ist meine create() Methode:

public void create() { 
    camera=new PerspectiveCamera(67,800,480); 
    camera.position.set(0f, 0f, 20f); 
    camera.lookAt(0f, 0f, 0f); 
    camera.near=1f; 
    camera.far=100f; 

    batch=new ModelBatch(); 
    builder=new ModelBuilder(); 

    UBJsonReader jsonreader=new UBJsonReader(); 
    G3dModelLoader modelloader=new G3dModelLoader(jsonreader); 
    cubemodel=modelloader.loadModel(Gdx.files.getFileHandle("carmodel.g3db", Files.FileType.Internal)); 
    cube=new ModelInstance(cubemodel,0,0,0); 


    environment=new Environment(); 
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight,0.65f,0.65f,0.65f,1f)); 


} 

Hier ist meine render() Methode: carmodel.g3db

Wenn Sie irgend etwas anderes brauchen:

public void render() { 
    Gdx.gl.glClearColor(1, 1, 1, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); 

    Gdx.gl20.glEnable(GL20.GL_DEPTH_TEST); 
    camera.update(); 
    batch.begin(camera); 
    batch.render(cube, environment); 
    batch.end(); 
    camera.rotateAround(new Vector3(0f, 0f, 0f), new Vector3(0f, 1f, 0f), 0.5f); 
} 

Hier mein Modell ist dann frag und ich werde es posten.

Vielen Dank im Voraus!

+0

Das Nah/Nah-Verhältnis Ihrer Kamera beträgt 10.000! Reduziere das auf etwas weniger fehleranfälliges, wie 100. – Xoppa

+0

@Xoppa bereits versucht und es hat nicht funktioniert. Ich habe in der Nähe von 10 und weit 1000 – Paul

Antwort

1

Es ist eine Weile her, seit ich Blender benutzt habe, aber das sind die Einstellungen, die ich verwendet habe, um die Modellausrichtung in LibGDX zu finden. Dies stellt es so ein, dass wenn Sie die gleiche Ausrichtung und Position für Ihre LibGDX-Kamera wie Ihre Blender-Kamera verwenden, die Szenen identisch sind.

  1. Erstellen Sie Ihre Modelle normal. Speichern Sie die Blender-Datei.
  2. Drehen Sie jedes Modell um seine Mitte um 90 Grad um die + X-Achse und wenden Sie die Transformation an.
  3. Exportieren Sie das/die Modell (e) -Z vorwärts und Y nach oben.
  4. Speichern Sie die Blender-Datei nicht, da Sie die Modelle möglicherweise weiter in der ursprünglichen Ausrichtung ändern möchten.
+0

Ich entschuldige mich, wenn meine Frage vage schien, ist die Ausrichtung des Modells nicht das Problem. Die Modellausrichtung ist in Ordnung. Das Problem ist, dass das Modell nicht ordnungsgemäß gerendert wird. – Paul

+0

Ok, dann sieht es so aus, als ob die Normalen Ihres Modells invertiert sind. – Tenfour04

+0

oh, könntest du mir sagen, wie man sie wieder umkehrt, damit sie normal sind? Vielen Dank, ich habe mich gefragt, was das Problem für über einen Tag war. – Paul