MP3D Alpha 32
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: MP3D Alpha 30
Hi,
und ich Danke Dir zum erstellen des Wrappers. Ich werde sicher auch noch mehr 2D Physik Funktionen einbauen. Ist nur der Anfang...
Gruß Michael
und ich Danke Dir zum erstellen des Wrappers. Ich werde sicher auch noch mehr 2D Physik Funktionen einbauen. Ist nur der Anfang...
Gruß Michael
Working on
- LibSGD - MP3D Engine - 


-
- Beiträge: 148
- Registriert: 02.02.2010 18:22
- Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
- Wohnort: Westerwald
Re: MP3D Alpha 30
Hallo Michael,
beim Testen deiner Demos kommt bei mir die Fehlermeldung üngüldiger Speicherzugriff an Adresse 0.
MP_CreateMyShader (MyEffect), dieser Befehl löst ihn aus...
Die Kollisionen sind nicht richtig, manchmal bekomme ich überhaupt keine Kosllision angezeigt und
dann erst wenn die zwei Objekte sich einen halben Meter (Späßle..) überlappen.
Wenn ich das Testobjekt noch rein, oder raus zoome, stimmt überhaupt nichts mehr.
LG Drago
beim Testen deiner Demos kommt bei mir die Fehlermeldung üngüldiger Speicherzugriff an Adresse 0.
MP_CreateMyShader (MyEffect), dieser Befehl löst ihn aus...
Die Kollisionen sind nicht richtig, manchmal bekomme ich überhaupt keine Kosllision angezeigt und
dann erst wenn die zwei Objekte sich einen halben Meter (Späßle..) überlappen.
Wenn ich das Testobjekt noch rein, oder raus zoome, stimmt überhaupt nichts mehr.
LG Drago
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: MP3D Alpha 30
Hi Drago,
das hört sich nach einer sehr sehr alte Grafikkarte an, die keine Shaderunterstüzung hat und nur Texturgrössen im Verhältnis von 2(4,8,16 etc) kennt. Bitte starte mal das MP_Grafikkartencheck.pb Programm aus den Extras Ordner und sagen genau was das Program anzeigt...
Gruß Michael
das hört sich nach einer sehr sehr alte Grafikkarte an, die keine Shaderunterstüzung hat und nur Texturgrössen im Verhältnis von 2(4,8,16 etc) kennt. Bitte starte mal das MP_Grafikkartencheck.pb Programm aus den Extras Ordner und sagen genau was das Program anzeigt...
Gruß Michael
Working on
- LibSGD - MP3D Engine - 


-
- Beiträge: 148
- Registriert: 02.02.2010 18:22
- Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
- Wohnort: Westerwald
Re: MP3D Alpha 30
Ich glaube nicht das es daran liegt, aber hier die Daten..
Maximale Grösse der Textur : 4096
Muß Quadratisch sein : nein
Muß vielfaches von 2 sein : nein
Vertex Shaderversion : 300
Pixel Shaderversion : 300
Meine Karte:
Nvidia Geforce 6610 XL mit 128 Mb Ram
Maximale Grösse der Textur : 4096
Muß Quadratisch sein : nein
Muß vielfaches von 2 sein : nein
Vertex Shaderversion : 300
Pixel Shaderversion : 300
Meine Karte:
Nvidia Geforce 6610 XL mit 128 Mb Ram
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: MP3D Alpha 30
Hi,
das sieht wirklich Okay aus. Ich habe auch eine Nvidea Grafikkarte und die zeigt das Gleiche an. Funktioniert es bei allen Shadern und bei allen Kollissionsdemos nicht? oder gibt es Demos die gut funktionieren?
Und ganz wichtig, funktioniert den die Kollissionsprüfung bei dieser Exe Datei?
http://forums.purebasic.com/german/view ... 12&t=22588
Gruß Michael
das sieht wirklich Okay aus. Ich habe auch eine Nvidea Grafikkarte und die zeigt das Gleiche an. Funktioniert es bei allen Shadern und bei allen Kollissionsdemos nicht? oder gibt es Demos die gut funktionieren?
Und ganz wichtig, funktioniert den die Kollissionsprüfung bei dieser Exe Datei?
http://forums.purebasic.com/german/view ... 12&t=22588
Gruß Michael
Working on
- LibSGD - MP3D Engine - 


