Seite 1 von 1

CreateEntity erzeugt "Illegal Memory Access"

Verfasst: 04.01.2006 20:54
von knustotron
hallo erstmal!

habe mir vorgenommen mich jetzt mal an die 3d programmierung zu machen. natürlich mit pure und der ogre engine. leider bekomm ich aber nichteinmal fertig, ein einfaches texturiertes mesh auszugeben.

hier der text:

Code: Alles auswählen

InitEngine3D()
InitSprite()

OpenScreen(800,600,16,"test") 

 CreateCamera(0,  0,  5, 100, 90) 
 CameraLocate(0, 33, 56, -66) 
 CameraLookAt(0, 10, 10, 15)
 
    me=LoadMesh   (0   , "Robot.mesh") 
    tex=LoadTexture(1, "r3skin.jpg")  
    mat=CreateMaterial(2, TextureID(1))
    
     CreateEntity(3, MeshID(0), CreateMaterial(2, LoadTexture(1, "r2skin.jpg")))
  
   ; CreateEntity(3, MeshID(0), MaterialID(2))

  Repeat
  
   RenderWorld()
   FlipBuffers()
   
  Until KeyboardPushed(#PB_Key_Escape)
  


End  
  
das mesh und die textur befinden sich im selben verzeichniss, wie der quelltext. sie werden (laut dem debugger) auch korrekt geladen.
allerdings gibt es einen "Invalid memory access" in der zeile

CreateEntity(3, MeshID(0), CreateMaterial(2, LoadTexture(1, "r2skin.jpg")))

bzw.

CreateEntity(3, MeshID(0), MaterialID(2))

(natürlich führe ich den befehl nicht zweimal aus, er dient nur, als "alternative", die allerdings auch nicht klappt).


ich danke schonmal im voraus um die hilfe

Lösung?

Verfasst: 17.01.2006 14:01
von lol
Hallo,
find ich gut das du auch dich an der 3D Programmierung versuchst.
Aber das ist wirklich schwer, wenn man nicht mal 2D programmieren kann, ( ich geh davon aus ).
Du kannst am besten lernen, wenn du die Beispiele im Purebasic Ordner, oder die Source (Quellcodes) durch liest und zuerst versuchst, z.B. ein Bild oder ein Mesh zu drehen.
-------------
Du machst einen dummen Fehler.
Du lädst doppelt die Textur, und willst die doppelt geladne Textur direkt beim erstellen des "3" Mesh´s mit einladen.
Hier mit müsste dein Problem gelösst sein.

<code>


CreateEntity(3, MeshID(0), mat) ---> Ich vermute mal dass das geht, ansonsten würd ich dann mal


CreateEntity(3, MeshID(0),MaterialID(2))

</code>

--> Nebei, das Mesh wird doch gar nicht dargestellt oder?

Meld dich bitte wieder, wenn es Probleme noch gibt.