Seite 16 von 22

Re: MP3D Alpha 30

Verfasst: 04.05.2012 12:38
von DrShrek
Schobaer hat geschrieben:Das Teil als originale PB-Befehle - das wäre echt super. Aber ob das kommt...? Würde das Spieleproggen um einiges erleichtern. Allerdings wird es wohl Probleme mit Linux und Mac wegen der Implementierung geben.
Verwende es einfach und sei glücklich.
Es wird ja auch nicht alle Windows API Befehle als native PB Befehle geben.

Re: MP3D Alpha 30

Verfasst: 05.08.2012 18:48
von mpz
Update auf Alpha 31

Läuft nur mit PB 4.61 (x86 and x64) oder höher

* Viele Updates und Demos
* Erweiterte Befehle
* Pixel von Texturen können verändert werden
* Anti Alaising eingebaut
* Partikelfunktionen erweitert
* Triangel und Vertex Funktionen erweitert
* Sprites können jetzt im 3D Raum plaziert werden wie Billboards

1) Befehl erweitert: MP_FeaturesOf (Var) ; Var = 5, checked Anti Alaising function
2) Neuer Befehl: MP_SetAntiAlaising( State ); State activiert Antialaising
3) Befehl erweitert: MP_CatchMeshX wurde durch MP_CatchMesh (Memory , SizeOfMemory ) ersetzt. MP_CatchMesh can load *.x, 3ds and b3d files
4) Befehl erweitert: MP_CatchSprite(Adresse, Laenge) ; then comand load alpha textures for sprites now
5) Neuer Befehl: MP_SetRenderWorldCallback(*proc.i) ; Callback for render routine to use own functions
6) Befehl erweitert: MP_InitShadow([Var]); With Var = 0 you could deactivate the Shadow function
7) Neuer Befehl: MP_TextureSetPixel(Texture,x,y,Color,[Level]) ; Set a Pixel of a Texture. Level = Mipmap level
8) Neuer Befehl: MP_TextureGetPixel(Texture,x,y,[Level]) ; Get a Pixel of a Texture. Level = Mipmap level
9) Befehl erweitert: MP_TextureGetWidth (Texture[,level]) ; width of Level = Mipmap level
10) Befehl erweitert: MP_TextureGetHeight (Texture[, level]); height of Level = Mipmap level
11) Neuer Befehl: MP_CatchSkyBox (Adress0, Adress1, Adress2, Adress3, Adress4, Adress5, Adress6 ,factor) ; Catched a Skybox with 6 grafic files
12) Befehl erweitert: MP_ScrollSurface(Surface, X.f, Y.f ) ; x and y was reversed, x and y could be float for now
13) Neuer Befehl: MP_GetRenderedParticles(Entity); count of active particle of a Particleemitter
14) Neuer Befehl: MP_SetSamplerState( Type, Value ) ; Sets the sampler state value, Setzt eine TexturFiltertechnik
15) Neuer Befehl: MP_GetSamplerState( Type ) ; Gets the sampler state value, ließt eine TexturFiltertechnik aus
16) Neuer Befehl: MP_FreeTriangle ( Entity, Index) ; delete triangle of mesh, Triangel eines mesh wird gelöscht
17) Neuer Befehl: MP_FreeVertex ( Entity ,Index) ; delete a vertex from a mesh, Subtrahiert eine Vertex von einem Mesh
18) Neuer Befehl: MP_CopySprite(Sprite) ; Create a new Sprite from a Sprite; Erzeugt eine neuen Sprite aus einem Sprite
19) Neuer Befehl: MP_ParticleFadeOut(Entity, kind) ; fade out, over livetime or at 80%/50%/39% or 10% livetime, Blendet die Partikel über die gesammte Lebenzeit , oder erst bei 80%/50%/30% oder 10% der Lebenszeit sanft aus.
20) Neuer Befehl: MP_ParticleChangeColor(Entity, RGB, kind); change color over livetime with fadeout function. Partikelfarbe wird gewechselt mit Ausblendeeffekt
21) Neuer Befehl: MP_CreateOneShotEmitter (Part, x.f, y.f, z.f, MaxParticle, ReleaseParticle,Interval.f, MinTime.f, MaxTime.f); Creat a oneshot partticle emmiter: Erzeugt eine oneshot particleemmiter
22) Neuer Befehl: MP_3DZto2D (z.f) ; get the 2d z position from a 3d position. Bestimmt die 2D Entfernung z im 3D Raum
23) Befehl erweitert: MP_TextSetZ(z.f) ; See-deep of text, now with 3d z float, text could use in 3d space. Sichttiefe des Textes als 3D Wert, 0 = Front, z.f = weiter im Hintergrund
24) Befehl erweitert: MP_SpriteSetZ(z.f) ; See-deep of Sprite, now with 3d z float, sprite could use as billboard. Sichttiefe des Sprite als 3D Wert, 0 = Front, z.f = weiter im Hintergrund
25) Neuer Befehl: MP_ChangeMeshcoord(Entity) ; change the vertex coords with the position and turning of the meshmatrix; Ändert die Coordinaten der Vertexe in Richtung die das Mesh gedreht oder positioniert wurde

