[GELÖST] Darstellungsprobleme Multitexturing

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: [GELÖST] Darstellungsprobleme Multitexturing

BeitragDo, Jun 04, 2015 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Auftrag wurde durch ZEVS zu meiner Zufriedenheit erledigt

Mein Gehalt habe ich erhalten und somit konnte ich nochmal einen Schub auf mein PayPal-Konto packen. Ganze 150 Euro haben sich angesammelt und für denjenigen, der mir zum unten beschriebenen Problem eine Lösung geben kann erhält es auch. Wie die Lösung umgesetzt wird (eine fehlende Codezeile im Beispielcode, ein komplett anderer Code oder per Shader) ist mir egal. Die Lösung muss nur Echtzeit tauglich sein. Also zumindest nicht langsamer als auf Blitz3D. Damit ist eine trickserei à la WritePixel schon mal ausgeschlossen.

Problem:

Ich suche eine Möglichkeit, eine Textur unter BlitzMax so darzustellen, dass ein Dot3 (Bumpmap) realisiert wird. Soweit so gut und stellt auch kein Problem dar. Diese Textur soll aber auch eine Alphamap beinhalten und transparente oder teiltransparente Stellen entsprechend korrekt darstellen. In welcher Form die Texturen vorliegen müssen ist mir egal. Sie müssen natürlich aber von mir auch erstellt werden können. Dazu habe ich mal ein paar Vorlagen:

Alphamap: https://www.blitzforum.de/upload/file.php?id=12996
Colormap: https://www.blitzforum.de/upload/file.php?id=12997
Bumpmap: https://www.blitzforum.de/upload/file.php?id=12998

Das Ergebnis sollte dann in etwa so aussehen:

user posted image

Diese Screens sind 1:1 mit der Draw3D2 für Blitz3D realisiert worden. Falls es von Wichtigkeit ist. Auch mit Blitz3D hatte ich meine Probleme und durch sehr viel probieren bin ich auf einen Trick gestoßen. Erst wenn das ganze Mesh per EntityAlpha IDrawMesh,254.0/255.0 auf einen Wert unter Transparenz dargestellt wird, zeichnet die Grafikkarte die Texturen in einem anderen Modus und Alpha mit Bumpmap werden korrekt dargestellt. Vielleicht gibt es so etwas ähnliches auch bei BlitzMax?

Wie man in den Beispielbild sehen kann wird die Helligkeit der Bumpmap in beide Richtungen gezeichnet. Dem Licht zugewandte Stellen werden aufgehellt, und die abgewandten Stellen werden abgedunkelt. Außerdem wird die Seitenscheibe teiltransparent dargestellt. Damit erscheint diese plastischer und wird im übrigen auch per Bumpmap berücksichtigt. Mit einfachen Mitteln ein super Ergebnis.

Sofern jemand eine Lösung hat, kann diese hier veröffentlichen oder es mir per PN senden. Wer einen Treuhänder wünscht (das würde ich sogar begrüßen wenn sich ein Mod dazu bereit stellt) sende ich diesen dann 165 Euro per PayPal zu, der Treuhänder 15 Euro davon behalten kann. Egal ob mir eine Lösung präsentiert werden konnte oder nicht.

Sofern keine Bedingungen am Code gestellt werden, wird dieser dann in einer überarbeiteter Form als simple Grafiklibrary oder BMax-Modul veröffentlicht. Ansonsten auch gerne nicht weiter gegeben. Wie der Codeersteller halt wünscht. Sollte einer Veröffentlichung nichts im Wege stehen, wird der Codeersteller natürlich als solcher erwähnt werden. Das heisst, Credits trotz Bezahlung.

Damit jetzt nicht jeder mit großem Gebastel beginnt, habe ich ein Beispielcode zusammen gestellt. Es zeigt einmal eine startbare Lösung per Blitz3D und zwei unzufriedene für BlitzMax. Die bumpmap1.bmx zeichnet dabei zwei Texturen. Einmal die Colormap und dann da drüber eine Shiningmap die aus der Bumpmap resultiert. Dieses Beispiel konnte ich mithilfe Chester so weit bringen und Alpha wird auch korrekt dargestellt, aber das Shining sieht nicht besonders gut aus. Es ist so in der Form kaum zu gebrauchen. Das bumpmap2.bmx -Beispiel dagegen ist ein Lösungsvorschlag von Matthias und ist im Grunde aus dem DGL Wiki auf BlitzMax portiert worden. Auch wenn hier die Bumpmap besser aussieht, hat die Darstellung zwei Probleme. Einmal dunkelt die Bumpmap nur ab. Ein aufhellen wird nicht gemacht. Außerdem habe ich es hier nicht geschafft das Alpha zu berücksichtigen.

