[GELÖST] Blitzmax - Bild auf Polygon rendern?
Übersicht

CO2ehemals "SirMO"Betreff: [GELÖST] Blitzmax - Bild auf Polygon rendern? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hätte da mal wieder eine Frage: Ist es möglich mit den Mitteln aus Max2D ein Bild auf ein Polygon zu rendern? Wenn ja, wie? Grüße, Marius |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Mi, Jul 19, 2017 19:02, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, irgendwo in den Tiefen meiner alten Platte liegen passende Funktionen dafür. Find ich natürlich wieder nicht.
Was ich gefunden habe ist das hier: BlitzMax: [AUSKLAPPEN] Strict Leider ist da ein wenig der Wurm drin - es funktioniert nur die OGl-Version, die DX7-Variante läuft zwar durch, rendert aber nichts. Ich glaube mich zu erinnern dass ich das damals auf diesem Code basiert gefixt hatte, aber frag mich nicht mehr nach dem wie. Zudem war das weit vor Win10, wahrscheinlich noch zu XP-Zeiten. Aber als Ausgangspunkt tut es das, es müsste halt auf DX9 /11 gepatcht werden. Hoffe es hilft dir. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich bedanke mich! Das geht allerdings nur für quadratische Bilder, richtig? Gibt es etwas ähnliches für nicht-quadratische Bilder? EDIT: DAS GEHT JA AUCH FÜR NICHT-QUADRATISCHE BILDER!!! Ich freue mich derbe. Vielen Dank. Wenn ich fertig gebastelt habe, poste ich hier den Code. EDIT II: Leider nur halber Code, aber eine Frage: Ich versuche aktuell folgendes: Ich habe ein 2D-Modell von einem Fahrzeug (Top-Down). Nun möchte ich per Polygon den Rahmen des Fahrzeugs malen und dort drin das Fahrzeugmodell rendern. Das funktion dank BladeRunners Code auch tadellos. Was ich jetzt jedoch vor habe ist, dass ich die "Auflösung" des Rahmens anpasse. Also während normalerweise nur 4 Eckpunkte bei einem Rechteck nötig wären, male ich einfach 8, sodass jede Seite 3 Punkte hat (Beide Eckpunkte inklusive). Wenn ich nun einen Punkt verschiebe, kann ich ein dynamisches Schadensmodell simulieren (naja, mehr oder weniger). Jedoch passiert bei der Manipulation des obigen Punktes beispielsweise nichts. Als ich mir das ganze mit DrawPoly nochmal anschaute, fiel mir auf, dass der verschobene Punkt einfach übermalt wird. Meine Frage ist jetzt, wie ich dieses Verhalten umgehen kann. Hier mein bisheriger Code: BlitzMax: [AUSKLAPPEN] ' Import "../../../../../functions/functions.bmx" Als Bild kann irgendein Bild genommen werden, spielt keine Rolle. Das Bild wird jedoch weiterhin Rechteckig gezeichnet. EDIT III: Oder anders gefragt: Warum ergibt folgender BlitzMax: [AUSKLAPPEN] Local asdf:Float[10]folgendes Bild: Wo ich doch eigentlich ein solches erwarten würde: ? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich mache mal einen neuen Post, statt dem editieren des vorherigen. Ich habe es nun hinbekommen, es so wie im zweiten Bild zu malen. Dafür habe ich das große Polygon in mehrere kleine unterteilt.
Jetzt fällt auf, dass offensichtlich irgendein Scalefaktor oder sonstiges greift. Die Positionen auf dem Bildschirm und die u und v-Koordinaten sehen zwar gut aus (so wie erwartet), jedoch wird das Bild skaliert gemalt. Die Skalierung ist so krass, dass das Bild in der Höhe auf etwa 75% kleiner ist. Und das obwohl - wie geschrieben - die Koordinaten, die per glVertex2f und glTexCoord2f übergeben werden korrekt aussehen. Woran kann das liegen? Ich selbst nutze kein SetScale, hantiere aber mit SetOrigin und SetHandle herum um das Bild an die gewünschte Position zu malen. Diese Manipulationen setze ich jedoch jedes Mal zurück. |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klingt als wäre dein Bild nicht quadratisch und nicht mit Seitenlänge 2^n. Wenn du z.B. ein 100x80 px grosses Bild lädst, wird es zwangsweise eine 128x128 px Textur belegen. Die Texturkoordinaten von dem Bildteil, der dich interessiert, gehen dann bis 100.0/128.0 resp. 80.0/128.0, also (0.78125, 0.625) - nicht (1, 1)
mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank für die Antwort! Exakt das war's. Allerdings ist bei mir aufgefallen, dass für Höhe und Breite des Bildes verschiedene Texturauflösungen genommen werden. Mein Bild ist 60 x 200 px groß und als Texturauflösung wird 64 x 256 px genommen (Beweis durch malen ![]() Grüße, Marius |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was auch so passt, es wird immer die nächste zweier Potenz genommen. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group