Irrlicht: Material und Texturen aus Blender

  • Wie die meisten wissen arbeite ich am Projekt Flutch
    Nachdem ich jetzt schon einiges herausgefunden habe bin ich nun bei dem Punkt: Material und Texturen
    Es funkt eigentlich... nur das Problem ist, dass das Material keinen Schimmer oder sonst was hat...
    So kommt man sich stark danach vor als würde man sich im Zweidimensionalen bewegen..
    Seht euch einfach mal das Bild dazu an und ihr versteht was ich meine..

    Was kann ich dagegen tun?
    Ich exportiere in Blender als .obj

    MFG Schnacko

  • Ähm... einen Quellcode hab ich ^^

    [autoit]

    $MeshTexture = _IrrGetTexture( "../Meshes/md2/_test7.mtl" )
    $BSPMesh = _IrrGetMesh( "../Meshes/md2/_test7.obj" )
    $BSPNode = _IrrAddMeshToSceneAsOcttree( $BSPMesh )
    _IrrSetNodeMaterialFlag( $BSPNode, $IRR_EMF_LIGHTING, $IRR_OFF )
    _IrrSetNodeScale( $BSPNode, 10, 10, 10 )
    _IrrSetNodeMaterialTexture( $BSPNode, $MeshTexture, 0 )

    [/autoit][autoit][/autoit][autoit]

    $MD2Mesh = _IrrGetMesh( "../Meshes/md2/test5.obj" )
    $MeshTexture2 = _IrrGetTexture( "../Meshes/md2/test5.mtl" )
    $SceneNode = _IrrAddMeshToScene( $MD2Mesh )
    _IrrSetNodeScale( $SceneNode, 25, 25, 25 )
    _IrrSetNodeMaterialTexture( $SceneNode, $MeshTexture2, 0 )
    _IrrSetNodeMaterialFlag( $SceneNode, $IRR_EMF_LIGHTING, $IRR_OFF )
    _IrrPlayNodeMD2Animation( $SceneNode, $IRR_EMAT_RUN )
    $selector = _IrrGetCollisionGroupFromComplexMesh( $BSPMesh, $BSPNode )

    [/autoit]
  • Versuch mal:

    [autoit]

    _IrrSetNodeMaterialTexture( $BSPNode, $MeshTexture, 0 )

    [/autoit]


    in

    [autoit]

    _IrrSetNodeMaterialTexture( $BSPNode, $MeshTexture, 1 )

    [/autoit]


    zu ändern.
    Manchmal brauchte ich die Textur gar nicht angeben! Dann reicht es diese im RICHTIGEN Ordner zu belassen...

    [EDIT]
    bisste sicher das die .mtl Datei die Texture ist????

  • Alos laut Google ist eine .mtl Datei KEINE Texture sondern eine Materialdatei...
    Deswegen bekommste bestimmt keine Texturen angezeigt!

    [EDIT]
    Wenn ich mich recht entsinne, dann war es so: Wenn das Objekt wie in deinem Falle '_test7.obj' heißt dann mußte ich die Texture in einen Ordner packen der ebenfalls '_test7' hieß. Die durfte auch nicht umbenannt werden, dann hat es bei mir geklappt. - Ich habe Modelle von SketchUp in´s .obj exportiert; kann auch sein das SketchUp eine Verlinkung auf die Texture innerhalb des .obj gesetzt hatte....

    So Long!

    Einmal editiert, zuletzt von Techmix (16. August 2011 um 13:20)

  • wie schon erwähnt sucht sich die .obj ihr Material von allein.
    Wenns schimmern soll, kannst mal die Materialflag oder den Materialtyp ändern..

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Also meinst du eine Art lichteinstrahlung? Das wäre ganz schön kompliziert ausser die Lichtquelle befindet sich immer am gleichen Ort. Da müsste man richtigen Engines nen Alphakanal hinzufügen (ein zweifarbiges Bild bei dem eine Farbe für das Leuchten steht), aber ich weiss nicht ob Irrlicht auch mit denen Arbeitet. Vieleicht kannst du mir da mal auf die Sprünge helfen ?(

    Edit: Kann dir wenn du willst heute abend mal ein beispiel einer .mtl-datei posten. Soweit ich weiss enthält die Infos zu den anderen Texturdateien.

    Bild1: Ich beim debuggen

    Einmal editiert, zuletzt von General Kaboom (16. August 2011 um 13:52)

  • Muss ich jetzt die Textur in den Selben Ordner kopieren mit dem namen _test7
    oder muss ich sie in einen ordner kopieren der _test7 heißt?

  • Ich hab jetzt die Textur (.bmp) die ich in Blender verwendet habe in den Ordner kopiert wo die .obj ist...
    und sie dann im programm dann auch aufgerufen..
    Dennoch keine Veränderung...
    Hat jemand einen Plan was ich tun soll?

  • Kleine Info, in SciTe erscheint in der Konsole:

    Spoiler anzeigen

    Could not load texture: ../Meshes/md2/_test7.mtl
    Loaded mesh: ../Meshes/md2/_test7.obj
    Needed 3ms to create Octree SceneNode.(45 nodes, 3590 polys)
    Could not open file of texture: E:/Downloads/Flutch_test/SKRIPT/Meshes/md2/C://Users//Franz
    Could not open file of texture: E:/Downloads/Flutch_test/SKRIPT/Meshes/md2/C://Users//Franz

    Ich schau später nochmal nach, hab jetzt grad zu tun ;)

  • Du hast recht..
    Aber was soll ich da machen?
    Needed 3ms to create Octree SceneNode??

    Schwierig... Aber da muss das Problem liegen...

    Und was ist das für ein Pfad?... den gibt es doch garnicht...

  • Also ich denke du solltest mal versuchen die Modelle entweder in ein anderes Format zu exportieren oder ein anderes Programm zum umwandeln zu benutzen.

    Das man 'E:/Downloads/Flutch_test/SKRIPT/Meshes/md2/C://Users//Franz' in der Console lesen kann, liegt an irgendeiner Verknüpfung innerhalb eines Meshes (denke ich...)

    Ich habe auch versucht alles mögliche innerhalb des Scriptes zu ändern, ohne erfolg ...kann somit nur noch an den Modellen liegen

    Grüsse!

    [EDIT]
    eine Fehlermeldung habe ich so weg bekommen:

    [autoit]

    dim $dir=_PathFull(@ScriptDir & "\..\Meshes\md2\") ; <--
    $MeshTexture = _IrrGetTexture($dir&"test5.bmp" )

    [/autoit]
  • Danke.. Hilft!

    Ich hab bereits geschaft das 2-Dimensional verhalten zu eliminieren in dem ich ein Licht hinzufüge..
    Doch die Textur wird immer noch nicht angezeigt..

    Vielleicht hilft es, wenn man die Textur nicht verlinkt sondern mitexportiert... suzusagen..
    ich sag dem Programm einfach das die Textur ein Material ist.. denn das Material wird mitexportiert... ^^