Verfasst: 22.11.2008 17:04
Hi,
Ich habe jetzt auch eine Partikelengine in meine MP_3D Engine integriert. Genug Parameter hat es wie:
Wind, Gravitation, Richtung, Bewegung, Drehung, Anzahl der Partikel, Grösse, Stärke, Textur ändern etc... allerdings im 3D Raum. Ein kleines Beispiel liegt als EXE dabei und der Sourcecode auch...
Weiss jemand warum die Partikeldemo von Ogre (findet man PureBasic\Examples\Sources\Particle.pb) 50% der CPU Zeit kostet?
Gruß Michael
http://rapidshare.de/files/40968593/MP_ ... o.exe.html
Ich habe jetzt auch eine Partikelengine in meine MP_3D Engine integriert. Genug Parameter hat es wie:
Wind, Gravitation, Richtung, Bewegung, Drehung, Anzahl der Partikel, Grösse, Stärke, Textur ändern etc... allerdings im 3D Raum. Ein kleines Beispiel liegt als EXE dabei und der Sourcecode auch...
Weiss jemand warum die Partikeldemo von Ogre (findet man PureBasic\Examples\Sources\Particle.pb) 50% der CPU Zeit kostet?
Gruß Michael
http://rapidshare.de/files/40968593/MP_ ... o.exe.html
Code: Alles auswählen
;////////////////////////////////////////////////////////////////
;//
;// Project Title: MP 3D Engine
;// File Title: MP_DX9_Partikel.pb
;// Created On: 22.11.2008
;// Updated On:
;// Author: Michael Paulwitz
;// OS:Windows
;//
;// Demofile für meine Partikelengine
;//
;////////////////////////////////////////////////////////////////
;-
;- ProgrammStart
MP_Graphics3D (640,480,0,3) ; Erstelle ein WindowsFenster #Window = 0
SetWindowTitle(0, "3D Partikel Test") ; So soll es heissen
Particle.l = MP_CreateParticleEmitter() ; Fontaine mit Wind
MP_PositionEntity (Particle,3,0,0) ; Setzt ein Objekt an einen x,y,z Ort
MP_ParticleColorRange (Particle,RGB(255,255,255),RGB(255,255,255)) ; Farbe von RGB Wert zu RGB Wert
MP_ParticleEmissionRate (Particle,500,5,0.05); Maximale Partikel, Ausstoßmenge und Zeiteinheit in s dafür
MP_ParticleTimeToLive(Particle, 3, 6); Partikellebenszeit von s bis s
MP_ParticleSize (Particle,0.5); Partikelgrösse
MP_ParticleVelocity(Particle,0,5,0,1.5); Ausstossrichtung als x,y,z und Verteilungsstärke
MP_ParticleWind(Particle, 2, 0 ,0); Wind als x,y,z
Particle2.l = MP_CreateParticleEmitter() ; Explosion
MP_ParticleColorRange (Particle2,RGB(0,0,0),RGB(255,0,0)) ; Farbe von RGB Wert zu RGB Wert
MP_ParticleEmissionRate (Particle2,100,100,0.05); Maximale Partikel, Ausstoßmenge und Zeiteinheit in s dafür
MP_ParticleTimeToLive(Particle2, 0.4, 0.6); Partikellebenszeit von s bis s
MP_ParticleSize (Particle2,2); Partikelgrösse
MP_ParticleVelocity(Particle2,0,0,0,10); Ausstossrichtung als x,y,z und Verteilungsstärke
Particle3.l = MP_CreateParticleEmitter() ;Vulkan aus MPs
MP_PositionEntity (Particle3,-5,0,0) ; Setzt ein Objekt an einen x,y,z Ort
MP_ParticleColorRange (Particle3,RGB(0,0,0),RGB(255,255,255)) ; Farbe von RGB Wert zu RGB Wert
MP_ParticleEmissionRate (Particle3,100,10,0.05); Maximale Partikel, Ausstoßmenge und Zeiteinheit in s dafür
MP_ParticleTimeToLive(Particle3, 3, 4); Partikellebenszeit von s bis s
MP_ParticleVelocity(Particle3,0,5,0,2.5); Ausstossrichtung als x,y,z und Verteilungsstärke
MP_ParticleGravity(Particle3,0,-5,0) ; Gravitatio als x,y,z
Textur = MP_CreateTextureFromFileInMemory (?logostart,?logostart-?logostop)
MP_EntityTexture(Particle3,Textur)
camera=MP_CreateCamera() ; Kamera erstellen
x.f=0 : y.f=0 : z.f = -18
MP_PositionCamera(camera,x.f,y.f,z.f) ; Kameraposition
light=MP_CreateLight(1,90,0,0) ; Es werde Licht
cube=MP_CreateCube() ; Nen Würfel
MP_EntityColor (cube,100,100,255) ; Würfel färben als R,G,B Wert
While Not MP_KeyDown(#PB_Key_Escape) And Not MP_WindowEvent() = #PB_Event_CloseWindow; Esc abfrage oder schliessen
MP_DrawText (10,10,RGB(255,255,255),"Läuft mit "+Str(MP_FPS ())+" FPS") ; Textanzeige an Position x,y, Farbe RGB und Text$
MP_TurnEntity (cube,0.05,0.5,1) ; Würfel Drehen
MP_RenderWorld () ; Hier gehts los
MP_Flip () ;
Wend
End
DataSection
logostart:
IncludeBinary "c:\programme\purebasic\media\mp_logo.png" ; Mein MP Bild included
logostop:
EndDataSection