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

Aktuelle Zeit: Di Jul 08, 2025 13:47

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Textur auf Polygon Strip
BeitragVerfasst: Mo Apr 09, 2007 11:37 
Offline
DGL Member

Registriert: Mo Apr 09, 2007 02:54
Beiträge: 5
Hallo zusammen.

Seit 2-3 Wochen hat mich nun auch das openGL Fieber gepackt und ich bin fleißig am ausprobieren. Eure Seite war mir bisher eine wahnsinns unterstützung, aber leider stehe ich jetzt vor einem Problem, wo mir bei aller logik keine gescheite lösung einfällt.

Ich habe (zum besseren Verständnis) eine Sphäre selbst implementiert. Das hat auch soweit funktioniert (ist ein kleiner fehler, das soll hier aber jetz keine rolle spielen) nun will ich einfach auf jedes der Polygone eine Textur Kleben. Das klappt auch ganz gut, dummerweise ist jedes zweite textur seitenverkehrt.

Code:
  1.     for(k = 0; k<=latitudes; k++)
  2.     {
  3.         j=k-latitudes/2.0 -1.0;    
  4.         glBegin(GL_TRIANGLE_STRIP);
  5.             for(i = 0; i<=longitudes; i++)
  6.             {
  7.                 p0[0]=radius*sin(latDist*j); //x1
  8.                 p0[1]=radius*cos(latDist*j)*sin(longDist*i); //y1
  9.                 p0[2]=radius*cos(latDist*j)*cos(longDist*i); //z1
  10.                
  11.                 p1[0]=radius*sin(latDist*(j+1)); //x2
  12.                 p1[1]=radius*cos(latDist*(j+1))*sin(longDist*i); //y2
  13.                 p1[2]=radius*cos(latDist*(j+1))*cos(longDist*i); //z2
  14.  
  15.                 if(i%2==0)  glTexCoord2f(0,0);
  16.                 else        glTexCoord2f(1,0);                                                             
  17.                 glVertex3d(p0[0], p0[1], p0[2]);
  18.  
  19.                 if(i%2==0)  glTexCoord2f(0,1);
  20.                 else           glTexCoord2f(1,1);
  21.                 glVertex3d(p1[0], p1[1], p1[2]);
  22.             }
  23.         glEnd();
  24.     }


warum das so ist ist mir einigermaßen klar. ich setze ja abwechselnd zu jedem punktepaar einmal die linken punkte der textur und dann die rechten. opengl sieht diese immer als start und endpunkte und spiegelt dann jdesmal rechte texturseite zuerst ankommt. weiß jemand da rat?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 09, 2007 12:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Es handelt sich hier einfach um eine Grundsatzfrage. Was Du dem Punkt für eine TexturKoordinate mitgibst, musst Du selbst entscheiden.

Es gibt die Möglichkeit, das Ganze pro Polygon zu betrachten, dann hat der Punkt X mehrere Texturkoordinaten. Dann kannst Du auf jedes Kugel-Polygon eine Textur "kleben".

Wenn Du aber nur eine Texturkoordinate pro Punkt haben willst, dann mußt Du Deine Kugel als Ganzes "bekleiden", dh. eine 2D-Textur muss als Ganzes auf die sphärische Oberfläche der Kugel aufgebracht ("gemappt") werden.

Ein Link dazu: http://local.wasp.uwa.edu.au/~pbourke/texture_colour/spheremap/

(Ich hoffe, Du kannst Englisch, wenns daran scheitert, kann ich Dir gerne helfen)
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 09, 2007 15:57 
Offline
DGL Member

Registriert: Mo Apr 09, 2007 02:54
Beiträge: 5
Erstmal danke für die Superschnelle antwort. Ich hab nen denkfehler gemacht mit meiner modulorechnung. Es reicht ja einfach jedem punkt immer wieder die gleichen Texturkoordinaten zu geben :) hab jetz ein schickes gsicht auf meiner kugel :D


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


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.012s | 17 Queries | GZIP : On ]