Re: MP3D Alpha 30

Verfasst: 18.08.2012 11:37
von SoS
mpz hat geschrieben:Update auf Alpha 31

Läuft nur mit PB 4.61 (x86 and x64) oder höher
MP_CatchV2M() - unbekannter Befehl
MP_LoadV2M() - unbekannter Befehl

V2M scheint allgemein nicht mehr zu laufen.

Re: MP3D Alpha 31

Verfasst: 20.08.2012 01:57
von mpz
Hi,

hier fehlt die folgende Information:

Derzeit funktionieren die folgenden Funktionen nicht mit x64: V2Lib (binärcode nur in 32Bit erhältlich)
Currently the following functions are not working with x64: the V2Lib (binärcode in 32 bit only)

Sorry und Gruß,
Michael

Re: Autocomplete

Verfasst: 16.10.2012 18:54
von Thade
Im Zipfile ist die Datei MP3D_Library in
SubSystems\DX9\purelibraries\userlibraries\

Autocomplete funktioniert aber nur wenn sie (auch) im Ordner Purelibraries ist.
PureLibraries\

(Ersetzt meine soeben gelöschte Frage bzgl. des nicht funktionierenden Autocomplete)

Könnte man vielleicht in der Documentation erwähnen ... :wink:

Re: MP3D Alpha 31 MP_TurnEntity() pitch und yaw vertauscht

Verfasst: 16.10.2012 19:19
von Thade
Nächste Frage:

Bei MP_TurnEntity ist pitch und yaw gegenüber allen anderen 3D Sprachen, die ich kenne vertauscht

