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

Aktuelle Zeit: Fr Jul 18, 2025 14:14

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Textur bei großen Räumen
BeitragVerfasst: Di Jan 17, 2006 19:44 
Offline
DGL Member

Registriert: Mo Jan 16, 2006 16:52
Beiträge: 20
Hallo,

ich habe einen großen Raum (mehrere 100 Einheiten lang) aus mehren QUADS erstellt. Jetzt versuche ich die Wände mit einer Textur der Größe 512x512 zu belegen. Aber irgendwie sieht das ziemlich blöd aus. Ich habe versucht die Textur entsprechend oft zu kacheln, aber das sieht trotzdem blöd aus. Was mache ich falsch?

Code:
  1.  
  2. PROCEDURE TForm1.CreateRoom(x1,z1,x2,z2:Single);
  3. VAR
  4.   WallLength: Single;
  5.   WallHeight: Single;
  6. BEGIN
  7.   WallLength := sqrt(power((x2*100-x1*100),2)+power((z2*100-z1*100),2));
  8.   WallHeight := sqrt(power((x2*100-x1*100),2)+power(20,2));
  9.   glBegin(GL_QUADS);
  10.     glTexCoord2f(0,0); glVertex3f(X1*100,0,-Z1*100);
  11.     glTexCoord2f(0,1*WallHeight); glVertex3f(X1*100,20,-Z1*100);
  12.     glTexCoord2f(1*WallLength,1*WallHeight); glVertex3f(X2*100,20,-Z2*100);
  13.     glTexCoord2f(1*WallLength,0); glVertex3f(X2*100,0,-Z2*100);
  14.   glEnd;
  15. END;
  16.  


Screenshot ist im Anhang.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 17, 2006 20:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Deine Texturkoordinaten sind viel zu groß. Normal bewegen sich die Koordinaten im bereich von 0 und 1. Du solltest dir also in deinem Debugger mal die Werte WallHeight und WallWidth anschauen. Oder mal ausgeben. Könnte mir vorstellen, dass deine Berechnung da ziemlich durchknallt.

Kleiner Tipp am Rande. Vor einer ganzen Weile war da schon mal was. Mitunter haben (ältere) Grafikkarte bei häufigen Wiederholungen teilweise Probleme. Wenn du dann anstelle deine Textur zu kacheln lieber die Quads zerschneidest und dann normal die Textur drauf klebst, dann ging es in dem Fall. Das war irgendwie ein Füllratenproblem. Musste mal schauen ob da so was in der Art auftritt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 01:11 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Aber das war doch dadurch erkenntlich, dass die Framerate in den Keller ging, oder? Also kein Optikproblem.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 06:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja wie gesagt. Das Füllratenphänomen muss nicht auftreten. Es kann. Ich meine Aya hatte das mal bei einem Weltraumhintergrund oder so. Wobei ich sagen muss, dass 37 FPS alleine für einen großen raum auch nicht die Wucht sind. Aber da die Texturen auf dem Bild anscheinend extrem häufig gekachelt werden (erkennbar an dem Moireeffekt) ist das denke ich derzeit auch ein Seiteneffekt. Aber es ist ja nicht gewollt, dass sie so häufig gekachelt werden. Weswegen ich denke, dass man das auch erst mal außer acht lassen kann. Nur für später falls mal auch das letzte bisschen Geschwindigkeit herrausholen will.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 09:53 
Offline
DGL Member

Registriert: Mo Jan 16, 2006 16:52
Beiträge: 20
Also die Framerate ist normalerweise so bei 97-100 FPS. Die ist auf dem Screenshot nur so weit unten, da das Programm schon eine Zeit lief und nix gemacht wurde. Sobald ich mich wieder bewegt habe ging die wieder hoch auch 97FPS.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 10:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Auch ne Möglichkeit. ;-)

Hast du mal wegen der Texturkoordinaten geschaut. Also Speziell was bei WallLength und WallHeight raus kommt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 10:43 
Offline
DGL Member

Registriert: Mo Jan 16, 2006 16:52
Beiträge: 20
Also WallHeight hab ich mal ganz weggelassen, da sich die Höhe ja gar nicht ändert (wie mir hinterher irgendwie aufgefallen ist). WallLength gibt in der Tat viel zu große Werte aus. Hab's jetzt stark verkleinert. Aber irgendwie hab ich das Gefühl, dass der mir das immernoch nicht richtig anzeigt. Die Textur ist jetzt zwar schon gut erkennbar, aber die Mauersteine scheinen mir bei manchen Mauern mehr gestreckt als bei anderen. Gibt es da nicht irgendwas wie man das vereinheitlichen kann?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 11:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Du musst natürlich das Seitenverhältnis deiner Textur beibehalten. Wenn du zum Beispiel auf eine Höhe von 20 die Textur 4 Mal kachelst, dann musst du bei einer Breite die Textur natürlich 6 Mal kacheln. Damit behältst du dann das Seitenverhältnis bei und die Textur sieht nicht verzerrt oder so aus.

Sollten ich das falsch verstanden haben dann bitte ein Bild anhängen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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 | 15 Queries | GZIP : On ]