MP3D Alpha 32

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: MP3D Alpha 30

Beitrag 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.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
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

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Re: MP3D Alpha 30

Beitrag 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.
Benutzeravatar
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 31

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
Thade
Beiträge: 6
Registriert: 22.11.2004 04:19

Re: Autocomplete

Beitrag 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:
Thade
Beiträge: 6
Registriert: 22.11.2004 04:19

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

Beitrag 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?
Benutzeravatar
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 31

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

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

Beitrag 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.
pb 4.51
Benutzeravatar
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 31

Beitrag 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
Working on :lol: - LibSGD - MP3D Engine - 8)
Thade
Beiträge: 6
Registriert: 22.11.2004 04:19

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

Beitrag 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:
Antworten