Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:06

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: DFS und Bumpmapping
BeitragVerfasst: Fr Aug 12, 2011 13:29 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
Moin,

ich hab da mal ne kurze Verstandnisfrage:
Um in meiner Deferred Shading pipeline Bumpmapping mit zu implementieren, müsste es doch reichen einfach die Modelle mit der Bumptextur in meine NormalMap (GBuffer) zu rendern oder is das doch komplizierter?

Grüße
Thomas


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DFS und Bumpmapping
BeitragVerfasst: Fr Aug 12, 2011 13:40 
Offline
DGL Member

Registriert: Sa Nov 24, 2007 11:59
Beiträge: 116
Programmiersprache: FreePascal
Du berechnest einfach die Normalen anhand der Bumpmap und der Vertexnormale und schreibst die dann in den G-Buffer, fertig. Irgendwo hab ich mal folgenden Code gefunden:

Code:
  1.   vec3 q0 = dFdx(Vertex.xyz);
  2.   vec3 q1 = dFdy(Vertex.xyz);
  3.   vec2 st0 = dFdx(gl_TexCoord[0].st);
  4.   vec2 st1 = dFdy(gl_TexCoord[0].st);
  5.  
  6.   vec3 S = normalize( q0 * st1.t - q1 * st0.t);
  7.   vec3 T = normalize(-q0 * st1.s + q1 * st0.s);
  8.  
  9.   mat3 M = mat3(-T, -S, normal);
  10.   normal = normalize(M * (vec3(texture2D(NormalMap, gl_TexCoord[0].xy)) - vec3(0.5, 0.5, 0.5)));


wo wir gerade dabei sind: Kann mir irgendjemand sagen, was dFdx und dFdy eigentlich konkret berechnen?

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DFS und Bumpmapping
BeitragVerfasst: Fr Aug 12, 2011 14:24 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
mhh so ganz versteh ich deinen code nicht. Stimmt die Vertexnormale muss ja auch mit einfließen.. Ist das nich einfach eine Addition + anschließendem Normalize?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DFS und Bumpmapping
BeitragVerfasst: Fr Aug 12, 2011 15:38 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Thmfrnk hat geschrieben:
mhh so ganz versteh ich deinen code nicht. Stimmt die Vertexnormale muss ja auch mit einfließen.. Ist das nich einfach eine Addition + anschließendem Normalize?

Leider nicht. Wenn man es so machen würde könnte die Normale zB nie 45° oder mehr von der Vertexnormalen abweichen. Theoretisch sollte sie das aber.
Zum Beispiel: Vertex-Normale ist (0,0,1). Bumpmap ist komplett Rot (also währe die Richtung in der Bumpmap (1,0,0)). Als Normale sollte dann auch (1,0,0) rauskommen. Bei deiner Variante währe es aber (0.71, 0, 0.71).

Man brauch außerdem eine Tangente, sonst kann man nicht feststellen ob die Textur vllt auf dem Kopf steht. Dadurch würde sich die Richtung ja umkehren. Ireyon macht das in seinem Code mit "dFdx" und "dFdy" wodurch er die Richtung der Änderung die beim Interpolieren der Vertices entsteht bekommt.


Zuletzt geändert von Schläfer am Fr Aug 12, 2011 15:51, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DFS und Bumpmapping
BeitragVerfasst: Fr Aug 12, 2011 15:45 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Ireyon hat geschrieben:
wo wir gerade dabei sind: Kann mir irgendjemand sagen, was dFdx und dFdy eigentlich konkret berechnen?

Coolcat hat geschrieben:
Es wird die lokale Ableitung der Texturkoordinaten berechnet bzw. approximiert. Das geht über Forward- bzw. Backward Differencing, also die Differenz zum Nachbarpixel. Kann man in GLSL über die Funktionen dFdx() und dFdy() machen.
Die Diskussion geht noch weiter auf http://www.delphigl.com/forum/viewtopic.php?f=2&t=9533&p=82706#p82706


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]