Gouraudshading
Übersicht

![]() |
maximiliusBetreff: Gouraudshading |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kann man Gouraudshading an Bildern anwenden, sodass man beispielsweise bei einem Terrain Hügel simulieren kann:
![]() (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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
maximilius |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ 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! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group