Textur, md2 und Irrlicht

  • Hallo verehrte Community,

    ich habe gerade ein kleine Klausurenpause und versuche mich an der Irrlicht-Engine.
    Ich habe ein md2-Model in Blender erstellt und nutze das in AutoIt. Nun möchte ich dem ganzen auch noch eine Textur überziehen; allerdings erhält das Objekt
    immer nur den Durchschnittsfarbwert der Textur und nicht die Textur an sich:
    [Blockierte Grafik: http://www.imagebanana.com/view/cmc6kqdz/dameohnetextur.jpg]
    Bild
    Das gleiche Problem gab es wohl hier: [ gelöst ] [Irrlicht] Eigenes Model -> Textur ?
    Allerdings hilft mir die dort genannte Lösung nicht weiter; ich habe für Blender ein Python-Skript installiert, dass mir den Export in md2 erlaubt.
    Allerdings wird einfach keine Textur über das Bild gezogen.

    Skript:

    Skript
    [autoit]


    #include "Irrlicht/Irrlicht.au3"

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

    Opt("MustDeclareVars", True)
    HotKeySet("{ESC}", "_exit")

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

    Global $BSPMesh, $BSPNode, $Camera
    Global $screen_width, $screen_height
    Global $MD2Mesh, $SceneNode, $MeshTexture

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

    $screen_width = 800
    $screen_height = 600

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

    _IrrStart($IRR_EDT_OPENGL, $screen_width, $screen_height, $IRR_BITS_PER_PIXEL_32, $IRR_WINDOWED, $IRR_SHADOWS, $IRR_IGNORE_EVENTS, $IRR_VERTICAL_SYNC_OFF)
    _IrrSetWindowCaption("Irrlichtgehversuch")

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

    ;_IrrAddZipFile("Irrlicht/media/map-20kdm2.pk3", $IRR_IGNORE_CASE, $IRR_IGNORE_PATHS)
    ;$BSPMesh = _IrrGetMesh("20kdm2.bsp")
    ;$BSPNode = _IrrAddMeshToSceneAsOcttree($BSPMesh)

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

    $MD2Mesh = _IrrGetMesh("dame.md2")
    $SceneNode = _IrrAddMeshToScene($MD2Mesh)
    $MeshTexture = _IrrGetTexture("holztextur.png")
    _IrrSetNodeMaterialTexture($SceneNode, $MeshTexture, 0)
    _IrrSetNodeMaterialFlag($SceneNode, $IRR_EMF_LIGHTING, $IRR_OFF)

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

    _IrrSetNodeScale($SceneNode, 5, 5, 5)

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

    $Camera = _IrrAddFPSCamera()

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

    _IrrSetNodePosition($Camera, 1500, 93, 1369)
    _IrrSetCameraTarget($Camera, 1600, 93, 1369)

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

    _IrrSetNodePosition($SceneNode, 1600, 93, 1369)
    _IrrHideMouse()

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

    While _IrrRunning()
    _IrrBeginScene(255, 255, 255)
    _IrrSetNodePosition($SceneNode, 1600, 93, 1369)
    _IrrDrawScene()
    _IrrEndScene()
    WEnd

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

    Func _exit()
    _IrrStop()
    Exit
    EndFunc ;==>_exit

    [/autoit]

    Die Models, Irrlicht etc. waren leider zu groß für den Anhang;
    ich hab sie hier hochgeladen:
    Download ZIP von FTP-Server
    Die Textur ist das Holzbrett (Holztextur.png).

    Viele Grüße und Dank im Vorraus
    stay

    PS: Das Skript entstammt zu großen Teilen Schnacko's Irrlicht Tutorial.

  • Nabend!
    Also so wie ich das sehe ist der Source so wie er ist OK - Dann kann es nur noch an dem Model oder dem Format (.md2) liegen. Versuche mal das Model in ein anderes Format zu bringen, mit .obj habe ich gute Erfahrungen machen können!

    ...nach weiteren Versuchen habe ich festgestellt das die Textur nicht richtig auf das Model gezogen wird! Ich habe einfach eine rote Fläche als .png erstellt und diese Textur verwendet - das Model ist dann auch rot... Also erneut das Model prüfen - wenn du ein anderes Model (nicht selber erstellt) nimmst, funktioniert auch das richtige Texturieren.

    Grüsse!

  • Hi,

    vielen Dank für deine Antwort! Ich hab' es auch bereits mit dem obj-Format versucht (befindet sich im selben Ordner). Leider ist das Ergebnis dasselbe! Ich erhalte allerdings noch eine mtl-Datei dazu, mit der ich nichts anzufangen weiß.
    Werde noch ein paar Formate ausprobieren.
    Gruß stay

  • Hmmm...
    Also die .mtl Datei enthällt Angaben zur Textur (Datei und andere Werte) du mußt nur die .obj Laden und diese lädt anschliessend die .mtl Datei eigenständig und Texturiert damit das Model.

    Ich habe ja schon viele 'selbstbau' Meshes gesehen - und die meißten sind leider iwie Fehlerhaft. Und genau das vermute ich auch bei deinem Model, irgendwas ist bei dem Erstellen nicht richtig und das verursacht jetzt das Texturenproblem!

    Ich kann mit 100%iger Sicherheit sagen das es weder an Irrlicht oder an deinem Source liegt - also bleibt nur noch das Model.


    Grüsse!