![]() |
|
|
![]() |
|||||||||||||
![]() |
||||||||||||||||
|
![]() |
#1 |
Registriert seit: 06.05.2005
Ort: Linz
Beiträge: 10
|
multimedia installation mit bildverzerrung
hallo!
ich muss ein studienprojekt realisieren in dem es darum geht, bilder zu verzerren. das setup sieht folgendermaßen aus: es gibt eine art touchscreen auf dem jedoch auch mehrere berührungspunkte/berührungsflächen getrackt werden können. auf dem screen wird ein beliebiges bild dargestellt. der benutzer hat nun durch berührung und dragging die möglichkeit, das bild zu verzerren (mit allen fingern gleichzeitig wenn ihm beliebt). wird ein berührungspunkt losgelassen wird die durch diese berührung hervorgerufene verzerrung wieder aufgehoben (am besten wärs wenn dieser teil wie an einer art gummiband festgemacht zurückschwingen würde). ich hätte mir das so vorgestellt, dass ich eine art raster über das bild lege und die dabei entstehenden vertices durch die berührung des benutzers manipuliert werden. leider weiß ich nicht genau wie ich dann die bildverzerrung daraus berechnen kann. kann mir jemand da behilflich sein? wer sich meine überlegung nicht so ganz vorstellen kann, kann sich bei photoshop den liquify-filter mal ansehen und dabei das mesh sichtbar schalten. ich freue mich über jede art von hilfe. tausend dank, Judy ps. bin ganz neu hier, wenn ich also was falsch mache, einfach ganz laut schrei(b)en |
![]() |
![]() |
Sponsored Links | |
|
![]() |
#2 |
Registriert seit: 29.03.2004
Beiträge: 2.537
|
Hallo Judy,
willkommen im Forum :-) Eine sehr interessante Idee hast Du da! Anstelle eines Touchscreen sollte man eventuell auch ein Zeichentablett oder das Touchpad eines Notebooks verwenden können, oder? Im Prinzip solltest Du das Grundprogramm schon mit OpenGL oder DirectX recht einfach erzeugen können. Die einzige Schwierigkeit liegt tatsächlich auf der geeigneten Filterung an den Verzerrungsstellen. Die Komplexität wächst dann auch mit der Anzahl der Verknüpfungen pro Gummiecke. Eventuell geht das mit Shaderprogrammierung auf dem Grafikchip, oder Du verzerrst die Bildinformationen gezielt über eigene Routinen. Einfache Veränderung der Texturkoordinaten wird ansatzweise ausreichen, aber nicht perfekt sein.. Auf der Entwicklerseite von nVidia hab ich folgendes Dokument gefunden, da kann man sich einen eigenen Filter für PhotoShop programmieren, der auf dem Grafikchip berechnet wird. Möglicherweise kannst Du sogar das hier verwenden: PaintLiquid (für GeForce 6 Chips). Bei Ati gibt es auch ähnliches. Schau mal die Präsentationen zu Shadern in DirectX an, da sind auch interessante Effekte drin, z.B. Texture Perturbation Effects |
![]() |
![]() |
![]() |
#3 |
Registriert seit: 15.10.2003
Ort: Bottrop
Beiträge: 26.177
|
Moin Judy,
auch von mir herzlich willkommen im Forum. Du hast nichts falsch gemacht sondern deine Frage exakt im richtigen Unterforum gestellt. [EDIT] by ManniC Ups - TorstenG hatte dich ja richtigerweise von der Bildbearbeitung hierher verschoben ![]() ![]() ![]() [/EDIT] Als ich deinen Beitrag gelesen habe hab ich gedacht "Die Frage ist so gut, die möchte ich nicht durch eine Antwort kaputtmachen" ![]() ![]() ![]() @Fracman: Kompliment ![]() ![]() ![]()
__________________
VLG: Manni |
![]() |
![]() |
![]() |
#4 |
Themenersteller
Registriert seit: 06.05.2005
Ort: Linz
Beiträge: 10
|
danke für die hilfe
tausend dank für die schnelle und sehr hilfreiche antwort. leider bin ich durch die vielen dargestellten möglichkeiten etwas verwirrt.
mein erster gedanke war auch, das alles mithilfe von texturen und sich verändernden texturkoordinaten zu machen. dazu hätte ich aber noch eine frage (möge sie auch banal sein... ![]() ich hoffe man gestattet mir noch eine weitere frage... was shader anbelangt, welche vorteile hätte diese art der realisierung? ich hab noch keinerlei erfahrung mit shadern, und bin deswegen noch ziemlich am holzweg. vielen dank für jegliche hilfe! lg, Judy |
![]() |
![]() |
![]() |
#5 |
Registriert seit: 29.03.2004
Beiträge: 2.537
|
Hallo Judy,
da gibt es zwei Möglichkeiten: Du kannst die Textur entweder vorher unterteilen (wobei sie im Speicher der Grafikkarte immer mit Kantenlängen von 2er-Potenzen liegen muß, also z.B. 64x64), oder sie als Ganzes einmal in den Speicher laden und dann die texturkoordinaten beliebig wählen, um sie einer Fläche zuzuordnen. Shaderprogrammierung hat nur den Vorteil, daß alles im Grafikchip berechnet wird und meistens wesentlich schneller ist als mit der normalen CPU. Nachteil: man muß sich da auch erst einarbeiten (da kenne ich mich leider auch nicht so im Detail aus), und es ist stark vom jeweiligen Chip abhängig. Wenn Du OpenGL verwendest, gibt es zwar auch manche Abhängigkeiten, aber Texturen Texturkoordinaten gehört quasi zum Grundbefehlssatz ![]() Dazu kann ich Dir die OpenGL SuperBible empfehlen, enthält alles rund um OpenGL und auch Beispiele. Ich versuch mal bis später, noch was im Netz zu finden... |
![]() |
![]() |
Sponsored Links | |
|
![]() |
#6 |
Themenersteller
Registriert seit: 06.05.2005
Ort: Linz
Beiträge: 10
|
immer noch probleme mit texturkoordinaten
hallo & danke!
ich check es einfach nicht. wenn ich die gesamte textur auf die ebene lege dann kann ich die textur ja nur als ganzes über die 4 eckpunkte manipulieren, oder? ich kann mir irgendwie im moment nicht vorstellen, die textur an den zusätzlichen vertices, die sich aus dem raster ergeben, an die ebene zu 'kleben' mit texturkoordinaten. ich geh mal davon aus, dass ich mir das in meinem kopf scheinbar irgendwie 'falsch' vorstelle... ich mach mich mal schlau, vielleicht versteh ich es dann ![]() lg, Judy |
![]() |
![]() |
![]() |
#7 |
Registriert seit: 15.10.2003
Ort: Bottrop
Beiträge: 26.177
|
Ich kleb' das Posting mal an den ursprünglichen Thread -- der Übersichtlichkeit halber
![]()
__________________
VLG: Manni |
![]() |
![]() |
![]() |
#8 |
Registriert seit: 29.03.2004
Beiträge: 2.537
|
Hi Judy,
du kannst ja eine Textur oder auch beliebig viele Texturen auf eine Fläche spannen. Du darfst natürlich nicht ein einfaches Polygon mit 4 Ecken nehmen, sondern mußt die Fläche in MxN Polygone aufteilen, also ein Drahtgitter aus lauter kleinen Vierecken, auf die Du dann die enstprechenden Texturkoordinaten der Usprungstextur legst: Tx = x*1/M Ty = y*1/N (oder so ähnlich) |
![]() |
![]() |
![]() |
#9 |
Themenersteller
Registriert seit: 06.05.2005
Ort: Linz
Beiträge: 10
|
spitze
mah, was bin für ein schussel dass ich soweit nicht denken kann.
tausend dank! jetzt gehts ans eingemachte ![]() allerliebste grüße von einer erleuteten Judy |
![]() |
![]() |
![]() |
#10 |
Registriert seit: 15.10.2003
Ort: Bottrop
Beiträge: 26.177
|
Halte uns aber bitte auf dem Laufenden.
Ich finde (trotz keiner Ahnung ![]()
__________________
VLG: Manni |
![]() |
![]() |
Sponsored Links | |
|
![]()
|
|
|