Re: MP3D Alpha 30
@MPZ: Die mp3d lib ist ja beachtlich gewachsen - auf einen ersten kurzen Blick gar nicht
zu überschauen was das alles kann
Wie geht es denn damit weiter und welchen Stand hast Du damit erreicht?
Kann man das für ein größeres kommerzielles Projekt einsetzen und wird
das noch weiter entwickelt?
Worauf basiert diese Lib eigentlich? Kann die Lib inkompatibel werden
mit zukünftigen PB Versionen?
Ich habe die Idee eine Art Pinnwand zu programmieren, an der man seine Bilder
aufhängen, ausrichten und gestalten kann, quasi Funktionen eines Fotobuch-Editors.
Noch bin ich unentschlossen das ggf. mit nem Canvas Gadegt oder Sprites, oder
sogar mit Ogre zu machen, da es auch Beleuchtungseffekte geben soll...
Wäre Deine Lib dafür ebenfalls geeignet - sogar besser geeignet?
Ciao Dige
zu überschauen was das alles kann

Wie geht es denn damit weiter und welchen Stand hast Du damit erreicht?
Kann man das für ein größeres kommerzielles Projekt einsetzen und wird
das noch weiter entwickelt?
Worauf basiert diese Lib eigentlich? Kann die Lib inkompatibel werden
mit zukünftigen PB Versionen?
Ich habe die Idee eine Art Pinnwand zu programmieren, an der man seine Bilder
aufhängen, ausrichten und gestalten kann, quasi Funktionen eines Fotobuch-Editors.
Noch bin ich unentschlossen das ggf. mit nem Canvas Gadegt oder Sprites, oder
sogar mit Ogre zu machen, da es auch Beleuchtungseffekte geben soll...
Wäre Deine Lib dafür ebenfalls geeignet - sogar besser geeignet?
Ciao Dige
"Papa, ich laufe schneller - dann ist es nicht so weit."
Re: MP3D Alpha 30
Die Antwort lautet: Dreimal Ja!dige hat geschrieben:Wäre Deine Lib dafür ebenfalls geeignet - sogar besser geeignet?
Ciao Dige
Ja ist geeignet.
Und Ja ist besser geeignet, weil: Wenn Du einen Wunsch hast Du garantiert! davon ausgehen kannst, dass sich Michael darum kümmert, dass es Bestandteil der MP3D Lib wird (ausser es passt gar nicht).
Und Ja: Michael ist aktiv dran. Sicher wird demnächst eine neue Version rauskommen.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: MP3D Alpha 30
Hi Dige,
ich bin immer noch dabei das Eine oder Andere dazu zu bauen. Testen tue ich es mit Nvidea und Ati Grafikkarten (habe aber keine uralten Karten mehr). Neue Funktionen kommen dazu, werden derzeit meist auf Anwenderwunsch mit eingebaut. Prinzipiell haben ich die Funktionen schon drin die ich reinbringen wollte. Ich bin gerade dabei ein Shadertutorial vorzubereiten so das man selber damit basteln kann und diese Shader auch gleich in seine MP3D Anwendungen einbauen kann.
Die Lib basiert auf DX9, Newton Physic, Chipmunk und ist komplett in PB geschrieben. Sollte ich das Projekt aufgeben werde ich die Sourcen frei geben. Damit soll die lib auch zukünftig mit PB arbeiten können...
Was Effekte betrifft kenne ich nichts vergleichbares (bei über 100 Shader)...
Gruß Michael
ich bin immer noch dabei das Eine oder Andere dazu zu bauen. Testen tue ich es mit Nvidea und Ati Grafikkarten (habe aber keine uralten Karten mehr). Neue Funktionen kommen dazu, werden derzeit meist auf Anwenderwunsch mit eingebaut. Prinzipiell haben ich die Funktionen schon drin die ich reinbringen wollte. Ich bin gerade dabei ein Shadertutorial vorzubereiten so das man selber damit basteln kann und diese Shader auch gleich in seine MP3D Anwendungen einbauen kann.
Die Lib basiert auf DX9, Newton Physic, Chipmunk und ist komplett in PB geschrieben. Sollte ich das Projekt aufgeben werde ich die Sourcen frei geben. Damit soll die lib auch zukünftig mit PB arbeiten können...
Was Effekte betrifft kenne ich nichts vergleichbares (bei über 100 Shader)...
Gruß Michael
Working on
- LibSGD - MP3D Engine - 