Code: Alles auswählen

	If MP_KeyDown(#PB_Key_Right)
		MP_TurnEntity(mesh, 0.5, 0, 0)
	EndIf	
	If MP_KeyDown(#PB_Key_Left)
		MP_TurnEntity(mesh, -0.5, 0, 0)
	EndIf	
Dreht um die aus anderen Sprache bekannte Y-Achse - bei MP3D scheint die X-Achse senkrecht zu stehen ?
Ist das System irgendwo erklärt? Meine .x-Models lassen sich normal laden ... also Y-Achse oben - X nach rechts links - Z nach vorne hinten.
Und auch der Mr Bones aus dem Mesh-Example funktioniert normal (außer dass er im Fragmotion um 180 Grad um die Y Achse gedreht ist - Vorne ist hinten und umgekehrt)

Wenn ich die Camera positioniere ist Y aber wieder senkrecht nach oben und unten ... MP_PositionCamera(Camera, 0, 3, 0)

Irgendwas stimmt nicht ... mit MP_TurnEntity, oder?

Re: MP3D Alpha 31

Verfasst: 17.10.2012 10:06
von mpz
Hi Thade,

Danke für den "Autocomplete" Tipp. Man kann die Lib auch in PureLibraries\ kopieren und benötigt kein Subsystem mehr. Da ich meien Engine eher als "verzichtbare zursatzlib" angesehen habe kommt Sie in das "SubSystems\DX9\..." Verzeichnis. Das kann ich ja mit der nächsten Version mal verändern...

Thema pitch und yaw: Warum? Weil ich dacht das ich es richtig gemacht habe, aber zu meinem Erschrecken stelle ich fest Du hast Recht. Ich habe scheinbar "pitch und yaw" verwechselt. Muss ich natürlich anpassen. Fällt Dir noch etwas ein welche Befehle hier falsch funktionieren?

Gruß Michael

Re: MP3D Alpha 31 MP_TurnEntity() pitch und yaw vertauscht

Verfasst: 17.10.2012 10:19
von gnasen
Thade hat geschrieben:Und auch der Mr Bones aus dem Mesh-Example funktioniert normal (außer dass er im Fragmotion um 180 Grad um die Y Achse gedreht ist - Vorne ist hinten und umgekehrt)
Ich denke du meinst der ist gespiegelt und nicht um 180 Grad verdreht. Das wuerde damit zusammenhaengen, dass es keine allgemeine Einigung darueber gibt, ob ein Koordinatensystem rechts oder linkgshaendig orientert sein muss.

Re: MP3D Alpha 31

Verfasst: 17.10.2012 10:44
von mpz
Hi,

mp3d ist im prinzip linkshändig orientiert. Heißt das damit das "pitch und yaw" doch richtig ist? Im Internet haben ich bisher viele Beispiele gefunden die sagen das das falsch ist...

Gruß Michael

Re: MP3D Alpha 31 MP_TurnEntity() pitch und yaw vertauscht

Verfasst: 17.10.2012 12:36
von Thade
gnasen hat geschrieben:
Thade hat geschrieben:Und auch der Mr Bones aus dem Mesh-Example funktioniert normal (außer dass er im Fragmotion um 180 Grad um die Y Achse gedreht ist - Vorne ist hinten und umgekehrt)
Ich denke du meinst der ist gespiegelt und nicht um 180 Grad verdreht. Das wuerde damit zusammenhaengen, dass es keine allgemeine Einigung darueber gibt, ob ein Koordinatensystem rechts oder linkgshaendig orientert sein muss.
Naja - ob es gespiegelt oder gedreht ist, hängt davon ab, was die Puppe darüber aussagt welches ihr rechter und ihr linker Daumen ist :wink:
Und natürlich auch davon ob man z nach vorne als +z oder -z ansieht ... bei +z ist es gedreht
In Fragmotion muß ich die meisten x Modelle um 180° drehen und sie passen ins System inclusive Animationen - ob bei Spiegelung das gleiche postive Resultat herauskommt, habe ich nicht ausprobiert.

Ja, es ist in Tat so, dass es zu viele verschiedene Systeme gibt - vor 10 Jahren war das anders - da gab es 2 populäre - und davon war das am meisten verbreitetste das was Blitz3D auch verwendete.
Es ist das was am meisten Sinn macht: + y nach oben +z nach vorne und +x nach rechts ...
Schaut man bei Wikipedia traut man seinen Sinnen allerdings nicht mehr. Kartesische sind entweder nach dem oben angegebenen System rechtshändisch oder aber linkshändisch (x ist gespiegelt) wechselt man zur Seite mit der Umrechnung von Kartesische in Polarkoordinaten dann hat der Autor plötzlich Z in Richtung nach oben - was totaler Schwachsinn ist ... (natürlich nur bezogen auf Spieleprogrammierung)

Man sollte sich an das halten, was (vermutlich) die meisten von uns gewöhnt sind - die meisten haben nun einmal auch eine Blitz3D-Vergangenheit - warum also alles verändern? (Es sei denn, das DX9 dies zwingend vorschreiben würde)

RR

OffTopic-Anm. Es gibt ja das berühmte Beispiel, dass es bis vor einigen Jahren - als ein bestimmtes Element noch nicht entdeckt war, man einem angenommenen Kontakt auf einem anderen Planeten (allgemein einem Nicht-Sicht-Kontakt) nicht hätte mitteilen können was rechts und links bei uns auf der Erde ist ... Mehr darüber bei Martin Gardner http://en.wikipedia.org/wiki/Martin_Gardner In einem seiner Bücher wird das Was-ist-Rechts-was-Links-Problem gelöst ...
Dies nur nebenbei :wink: