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

Aktuelle Zeit: Fr Jul 18, 2025 15:58

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



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bumpmapping + Vertex Lighting
BeitragVerfasst: Di Mai 09, 2006 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Hallo erstmal

ich habe mich mal mit dem Thema NormalMaps und Bumpmapping beschäftigt. Als ich dann das Tutorial Bumpmapping im dgl.wiki gelesen habe, hab ich erstmal ne kleine Versuchsanwendung programmiert.
In diese habe ich ein Vertex-Light eingebaut - funktioniert auch noch super. Aber jetzt kommt das Problem:
Egal welche Farbe ich dem Light zuweise, es kommt immer weiß raus.
Die Sache mit dem NV-Combiner ist mir nicht gerade sehr geläufig. Aber vieleicht könnt ihr mir ja helfen.

Hier kurz der Source aus meinem Testprogramm:

Code:
  1.  
  2.   {         Textur         }
  3.   glActiveTextureARB(GL_TEXTURE1_ARB);
  4.   glEnable(GL_TEXTURE_2D);
  5.   glBindTexture(GL_TEXTURE_2D,FTex2);
  6.   {        Bumpmap      }
  7.   glActiveTextureARB(GL_TEXTURE0_ARB);
  8.   glEnable(GL_TEXTURE_2D);
  9.   glBindTexture(GL_TEXTURE_2D,FTex1);
  10.  
  11.   glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
  12.   glEnable(GL_REGISTER_COMBINERS_NV);
  13.  
  14.   glCombinerInputNV(
  15.     GL_COMBINER0_NV,            //Combiner, der benutzt wird
  16.     GL_RGB,
  17.     GL_VARIABLE_A_NV,           //Variable beim Combiner
  18.     GL_TEXTURE1_ARB,            //Wert: Bumpmap Textur
  19.     GL_EXPAND_NORMAL_NV,
  20.     GL_RGB
  21.   );
  22.  
  23.   glCombinerInputNV(
  24.     GL_COMBINER0_NV,            //Combiner, der benutzt wird, wie oben
  25.     GL_RGB,
  26.     GL_VARIABLE_B_NV,           // Variable beim Combiner
  27.     GL_PRIMARY_COLOR_NV,        //Wert: RGB Wert der Oberfläche
  28.     GL_EXPAND_NORMAL_NV,
  29.     GL_RGB
  30.   );
  31.  
  32.   glCombinerOutputNV(
  33.     GL_COMBINER0_NV,
  34.     GL_RGB,
  35.     GL_SPARE0_NV,       // Output von A und B
  36.     GL_DISCARD_NV,      // Output von C und D
  37.     GL_DISCARD_NV,      // Summe von allen Variablen
  38.     GL_NONE,            // Skalierung
  39.     GL_NONE,            // Bias
  40.     ByteBool(1),            // Ja/Nein Output von A und B
  41.     ByteBool(0),           // Ja/Nein Output von C und D
  42.     ByteBool(0)            // Muxsum
  43.   );
  44.  
  45.   glFinalCombinerInputNV(GL_VARIABLE_A_NV, GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
  46.   glFinalCombinerInputNV(GL_VARIABLE_B_NV, GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
  47.  
  48.   glEnable(GL_LIGHTING);
  49.   glEnable(GL_COLOR_MATERIAL); // funktioniert auch ohne aktivierung nicht wirklich
  50.  
  51.   light_position[0] := cos(GetTickCount/200)*2; //(cos(GetTickCount/200) + 1)/2 ;
  52.   light_position[2] := 2;
  53.   light_position[1] := sin(GetTickCount/300)*3; //(sin(GetTickCount/300) + 1)/2 ;
  54.  
  55.   light_color := Vector_Makef3(1,1,1);
  56.    glEnable(GL_LIGHT0);
  57.    glLightfv(GL_LIGHT0, GL_SPECULAR, @light_color[0]);
  58.    glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]);
  59.    glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0);
  60.  
  61.  glBegin(GL_QUADS);
  62.    glMultiTexCoord2dARB(GL_TEXTURE1_ARB,1,0);
  63.    glMultiTexCoord2dARB(GL_TEXTURE0_ARB,1,0);
  64.      glVertex3f(-1,1,0);
  65.    glMultiTexCoord2dARB(GL_TEXTURE1_ARB,0,0);
  66.    glMultiTexCoord2dARB(GL_TEXTURE0_ARB,0,0);
  67.      glVertex3f(-1,-1,0);
  68.    glMultiTexCoord2dARB(GL_TEXTURE1_ARB,0,1);
  69.    glMultiTexCoord2dARB(GL_TEXTURE0_ARB,0,1);
  70.      glVertex3f( 1,-1,0);
  71.    glMultiTexCoord2dARB(GL_TEXTURE1_ARB,1,1);
  72.    glMultiTexCoord2dARB(GL_TEXTURE0_ARB,1,1);
  73.      glVertex3f(1,1,0);
  74.  glEnd();
  75.  
  76.  

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 12, 2006 12:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Hat denn niemand eine Idee?

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.007s | 16 Queries | GZIP : On ]