Re: MP3D Alpha 30
Hallo mpz und mp3d fans,
habe jetzt die Demos alle durchprobiert und bin sehr beeindruckt!
Was mir noch nicht richtig klar ist, inwiefern die mp3 lib mit den 2d
Befehlen von PB gemixt werden kann.
In der Hilfe steht es wird ein PB Window mit der ID 0 aufgemacht...
Gilt das auch für MP_Graphics3D() und MP_Graphics3DWindow()?
Kann ich darin auch einen WindowedScreen() laufen lassen?
Was ist denn die ID 0 schon vergeben ist, wäre es nicht besser
#PB_ANY zu verwenden und die PB Window ID als Return von
MP_Graphics..() zu liefern?
Als ersten Test wollte ich einen Snapshot vom Kinect Tiefensensor
in ein Mesh konvertieren und anzeigen lassen.
-> Download Kinect Senor Snap (600KB)
Leider komme ich mit MP_CreateMesh() nicht weiter. Der SnapShot
besteht aus 640x480 Tiefenwerten a 2 Byte (Word).
Diesen kann man wie folgt auslesen:
Als Bild über einen Gradient visualisiert sieht es so aus:

Wie kann man die Tiefenwerte in ein Mesh übertragen?
habe jetzt die Demos alle durchprobiert und bin sehr beeindruckt!
Was mir noch nicht richtig klar ist, inwiefern die mp3 lib mit den 2d
Befehlen von PB gemixt werden kann.
In der Hilfe steht es wird ein PB Window mit der ID 0 aufgemacht...
Gilt das auch für MP_Graphics3D() und MP_Graphics3DWindow()?
Kann ich darin auch einen WindowedScreen() laufen lassen?
Was ist denn die ID 0 schon vergeben ist, wäre es nicht besser
#PB_ANY zu verwenden und die PB Window ID als Return von
MP_Graphics..() zu liefern?
Als ersten Test wollte ich einen Snapshot vom Kinect Tiefensensor
in ein Mesh konvertieren und anzeigen lassen.
-> Download Kinect Senor Snap (600KB)
Leider komme ich mit MP_CreateMesh() nicht weiter. Der SnapShot
besteht aus 640x480 Tiefenwerten a 2 Byte (Word).
Diesen kann man wie folgt auslesen:
Code: Alles auswählen
If ReadFile(0, "C:\Temp\KinectDepth2.bin" )
*mem = AllocateMemory(Lof(0))
If *mem
ReadData( 0, *mem, Lof(0))
*memEnd = *mem + Lof(0)
min = 9999
max = 0
For *depth.Word = *mem To *memEnd Step 2
If min > *depth\w And *depth\w : min = *depth\w
ElseIf max < *depth\w : max = *depth\w : EndIf
Next
FreeMemory(*mem)
EndIf
CloseFile (0)
EndIf
Debug "Minimale / Maximale Entfernung"
Debug "Min: " + StrF((min - $890)/10, 1) + " cm"
Debug "Max: " + StrF((max - $890)/10, 1) + " cm"

Wie kann man die Tiefenwerte in ein Mesh übertragen?
"Papa, ich laufe schneller - dann ist es nicht so weit."
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: MP3D Alpha 30
Hi Dige,
Du kannst weiter Deine Image Befehl verwenden und diese Images durch MP_ImageToTexture(Image ) zu einer Textur umformen. Diese Textur wird dann in DX9 bzw Mp3d benutzt.
Für MP_Graphics3D() und MP_Graphics3DWindow() habe ich einfach mal ID 0 festgelegt. Bisher habe ich auch kein Beispiel gefunden wo das nicht sinnvoll war. Es gibt aber auch den MP_ScreenToHandle(hwnd) mit dem Du jeden WindowsScreen in DX9 umwandeln kannst. Also mache damit was Du willst
CreateMesh und Grafik in Mesh ist etwas komplizierter. Ein Mesh besteht aus Dreieckspunkten und Dreiecksflächen. Um ein 2D Bild umzuformen benötigt man eine Mesh-Fläche mit vielen Dreicken. Dieser übergibt man die Grafik um die Höhenstufen anzupassen und die Grafik die drauf dargestellt werden soll. Du müsstes also erst einmal aus Deiner Grafik ein Graustufen Bild mit als HöhenMap erzeugen und dann beide Bilder laden. Ich habe Dir ein Programm beigelegt was das gut verdeutlicht. Zu Not kannst Du auch erst einmal dein Farbild als Highmap verwenden. Das Ergebnis läßt sich durchaus sehen...
Gruß Michael
Du kannst weiter Deine Image Befehl verwenden und diese Images durch MP_ImageToTexture(Image ) zu einer Textur umformen. Diese Textur wird dann in DX9 bzw Mp3d benutzt.
Für MP_Graphics3D() und MP_Graphics3DWindow() habe ich einfach mal ID 0 festgelegt. Bisher habe ich auch kein Beispiel gefunden wo das nicht sinnvoll war. Es gibt aber auch den MP_ScreenToHandle(hwnd) mit dem Du jeden WindowsScreen in DX9 umwandeln kannst. Also mache damit was Du willst

