Wieso verzerrt Polyvector das verwendete Sprite ?

Previous topic - Next topic

Trabant 500

Hi@All.

Ich hab das Problem das Polyvector das verwendete Sprite verzerrt, sobald die Kanten nicht parallel zueinander sind. Wieso ist das so und gibt es dafür eine Lösung ?
IF was <> passt
   was = passt
ENDIF

Kitty Hello

Kleines Beispiel bitte. POLYVECTOR arbeitet so akkurat wie alle anderen Befehle auch.

Trabant 500

#2
Im Prinzip habe ich das gleiche Problem wie in diesem Thread beschrieben:
Link...

Meine Frage bezieht sich vor allem auf das 4. Bild, denn genau so sieht es auch bei mir aus, sobald das Sprite nicht rechteckig, sondern trapezförmig ist. Ich habe auch die Lösung von Hemlos probiert, daß man diese Fläche durch 4 Dreiecke von der Mitte zu jeweils 2 Eckpunkten, erstellt, aber das hat bei mir keine Änderung gebracht.
IF was <> passt
   was = passt
ENDIF

Schranz0r

Naja das liegt daran, das du 2 Traingles hast mit Polyvector! Und da es KEIN 3D ist, hast du ein perspektivenproblem, da es keinen Z-Buffer gibt.
So seh ich das Problem.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Trabant 500

Aber wieso bietet dann Polyvector die Möglichkeit der perspektivänderung, wenn der Befehl doch nicht so akurat funktioniert wie Gernot das behauptete ?
Gibt es denn eine Alternativmöglichkeit um genau sowas in 2D zu machen ? Richtiges 3D kommt für mein Projekt allerdings nicht in Frage !
IF was <> passt
   was = passt
ENDIF

Kitty Hello

Nein. Perspektivenkorrektur kann man in 2D nicht machen. Dafür gibt's 3D. Das hängt mit der orthogonalen Projektionsmatrix zusammen.

Trabant 500

Aber Hemlos hat doch eine Lösung gepostet und Du selber sagtest, daß das der einzigste Weg sei, das Problem zu lösen ?
Andererseits funktioniert sowas in Photoshop und ähnlichen Programmen ja auch. Also wieso nicht in GLBasic ?
IF was <> passt
   was = passt
ENDIF

Schranz0r

Wie gesagt, Du hast mit POLY 2 Triangles, wenn du jetzt die rechte Seite kleiner hast als die linke verschiebst du das rechte triangle. Nur macht die orthogonale Projektionsmatrix alles so, das es für dich als 2D sichtbar ist.
Wie das Photoshop usw macht kann ich dir leider net sagen, aber ich kenn das problem auch...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Trabant 500

Dann ist der Befehl überflüssig, denn dann kann man damit ja auch nicht mehr machen als mit den Spritebefehlen.  :(
IF was <> passt
   was = passt
ENDIF

Schranz0r

Nein, wieso überflüssig?
Nur weil ein Befehl nicht so will, wie du dir das vorstellst, ist der noch lange nicht überflüssig!
Das ist einfach standart so, da kannst du hinschauen wo du willst...
Einzigste möglichkeit ist mit der textur zu bescheissen!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Trabant 500

Ich meinte das in der Hinsicht, daß man mit diesem Befehl nicht mehr machen kann las mit den Spritebefehlen. Also wozu sollte er dann gut sein ?
IF was <> passt
   was = passt
ENDIF

Schranz0r

Klar kannst du mehr machen...

- alle ecken einfärbbar
- du kannst mehrecke machen
- PNG's mit alpha komplett umfärben
- schneller als DRAWIMAGE...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Trabant 500

#12
Ja sorry. Da haste natürlich Recht. Aber Gernot hat ja gesagt das Hemlos Lösung die einzig richtige wäre, aber die funktioniert ja eben auch nicht.
IF was <> passt
   was = passt
ENDIF

Schranz0r

Ja in 3D gehts schon...

da kannst ja dein "surface" drehen wie du magst
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Trabant 500

In dem Thread gings aber auch um eine 2D-Lösung. Also die 3D-befehle bringen mir bei meinem Projekt rein gar nichts bzw. will ich sie nicht anwenden.
IF was <> passt
   was = passt
ENDIF