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

Aktuelle Zeit: Do Jul 10, 2025 10:43

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



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texturen auf Runden Objekten
BeitragVerfasst: Di Dez 30, 2003 15:21 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also ich hab schon vor einiger Zeit beim DukesOfWar mit DopeFish zusammen ne Textur für den Untergrund gebastelt. Das geht ja auch problemlos. Nun sieht das aber blöde aus, weil alles andere untexturiert ist. Ich würde ja gern meinen Bäumen Texturen verpassen aber ich weiß nicht wie ich das machen soll. Ich hab mal was von TextureToQuadric gehört aber kein Beispiel gefunden.
Könnte mal eben einer ein kurzes Beispiel posten?

Flash
(PS: Als Textureloader nehm ich die glBMP aus dem DGLSDK)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 30, 2003 15:44 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Ich seh kein Problem. Deine Bäume sollten ja als Vertexdaten vorliegen. Jetzt brauchst du nur noch Texturekoordinaten (Planar Mapping) und schon alles texturiert.

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 31, 2003 21:32 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also das is mir jetzt noch net ganz klar. Ich hab die Bäume als Quadric(Cylinder) genommen. Voher weis ich jetzt welche Koordinaten ich wohin mappen muss? (UV-Mapping??)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 31, 2003 21:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Mit gluQuadricTexture kannst du angeben ob deine gluQuadric Texturkoordinaten erhalten soll oder nicht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 31, 2003 23:47 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hmm also der Befehl und was er macht, klingt gut... :D

gluQuadricTexture(obj, GL_TRUE); erstellt Textur-Koordinaten für die Quadric "Obj". 8)
Was jetzt als nächstes kommt, is für dich höchstwahrscheinlich, glasklar und pipi einfach... aber ich hab keine ahnung. :oops:

Währst Du vieleicht noch so nett und könntest mir die nächsten Schritte erklären bis ich meine Texture auf meinem Objekt sehen kann :?:

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 00:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Initialisierung :
- Textur laden
- Quadric erstellen
- Quadric mitteilen das es Texturkoordinaten verwenden soll

Rendern :
- Textur binden
- Quadric zeichnen

So einfach geht das...Texturen laden tust du am besten mit ner fertigen Library á la LossyEx glBitmap, die sich im DGL-SDK befindet.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 01:49 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
klingt eigentlich ganz einfach...
Ich habe ein kleines Testprogramm gebastelt. Es basiert auf dem VCL-Template aus dem DGLSDK:

folgendes hab ich verändert:

Code:
  1. uses glBMP;
  2. var texture : tglBMP;
  3.  
  4. procedure TDemoForm.FormCreate(Sender: TObject);
  5. begin
  6.   //OpenGL ist noch nicht bereit
  7.   OpenGLInitialized := False;
  8.   //Nur starten, wenn die Bibliotheken auch geladen sind
  9.   if not LoadOpenGL then
  10.     Halt(100);
  11.   Texture:=TGLBMP.Create('tex1.jpg');
  12.   Texture.GenTexture();
  13. end; (*FormCreate*)


außerdem: In Form.destroy: Texture.free;

und das wird gezeichnet:

Code:
  1.   glrotatef(33,1,0,0);
  2.   glEnable(GL_TEXTURE_2D);
  3.  
  4.   Obj := gluNewQuadric;
  5.  
  6.   glcolor3f(0,0.4,0.25);
  7.   glrotatef(-90,1,0,0);
  8.   gluQuadricTexture(Obj,true);
  9.   glBindTexture(GL_TEXTURE_2D,Texture.TextureID);
  10.   gluCylinder(Obj,1,0.4,1.2,8,5);
  11.  
  12.   glPushmatrix();
  13.   gltranslatef(0,0,0.8);
  14.   glcolor3f(0,0.5,0.3);
  15.   gluQuadricTexture(Obj,True);
  16.   glBindTexture(GL_TEXTURE_2D,Texture.TextureID);
  17.   gluCylinder(Obj,0.8,0.2,1,7,5);
  18.   glPopmatrix();
  19.  
  20.   glPushmatrix();
  21.   gltranslatef(0,0,1.5);
  22.   glcolor3f(0,0.6,0.35);
  23.   gluCylinder(Obj,0.6,0,1.5,5,5);
  24.   gluQuadricTexture(Obj,True);
  25.   glPopmatrix();
  26.  
  27.   glColor3f(0.3,0.2,0);
  28.   gltranslatef(0,0,-0.85);
  29.   gluCylinder(Obj,0.3,0.2,2.25,12,3);
  30.  
  31.   glDisable(GL_TEXTURE_2D);
  32.   gluDeleteQuadric(Obj);


Der Baum is aber noch überhaupt nich Texturiert. Wieso?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 10:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Man muss das dann auch schon so machen wie SoS sagt ;) ...

Kann es irgendwie sein das du jedes Frame nen neues Quadric machst?!?
Der Aufruf von Obj := gluNewQuadric; gehört in die glinit!
Und es reicht wenn du gluQuadricTexture(Obj,True); einmal, auch in der glinit aufrufst.
Ich habs ausprobiert, funzt.
(Ich denke mal das was ich mit glinit bezeichne ist FormCreate bei dir)

IMHO müsste die Texturierung aber auch mit dem Quelltext funzen den du gepostet hast, folglich würde ich sagen das du da irgendwas mit der texture falsch machst.

mfg las


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 12:30 
Offline
DGL Member

Registriert: So Okt 12, 2003 14:53
Beiträge: 74
glEnable(GL_TEXTURE_2D); musst du auch nicht jedesmal aufrufen wenn du renderst. Wenn ich das richtig sehe steht dieser Befehl auch zwischen den glBegin und glEnd befehlen. Wenn das so ist dann schreib die mal außerhalb davon. Ich meine mich erinnern zukönnen das ich mal ein ähnliches Problem mit Texturen hatte und das auf diese Weise gelöst hab.

Edit: Oder besser gesagt schreib alle Befehle die irgendwas mit der Texturzuweisung zu tun haben außerhalb der glBegin und glEnd Befehle, also z.B. glBindTexture.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 12:43 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Na, die FormCreate läd nur die OpenGl Bibliotheken. Schau dich mal nach der Stelle um, wo die Pixelformate erstell werden und schließlich der Rendercontext. Dort müsste dann auch die ganzen Einstellungen gemacht werden und genau dahin gehört dein Texturladen. Meinetwegen auch irgendwann später, aber bevor kein Rendercontext da ist, kannst du auch keine Texturen laden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2004 13:33 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nach einigen (weinigen :wink: ) Umstrukturierungsmaßnamen gehts jetzt auch bei mir.

Danke!

_________________
Blog: kevin-fleischer.de und fbaingermany.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.008s | 14 Queries | GZIP : On ]