1 / 27

Partikelsystem

Partikelsystem. för interaktiva 3d-miljöer - med shaderteknologi. Examensarbete vid inst. för datavetenskap Jakob Schyberg, D-00. Lite om examensarbetet. Ämnesområde: datorgrafik Handlar om visuella effekter för 3d-miljöer Institutionen för datavetenskap Handledare: Jon Hasselgren

Télécharger la présentation

Partikelsystem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Partikelsystem för interaktiva 3d-miljöer - med shaderteknologi Examensarbete vid inst. för datavetenskap Jakob Schyberg, D-00 jakob.schyberg@gmail.com

  2. Lite om examensarbetet... • Ämnesområde: datorgrafik • Handlar om visuella effekter för 3d-miljöer • Institutionen för datavetenskap • Handledare: Jon Hasselgren • Examinator: Tomas Akenine-Möller • Southend Interactive AB, Malmö jakob.schyberg@gmail.com

  3. Översikt • Introduktion och kort historia • Målsättning • Hur skapas partikeleffekter? • Introduktion av shaderteknologi • Partikeleffekter med shaderteknologi • Olika typer av effekter • Nästa generations partikelsystem • Resultat • Sammanfattning • Frågeställning och opponering jakob.schyberg@gmail.com

  4. Introduktion – vad är partikelsystem? • William Reeves, Lucasfilms, 1983: ”A way of modelling a class of fuzzy objects” • Modellering av objekt som saknar en väldefinierad yta och form • Simulering av partiklar i ständig, slumpmässig rörelse. • Rök, eld, vattendroppar, moln, regn, snö • Explosioner, raketmotorer, fiktiva effekter jakob.schyberg@gmail.com

  5. Historia - Partikelsystem • Asteroids, Atari, 1979 • När en asteroid förstörs flyger små prickar (partiklar) iväg i olika riktningar jakob.schyberg@gmail.com

  6. Historia, forts • Lucasarts 1982 (tidigare nämnd artikel av William Reeves) • Datorsimulerade partikelsystem inom filmbranschen • Star Trek II jakob.schyberg@gmail.com

  7. Historia, forts • Quake, ID Software, 1996, partikeleffekter i 3D jakob.schyberg@gmail.com

  8. Historia, forts • World in conflict, Massive Entertainment, 2007 jakob.schyberg@gmail.com

  9. Vad var målet med exjobbet? • Huvudfrågan: ”Hur kan man skapa visuellt tilltalande partikeleffekter för interaktiva 3d-miljöer med hjälp av shaderteknologi, lämpliga för ett Xbox 360-spel? • Tillvägagångssätt: • Hitta och förklara för- och nackdelar med shaderteknologi. • Hitta ett eller flera sätt att bygga ett partikelsystem baserat på shaderteknologi • Skapa ett demoprogram baserat på denna teknik. • Skapa några olika typ av effekter, såsom rök, eld och explosioner. jakob.schyberg@gmail.com

  10. Hur skapas partikeleffekter? – Del 1: Partiklar • Partiklar - små eller stora 2-dimensionella bilder. • De förflyttar sig, ändrar färg, storlek och genomsynlighet (transparency). jakob.schyberg@gmail.com

  11. Partiklar, forts • Varje partikel består av 4 vertiser, hörnpunkterna i 2 triangulära polygoner som bildar en kvadrat. • Kvadratens yta vänds oftast mot betraktaren, sk billboarding • En textur som beskriver partikelns utseende mappas direkt på kvadraten jakob.schyberg@gmail.com

  12. Partiklar, forts • Flera transparenta partiklar i grupp bildar en helhet. • Alla partiklar har slumpvis vald: • rörelse • position • avstånd från kameran jakob.schyberg@gmail.com

  13. Partiklar, forts jakob.schyberg@gmail.com

  14. Hur skapas partikeleffekter? -Del 2: Partiklarnas rörelse • Metod 1: Tillståndsbaserad rörelse • Spara undan och uppdatera varje partikels position och hastighet i varje frame • Mest korrekt ur fysikalisk synpunkt • Möjligt att använda variabel acceleration jakob.schyberg@gmail.com

  15. Partiklarnas rörelse, forts • Metod 2: Tidsbaserad rörelse • Effektivt • God approximering av verklig rörelse vid konstant acceleration • Effekter kan pausas, spelas i slow-motion eller baklänges • Man kan börja rendera en effekt i mitten och slipper beräkna den från start • Partiklarnas position p vid tiden t beräknas med: • p(t) = a/2 * t^2 + v0 * t + p0 jakob.schyberg@gmail.com

  16. Hur skapas partikeleffekter? –Del 4: Partiklarnas storlek • Partiklarnas storlek ökar eller minskar med tiden • Partiklarnas genomsnittliga storlek varierar mellan olika typer av effekter: • Stora partiklar: Rök, Eld i Explosioner, Tryckvågor från explosioner m.m. • Medelstora partiklar: Eldsflammor, regndroppar, snöflingor m.m. • Gnistor, fyrverkerier, insekter i svärm m.m. jakob.schyberg@gmail.com

  17. Hur skapas partikeleffekter? –Del 3: Färg • Texturen beskriver partikelns form, färgen sätts direkt i applikationen • Färg och alfa-värde ändras med tiden • Genom olika blending-metoderskapas olika karaktär på effekterna • One-blending: Färgen adderas hos överlappande partiklar • Inverterad blending: partiklar med högt alfa-värde syns igenom partiklar med lågt alfa-värde. • Renderingsordningen är viktig! jakob.schyberg@gmail.com

  18. Introduktion av shaders • Små program som körs på grafikkortet • Effektivt sätt att avlasta huvudprocessorn • Består av två delar: • Vertex Shader • Pixel Shader • Körs en gång per vertex/pixel • Placera beräkningar i vertex shadern om möjligt: • 4 vertiser per partikel • Tusentals (upp till miljontals) pixlar per partikel • Högnivåspråk för shaderprogrammering: • DirectX: HLSL (High Level Shader Language) • OpenGL: GLSL (Open Graphics Library Shader Language) • Senaste standarden: Shader Model 3.0 jakob.schyberg@gmail.com

  19. Partikelsystem med shaders • Simulera partiklarnas beteende på grafikkortet med ett shaderprogram • Programmet beskriver en enskild partikels rörelse, färgändring, storlek etc. • Varje partikel representeras av 1 vertex (point sprite) eller 4 vertiser (hörnorna i en kvadrat) • Partikelns beteende beskrivs i vertex-shadern. Vertex shadern behandlar varje vertex som en partikel • Huvudapplikationen skapar partiklar • Shaderapplikationen definierar partiklarnas beteende jakob.schyberg@gmail.com

  20. Partikelsystem med shaders, forts • Tillståndsbaserade partikelsystem • Kräver hämtning och lagring av partikeldata i texturer på grafikkortet. • Kräver Shader Model 3.0 • Klarar realistisk simulering av miljontals partiklar • Tidsbaserade partikelsystem • Lätta att implementera med shaders • Fungerar även med Shader Moder 2.0 • Billiga, kräver lite av både CPU och grafikkort jakob.schyberg@gmail.com

  21. Partikelsystem med shaders, forts • Partikeldata sparas som vertexdata • Startposition • Ursprungshastighet • Ursprunglig storlek • Födelsetidpunkt • Livslängd • Ursprungsfärg • Slumpvärden • Texturkoordinater • Global data sparas i globala shadervariabler • Tid • Transformationmatriser m.m. jakob.schyberg@gmail.com

  22. Olika typer av effekter jakob.schyberg@gmail.com

  23. Nästa generations partikelsystem • Miljontals partiklar med render-to-texture metoden och Shader Model 3.0 • DirectX 10 och Geometry Shaders • ”Mjuka partiklar” • Enkel hantering av partikeldata i texturer för tillståndsbaserade partikelsystem jakob.schyberg@gmail.com

  24. Vad har uppnåtts? • Ett partikelsystem och ett flertal partikeleffekter som kommer att användas i ett skarpt spelprojekt • En utförlig beskrivning av hur partikeleffekter kan skapas med shaderteknologi • Bevis på att shaderteknologi är både enkelt och effektivt att använda till partikeleffekter • Massor av ny personlig erfarenhet inom programutveckling och datorgrafik jakob.schyberg@gmail.com

  25. Sammanfattning • Partikelsystem • Simulerar fenomen såsåom rök, eld och explosioner • Effekter genom små bilder som rör sig och har ett slumpmässigt beteende i förhållande till varandra • Kan effektiviseras med hjälp av shaderteknologi • Shaders • Är små program som körs på grafikkortet • Definierar partiklarnas enskilda beteende jakob.schyberg@gmail.com

  26. Frågor? jakob.schyberg@gmail.com

More Related