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

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Det första du bör göra är att rita horisonten
Talföljder formler och summor
Sammandrag i bildspelsform Du kan ta dig igenom hela bildspelet med piltangenterna eller med musen. Du kan även välja avsnitt genom att klicka på de olika.
Joakim Eriksson Luciano Hermansen
KKME – Livsfrågor Oktober 2007
Kvalitativ analys - Analysprocess
Grunder i PowerPoint 2000 Skapa en ny presentation Rita egna objekt
This work is licensed under a Creative Commons 3.0 Attribution License Wikispaces för SBC En guide
Demo 1. Demo | 2. Start | 3. Oss | 4. Idén | 5. Processen | 6. Sammanfattning.
Domarassistenten.com - en introduktion för domare
Välkommen till presentationen av TungTransport Postadress: Telefon: E-post:Webb: Evagatan Malmö
A 3D racing game with network support. Team •Jonas Gustafsson •Lin Loi •Fredrik Norén •Michael Sandén •Patrik Sjölin.
HTML - grunder. Program •Html kan skrivas i anteckningar, eller vilket annat textbehandlingsprogram som helst. Mitt tips: Notepad ++ Notepad ++ •Grafiska.
1 Windows programmering (2) Borland C++ Builder 4/5 Modsoft Ab Kent Westerholm.
Utbildningar (just nu)
A 3D racing game with network support. Team •Jonas Gustafsson •Lin Loi •Fredrik Norén •Michael Sandén •Patrik Sjölin.
Avalon Information Systems Vi är IT-företaget som behärskar framtagning av information och utveckling av konkurrenskraftiga IT-system. - Produktinformation.
Ellära Fysik 1 / A Översiktlig beskrivning av en del av innehållet i Ellära – Fysik A För djupare studier hänvisar jag till kurslitteratur som finns.
Informationshantering
5. Grafiska objekt Redan på övning fem av sex! Här handlar det om att rita själv, färglägga och att låta kreativiteten flöda. Något för dig? Ritverktyg.
Fotbollsövningar Pojkar 03
Kraft och Rörelse Prov Ons v.20
Föreläsning 1.
Arv.
Objektorienterad tänkande
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Algoritm analys och rekursiva metoder kap 5,7
Radarmålföljning av mänskliga nervsignaler Bättre kunskap om de icke myeliniserade (C-) fibrerna skulle kunna leda till förbättrade eller nya metoder för.
Stöd för haptisk hårdvara i en spelmotor
Avancerad fotografering för portfolio Kalle Prorok, Umeå universitet, 2010.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
1. Vik ett papper så att du får 9 lika stora bitar
Jonföreningar och molekyler
Grafiken: En del av spelet Rickard ArvedalFredrik Andersson.
Vektorer (klassen Vector) Sortering
Resursgruppmöte 1:a mötet inom 3 månader
Handledarutbildning Delkurs 4 Barn- och fritidsprogrammet BF
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
FOXPOPULI Introduktion av deltagare – ice breaking och lära känna varandra “ Social entrepreneurship for social change”, Nordplus adult Project ID AD-2012_1a
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
= Passning eller skott = Löpning utan boll = Driver boll
= Passning eller skott = Löpning utan boll = Driver boll
Papilio: Framtagning av handlingsplan Ett arbete som av Pär Antonsson. Examensarbete C-nivå 15hp, Högskolan i Kalmar.
Java paket och jar-filer
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
May the force be with you
Flerpartikelsystem Kapitel 10 (avsnitt )
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
 Stor, billig, enkel, stilig och snygg.  klarar sina mål.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Föreläsning 2, Vektorer! (I vanliga fall är boken vår primära litteratur, men för just detta avsnitt är dessa bilder tänkt att ersätta bokens kapitel.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Föreläsning 1 Introduktion till kursen. Algoritmer
KINEMATIK I 1-DIMENSION
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Posterseminarium Inför Exjobbs-redovisningarna
Företagsvärdering och företagsarrangemang Del III.
9:1 Kopiering tillåten. M2000 Compact © Liber AB Marknadsplanens delar Nulägesanalys – Var står vi och vad innebär nuläget för oss? Mål – Vart vill vi?
May the force be with you
Forcerat Perspektiv En optisk illusion.
På den här bilden, marken (vattnet) stannar där linjen är
Algoritm för insättning av ett tåg i en befintlig tidtabell
Komma igång med Scratch
Presentationens avskrift:

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

15 maj 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ö

15 maj Ö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

15 maj 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

15 maj Historia - Partikelsystem Asteroids, Atari, 1979 När en asteroid förstörs flyger små prickar (partiklar) iväg i olika riktningar

15 maj Historia, forts Lucasarts 1982 (tidigare nämnd artikel av William Reeves) Datorsimulerade partikelsystem inom filmbranschen Star Trek II

15 maj Historia, forts Quake, ID Software, 1996, partikeleffekter i 3D

15 maj Historia, forts World in conflict, Massive Entertainment, 2007

15 maj 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.

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

15 maj 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

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

15 maj Partiklar, forts

15 maj 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

15 maj 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

15 maj 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.

15 maj 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!

15 maj 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

15 maj 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

15 maj 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

15 maj 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.

15 maj Olika typer av effekter

15 maj 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

15 maj 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

15 maj 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

15 maj Frågor?