CreateMesh und Grafik in Mesh ist etwas komplizierter. Ein Mesh besteht aus Dreieckspunkten und Dreiecksflächen. Um ein 2D Bild umzuformen benötigt man eine Mesh-Fläche mit vielen Dreicken. Dieser übergibt man die Grafik um die Höhenstufen anzupassen und die Grafik die drauf dargestellt werden soll. Du müsstes also erst einmal aus Deiner Grafik ein Graustufen Bild mit als HöhenMap erzeugen und dann beide Bilder laden. Ich habe Dir ein Programm beigelegt was das gut verdeutlicht. Zu Not kannst Du auch erst einmal dein Farbild als Highmap verwenden. Das Ergebnis läßt sich durchaus sehen...
Code: Alles auswählen
;////////////////////////////////////////////////////////////////
;//
;// Project Title: MP 3D Engine
;// File Title: Picture_to_3D.pb
;// Created On: 19.2.2012
;// Updated On:
;// Author: Michael Paulwitz
;// OS:Windows
;//
;// Highmap Demofile
;//
;////////////////////////////////////////////////////////////////
;-
;- ProgrammStart
MP_Graphics3D (640,480,0,3) ; Erstelle ein WindowsFenster #Window = 0
SetWindowTitle(0, "Picture to 3D - Choose Space to load the files") ; So soll es heissen
camera=MP_CreateCamera() ; Kamera erstellen
;x.f=0 : y.f=0 : z.f = -40
;MP_PositionCamera(camera,x.f,y.f,z.f) ; Kameraposition
light=MP_CreateLight(1) ; Es werde Licht
x.f=0 : y.f=-130 : z.f = 6 ; Start of Mesh
While Not MP_KeyDown(#PB_Key_Escape) And Not WindowEvent() = #PB_Event_CloseWindow; Esc abfrage oder schliessen
If MP_KeyDown(#PB_Key_Left)=1 : x-1 : EndIf ;links Debug #PB_Key_Left
If MP_KeyDown(#PB_Key_Right)=1 : x+1 : EndIf ;rechts #PB_Key_Right
If MP_KeyDown(#PB_Key_Down)=1 : y-1 : EndIf ;Runter #PB_Key_Down
If MP_KeyDown(#PB_Key_Up)=1 : y+1 : EndIf ;rauf #PB_Key_Up
If MP_KeyDown(#PB_Key_Z)=1 : z+0.1 : EndIf ;y Vertauscht bei y-z bei deutscher tastatur
If MP_KeyDown(#PB_Key_Y)=1 : z+0.1 : EndIf ;y Vertauscht bei y-z bei deutscher tastatur
If MP_KeyDown(#PB_Key_A)=1 : z-0.1 : EndIf ;a #PB_Key_A
If terrain ; Objekt drehen
MP_DrawText (2,2,"Triangles: "+Str(MP_CountTriangles(terrain))+" Vertices: "+Str(MP_CountVertices(terrain)),MP_ARGB(255,255,255,255))
MP_PositionEntity (terrain,0,0,z)
MP_RotateEntity (terrain,x,y,0)
EndIf
If MP_KeyDown(#PB_Key_Space)=1
Pattern$ = "Image File (bmp,jpg,tga,png,dds,ppm,dib,hdr,pfm|*.bmp;*.jpg;*.tga;*.png;*.dds;*.ppm;*.dib;*.hdr;*.pfm"
File$ = OpenFileRequester("Please choose Grayscale Highmap", "", Pattern$, 0)
If terrain:MP_FreeEntity(terrain):EndIf
terrain=MP_LoadTerrain ( File$ , 128, 128 , 0 , 6 )
File$ = OpenFileRequester("Please choose Colormap", "", Pattern$, 0)
If Texture:MP_FreeTexture(Texture):EndIf
Texture = MP_LoadTexture(File$)
MP_EntitySetTexture (terrain, Texture )
max.f = MP_MeshGetHeight(terrain) ; find Maximum of Mesh
If MP_MeshGetWidth(terrain) > max
max = MP_MeshGetWidth(terrain)
EndIf
If MP_MeshGetDepth(terrain) > max
max = MP_MeshGetDepth(terrain)
EndIf
scale.f = 4 / max ;
MP_ScaleEntity (terrain,scale,scale,scale)
x.f=0 : y.f=-130 : z.f = 6
EndIf
MP_RenderWorld () ; Hier gehts los
MP_Flip () ;
Wend
Gruß Michael
Working on
- LibSGD - MP3D Engine - 

