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

Aktuelle Zeit: Do Apr 18, 2024 02:16

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 15:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hab mal 2 fragen zum BumpMapping:

1.) In dem Tutorial von HomerS hier... da verweist er zwar auf das Tutorial von Jan Horn, aber irgendwie ist das ganze bei Jan Horn komplett andes gelöst als in HomerS' tutorial... welcher weg ist denn nu der bessere???

Das ist JanHorn's Methode:
Code:
  1. procedure glDraw();
  2. begin
  3.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);    // Clear The Screen And The Depth Buffer
  4.   glLoadIdentity();                                       // Reset The View
  5.   glTranslatef(0.0,0.0,-4);
  6.  
  7.   glBindTexture(GL_TEXTURE_2D, BumpmapTex);
  8.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
  9.   glDisable(GL_BLEND);
  10.  
  11.   glBegin(GL_QUADS);
  12.     glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0,  0.0);
  13.     glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0,  0.0);
  14.     glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0,  0.0);
  15.     glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0,  0.0);
  16.   glEnd();
  17.  
  18.   glMatrixMode(GL_TEXTURE);
  19.   glPushMatrix();
  20.     glTranslatef((xCoord-Width/2)/BumpAmount , (Height/2-yCoord)/BumpAmount, 0 );
  21.  
  22.     glBlendFunc(GL_ONE,GL_ONE);
  23.     glEnable(GL_BLEND);
  24.  
  25.     glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
  26.     glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT,  GL_ADD_SIGNED_EXT);
  27.     glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT,  GL_PRIMARY_COLOR_EXT );
  28.     glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT,  GL_TEXTURE);
  29.     glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
  30.     glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
  31.  
  32.     glBegin(GL_QUADS);
  33.       glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0,  0.0);
  34.       glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0,  0.0);
  35.       glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0,  0.0);
  36.       glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0,  0.0);
  37.     glEnd();
  38.   glPopMatrix;
  39.  
  40.   glMatrixMode(GL_MODELVIEW);
  41.  
  42.   if TextureBackground then
  43.     glBindTexture(GL_TEXTURE_2D, Background2Tex)
  44.   else
  45.     glBindTexture(GL_TEXTURE_2D, BackgroundTex);
  46.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  47.   glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR);
  48.  
  49.   glBegin(GL_QUADS);
  50.     glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0,  0.0);
  51.     glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0,  0.0);
  52.     glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0,  0.0);
  53.     glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0,  0.0);
  54.   glEnd();
  55. end;


Sieht irgendwie leichter aus ;)

2.) Im Tutorial steht das man die BumpMaps mit dem nVidia Tool machen muß, und bei der beschreibung vom Tool steht das nur TGAs unterstüzt werden.. Jan Horn hat aber ein BMP als BumpMap genutzt... wie das? :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 16:44 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3827
Wohnort: Tespe (nahe Hamburg)
Da liegt wohl ne kleines Mißverständnis vor ;D
@1 u. 2:
Es gibt natürlich immer unterschiedliche Verfahren, wie man Bump-Mapping erreichen kann, dass ist eben keine neue Technik. Jan Horn löst dies auf einer alten, die natürlich den Vorteil hat, dass sie auf fast jeder Grafikkarte laufen sollte. Er zeichnet das Objekt zweimal, eines davon leicht versetzt, so entsteht der Eindruck einer Bump-Map. Habe ich damals in 2D-Zeiten schon so eingesetzt. Homers zeigt eine neue Methode auf mittels RegisterCombiner. Sieht besser aus, braucht aber auch mehr Power. Um diese Technik zu nutzen, muss man unter anderen Normal-Maps einsetzen (s.a. Doom3). Diese lassen sich mit dem NVIDIA-Tool erzeugen. Ich denke Lars könnte hier Bände füllen, da ne Blick in seinen Textur-Ordner erahnen läßt, dass hier nicht Jans weg gewählt wurde ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 17:26 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
@Phobeus: Was für verschiedene Methoden fürs Bumpmapping gibt es denn überhaupt so?
Und ab welchen Grakas laufen diese? Icvh dachte schon fast es sei etwas, dass sich nur mit Karten ab einer GF1 erreichen läßt, aber so wie du das sagst, macht mir das irgendwie Hoffnung ;-)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 17:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

ok... dann hab ich 2 neue fragen *grinst fröhlich frech*

1.) Kann man die BumpTextur irgendwie selber erstellen??? (also ohne das Tool..?)

2.) wie kann ich bei dem verfahren die stärke des BumpMappings angeben???

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 18:57 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
GAST (HomerS) hat geschrieben:
@ 1.) Was hast du gegen dieses Tool? Einfacher geht es als Plugin für verschiedene Malprogramme (PhotoShop, ...)

Rein theoretisch garnix :)
aber, ich möchte die BumpMap Generierung in mein Editor mit einbinden.. klar könnte ich da einfach das Programm mit den Parametern aufrufen, aber.. na ja, wenn es ne möglichkeit gibt würde ich das lieber direkt einbinden... :unsure:

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 05, 2003 19:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hab nocheine frage.. (Ich hab das mit BumpMapping nochnie ausprobiert)

So wie ich das grad verstehe erstellt das nVidia Tool eine 32Bit TGA Datei... im RGB is die normale Textur, und im Alpha Kanal die HeightMap...

oder versteh ich das grad falsch? :unsure:

Worauf ich hinauswill... äh.. Ich hab für ein Quad eine Textur und eine BumpMapping Textur... das muß dann aber nich zwingendermaßen die gleiche sein, oder???

Beispiel:
Normale Textur ist Kreuz
BumpMap ist ein Kreis

Das Quad soll jetzt als normale Textur das Kreuz bekommen und als BumpMapping Textur den Kreis... das geht doch, oder???

Au'revoir,
Aya~

PS: Wie gesagt, ich hab das nochnich ausprobiert.. bisher nur gelesen ;)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.049s | 19 Queries | GZIP : On ]