Gouraudshading

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

maximilius

Betreff: Gouraudshading

BeitragMi, Jun 08, 2005 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann man Gouraudshading an Bildern anwenden, sodass man beispielsweise bei einem Terrain Hügel simulieren kann:
user posted image
(Quelle: http://www.diegermanen.de/entwickl.htm)

Das soll ja irgendwas mit bilinearer Interpolation zu tun haben.
Ich hab heute das Wort Interpolation schon Siebenunddreisig mal gelesen, aber nirgends eine Funktionserklärung gefunden.

Daher meine Frage:
Wie funktioniert das?
Bzw. Wo finde ich Lektüre dazu?

lg maximilius
Ich habe mir meine Meinung gebildet, bitte verwirren Sie mich nicht mit Tatsachen!
 

Dreamora

BeitragMi, Jun 08, 2005 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Such ma bei google nach bilinearem Filtering, das arbeitet auch so.
Interpolationen dieser Art ziehen einen gewissen "Umkreis" um den gewünschten Punkt mit in betracht und verrechnen die Farben mit diesen. Dadurch entsteht ein "weicherer" Schatten.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Klaas

BeitragMi, Jun 08, 2005 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
mit einer Interpolation berechnet man den "Weg" zwischen 2 Werten, die Bilineare oder auch Bikubische beachtet dabei nicht nur die beiden Punkte die es zu verbinden gillt sondern auch den da vor und den danach. Dadurch entstehen weiche Kurven.

Hier findest du einige Interpolationsmethoden. Diese varieren in Rechengeschwindigkeit und Qualität

http://www.blitzbasic.com/code...p?code=781

Jan_

Ehemaliger Admin

BeitragDo, Jun 09, 2005 7:29
Antworten mit Zitat
Benutzer-Profile anzeigen
@maximilius:
ich gehe davon aus, das du auf 2 Dimensonen deine Frage beziehst.
Als erstes wird eine Iso Steigung erstellt,

http://turbo.gamedev.net/Iso2kMapEditShot3.jpg

diese wird dann par inter...ation gerundet.

das ist das ganze geheimniss.
between angels and insects

DivineDominion

BeitragDo, Jun 09, 2005 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe im BMax Code-Archiv was zum Gouraudshading (inkl Link zu meienr Quelle, musst nur URL unten nutzen).

Gouraud interpoliert die Seitenkanten eines Polygons, soll heißen, wenn Punkt 1 weiß ist und Punkt 2 100px entfernt schwarz, ist in der Mitte der Mittelwert der Farben, da ein Übergang geschaffen wird, ein Verlauf quasi.
Diese Seitenkanten speichert man in Arrays (habs relativ kompliziert gemacht und nur für Dreiecke: Array mit den Dimensionen (2,Höhe); einmal x-Anfang und einmal x-Ende für die gesamte Höhe des Dreiecks) und interpoliert dann von links nach rechts zwischen den Punkten auf der Waagerechten.
Dann hasst du ein farbiges bzw schattiertes Polygon.
Die Textur pappst du dann mit einem Renderer passend drunter, musst also eine rechteckige Textur in die Form des Polygons zwängen. Das hab ich nicht mehr gemacht, das war mir erstmal zu kompliziert Smile
christian.tietze@gmail.com - https://christiantietze.de
macOS

maximilius

BeitragDo, Jun 09, 2005 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Recht: Meine Frage bezieht sich auf 2D.

Ich habe schon verstanden, dass bei Interpolation ein weicher Übergang geschaffen wird, indem man mehrere Pixel betrachtet.

Nur weiß ich eben nicht, wie man das in Blitz umsetzt.

Denken wir uns mal folgendes Szenario aus:
Ich habe irgendwie gespeicherte Informationen, dass an Position x, y die Höhe z das Terrain t ist.

Mit Hilfe der umliegenden Felder kann ich also herausfinden, welches Bild ich an Position x, y auf den Bildschirm laden muss (Muss ja nicht Gras sein, kann ja auch ein Übergang von Gras zu Matsch sein)

Wie kann ich jetzt die unterschiedlichen Höhen berücksichtigen?
Muss ich da erst alle Bilder auf den Backbuffer klatschen und dann interpolieren oder muss erst interpoliert werden und dann gezeichnet.
Wie geht das interpolieren eigentlich?
Per Getpixelfast?
Wenn ja--> Wo? Auf dem Backbuffer um gleich die Gesamtheit zu haben oder eher auf den Bildern der einzelnen Feldgrafiken (Gras, Matsch, Übergang Gras -> Matsch)?

lg maximilius
Ich habe mir meine Meinung gebildet, bitte verwirren Sie mich nicht mit Tatsachen!

Jan_

Ehemaliger Admin

BeitragDo, Jun 09, 2005 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
hm,

Nein, auf dem Backbuffer währe es die Beste lösung, aber!
sau lahm, so ca. 0.1-1FPS
--> alles vorberechnen.
am besten gleich so ins Tilesset zeichnen!

Interpolation, ist Mathe so ähnlich wie bezier
between angels and insects

maximilius

BeitragDo, Jun 09, 2005 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Jan_: meinst du damit, ich sollte irgendwann mal die Grafiken berechnen und dann abspeichern, damit ich einen Hügel (nicht den kompletten, aber eben die Entsprechenden Seiten [je nachdem was ich benutze, ob dreiecke, quadrate, sechsecke etc.]) ohne Berechnung zeichnen kann?

lg maximilius
Ich habe mir meine Meinung gebildet, bitte verwirren Sie mich nicht mit Tatsachen!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group