180 likes | 290 Views
Stöd för haptisk hårdvara i en spelmotor. Henrik Aamisepp Daniel Nilsson. Problem. Är det möjligt att integrera haptik i en spelmotor?. Tillvägagångssätt. Utvärdera haptiska programmeringsgränssnitt Utveckla en lösning baserad på utvärderingen Dra slutsatser från utvecklingsprocessen.
E N D
Stöd för haptisk hårdvara i en spelmotor Henrik Aamisepp Daniel Nilsson
Problem Är det möjligt att integrera haptik i en spelmotor?
Tillvägagångssätt • Utvärdera haptiska programmeringsgränssnitt • Utveckla en lösning baserad på utvärderingen • Dra slutsatser från utvecklingsprocessen
Vad är en spelmotor? • Plattform för att enkelt skapa 3D applikationer och spel • Tillhandahåller funktioner som vanligtvis behövs i spel • Tangentbord, mus, joystick • OpenGL, DirectX • Nätverk
Crystal Space • Öppen källkod • Ständigt under utveckling • Flexibelt pluginsystem • Kollisionsdetektion • Fysikmotor
Vad är haptik? • Hur man använder känselsinnet för att utforska sin omgivning • Inom datorvärlden handlar det om att kunna känna och ta på datorgenererade objekt via ett haptiskt gränssnitt • Force feedback • Haptisk hårdvara
PHANTOM • Rörlig i 6 frihetsgrader • Force feedback i 3 frihetsgrader • Pennfattning med knapp • Interagerar i en punkt • Flera olika modeller
F = kx x Exempel på kraftberäkning • Kraften är proportionell mot penetreringsdjupet • Kraften är i normalens riktning
Haptiska programmeringsgränssnitt • GHOST • e-Touch • Reachin
GHOST • Fördelar • Grafik och haptik uppdelat • Stöd för dynamik • Stöd för friktion • Nackdelar • Dyr licens • Ej öppen källkod • Problem med rörliga objekt
e-Touch • Fördelar • Öppen källkod • Gratis • Snabb algoritm för kraftberäkning • Nackdelar • Dålig dokumentation • Grafik och haptik ihopbyggt till stor del • Inget stöd för friktion och ytstrukturer • Inget stöd för dynamik • Kräver att GHOST finns installerat
Lösningsidé • Plugin till Crystal Space • Haptisk representation av 3D-omgivningen i Crystal Space • Kunna förflytta sig runt i 3D-omgivningen • Stöd för rörliga objekt • Olika egenskaper för objekt
Problem under utvecklingen • Skapa haptiska objekt • Olika uppdateringshastigheter för grafik och haptik • Hantera objekten effektivt • Rörliga objekt • Friktion • Trycka igenom objekt
Demo 1 • Navigera runt i en 3D-värld med tangentbordet • Känna på omgivningen med the PHANTOM • Grafisk representation av pekaren • Olika materialegenskaper • Möjligt att ladda kartor
Demo 2 - Labyrintspel • Interagera med rörliga objekt • Flytta på objekt med the PHANTOM • Använda det dynamiska systemet i Crystal Space
Resultat • Plugin som gör det möjligt att känna på en virtuell 3D-omgivning • Man kan gå omkring i omgivningen som i vanliga 3D-spel • Rörliga objekt uppdateras automatiskt i haptiken • Fungerar bra ihop med det dynamiska systemet i Crystal Space
Resultat • Stödjer friktion och styvhet men det kvarstår några problem med detta • Enkelt att skapa egna typer av objekt • Lyckades ej få bort licenskostnader helt
Slutsatser • Fullt möjligt att integrera haptik i en spelmotor • Goda möjligheter att skapa snygg grafik • Spelmotorn ger mycket extra funktionalitet • Bra med högre uppdateringsfrekvens på grafiken • Olikheter mellan olika programmeringsgränssnitt