Mir ist eine Dot3-Darstellungsart wichtig. Ohne dieser möchte keine 2D-Spiele erstellen. Meine Alternative wäre dann ein Umstiegt auf den nicht mehr supporteten Nuclear Basic. Daher auch das auffüllen meines PayPal-Kontos, um es gegebenenfalls darüber kaufen zu können. Aber Nuclear Basic hat so wieder seine ganz eigenen Probleme.

Also ran an die Tastatur!

edit: Habe 3 Wochen Urlaub und wollte hier ein paar Schritte weiter kommen und muss mich für weiteres entscheiden. Daher ist als Einsendeschluss der 11.06.2015 datiert.

P.S.

Mit 150 Euro könnt ihr...
- euch an zwei Abenden in einer Disse die Kante geben,
- oder ein Abend in einer Disse die Kante geben und dazu eine Frau einladen und einen schönen Abend verbringen,
- oder Euch drei Wochen lang gesund ernähren,
- oder Euch sechs Wochen lang wie richtige Studenten ernähren,
- oder einen Schönen Ausflug mit Eurer Familie machen,
- oder Euch coole Ersatzteile für ein noch cooleres Fahrrad leisten,
- oder Euch eine schnelle 500 GB SSD kaufen,
- oder Euch sinnvolle und stylische Klamotten kaufen,
- oder das Geld einfach nur unters Kopfkissen legen.
  • Zuletzt bearbeitet von hectic am So, Jun 07, 2015 21:39, insgesamt 2-mal bearbeitet

ZEVS

BeitragFr, Jun 05, 2015 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist viel Geld für ein bisschen Rumärgern mit OpenGL und Linearer Algebra ^^.
user posted image
Das ist ein Screenshot meines Programms. Ich verwende OpenGL-Shader, um Alpha und Licht zu berechnen. Die Sourcen können unter https://www.blitzforum.de/upload/file.php?id=13003 heruntergeladen werden. Da ich vorher noch nicht mit BumpMaps gearbeitet habe, weiß ich nicht, ob die Ausgabe dem gewünschten Resultat entspricht. Der Code ist zur Zeit noch eher im Alpha-Stadium, aber bevor ich ihn hübsch mache, möchte ich wissen, ob er soweit alles richtig macht. Durch Bewegen der Maus kann man die Szene bewegen, mit dem Mausrad drehen, mit der Leertaste die Hintergrundfarbe wechseln (und so die Alpha-Transparenz bestaunen) und mit Esc das Programm beenden.

Zur Zeit berücksichtigt das Programm Color-, Alpha- und Bumpmaps. Die Lichtquelle wird als unendlich weit entfernt (z.B. Sonne) angenommen und daher nur die Richtung des Lichts als Vektor übergeben. Einbauen von Punktlichtquellen sollte aber keine große Schwierigkeit sein. Mit den Pfeiltasten kann man die Lichtrichtung verändern, als ob man eine Lichtquelle bewegen würde.

Entspricht das deinen Vorstellungen, hectic?

ZEVS

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Jun 05, 2015 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab immer wieder ein und die selbe Frage gestellt. Also die letzten zwei Jahre oder so. Mir ist es egal ob der Code bereits öffentlich ist, ich werde diesen testen. Habe allerdings grad Gäste im Haus und hab mich schnell mal wegen der automatischen Benachrichtigung eingeloggt. Wenn dein Code den Erwartungen entspricht, sind es deine 150 Euro. Ich werde den Code im laufe des Samstages testen. Danke erstmal.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ZEVS

BeitragMi, Jun 10, 2015 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zur Information für die anderen hier im Forum: Basierend auf obiger techdemo habe ich eine Bibliothek geschrieben, die die Anzeige von Bildern mit BumpMaps in 2D-Graphik ermöglicht. Die neue Version kann unter https://www.blitzforum.de/upload/file.php?id=13016 heruntergeladen werden.

ZEVS

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group