Presentation laddar. Vänta.

Presentation laddar. Vänta.

15 maj Partikelsystem för interaktiva 3d-miljöer - med shaderteknologi Examensarbete vid inst. för datavetenskap Jakob Schyberg,

Liknande presentationer


En presentation över ämnet: "15 maj Partikelsystem för interaktiva 3d-miljöer - med shaderteknologi Examensarbete vid inst. för datavetenskap Jakob Schyberg,"— Presentationens avskrift:

1

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

3 15 maj 2007jakob.schyberg@gmail.com 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ö

4 15 maj 2007jakob.schyberg@gmail.com Ö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

5 15 maj 2007jakob.schyberg@gmail.com 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

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

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

8 15 maj 2007jakob.schyberg@gmail.com Historia, forts Quake, ID Software, 1996, partikeleffekter i 3D

9 15 maj 2007jakob.schyberg@gmail.com Historia, forts World in conflict, Massive Entertainment, 2007

10 15 maj 2007jakob.schyberg@gmail.com 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.

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

12 15 maj 2007jakob.schyberg@gmail.com 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

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

14 15 maj 2007jakob.schyberg@gmail.com Partiklar, forts

15 15 maj 2007jakob.schyberg@gmail.com 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

16 15 maj 2007jakob.schyberg@gmail.com 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

17 15 maj 2007jakob.schyberg@gmail.com 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.

18 15 maj 2007jakob.schyberg@gmail.com 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-metoder skapas 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!

19 15 maj 2007jakob.schyberg@gmail.com 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

20 15 maj 2007jakob.schyberg@gmail.com 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

21 15 maj 2007jakob.schyberg@gmail.com 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

22 15 maj 2007jakob.schyberg@gmail.com 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.

23 15 maj 2007jakob.schyberg@gmail.com Olika typer av effekter

24 15 maj 2007jakob.schyberg@gmail.com 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

25 15 maj 2007jakob.schyberg@gmail.com 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

26 15 maj 2007jakob.schyberg@gmail.com 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

27 15 maj 2007jakob.schyberg@gmail.com Frågor?


Ladda ner ppt "15 maj Partikelsystem för interaktiva 3d-miljöer - med shaderteknologi Examensarbete vid inst. för datavetenskap Jakob Schyberg,"

Liknande presentationer


Google-annonser