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

Aktuelle Zeit: Di Mai 14, 2024 07:10

Foren-Übersicht » DGL » Feedback
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: "Texturen, Tapeten und Ihre Tücken"
BeitragVerfasst: Sa Jan 23, 2010 09:55 
Offline
DGL Member

Registriert: So Dez 27, 2009 11:31
Beiträge: 3
Hallo Forum,

ein kleines Feedback zum Textur-Einsteiger Tutorial...

ich hatte ein großes Problem als ich den Teil, wo die einzelnen Ziffern abgebildet werden, nach machen wollte. Und zwar genau dann als ich 96 Zeichen nach diesem Verfahren verarbeiten wollte. Ich hab mir eine Textur gebaut in der 96 Zeichen (Ascii: 32..128) neben einander stehen. Die Textur hatte die Maße 1024x16. Bei der Darstellung kamen dann bunte Striche und seltsames Wirrwar. Ich hab dann eine Textur mit noch höher Aufflösung: 3840 x 64 gebaut und das sah genau so aus. Dann hab ich einfach mal y vervierfacht... also 3840 x 256 und beim Texturspannen den y-wert durch 4 geteilt (damit die zeichen nicht gestaucht werden) und jetzt klappt es prima. Es scheint wohl so als ob so sehr extreme höhe/breite verhältnisse nicht sauber funktionieren oder? Jetzt werd ich mir einfach mehr quadrahtische Textur bauen in der mehrere Schriften unter ein ander liegen, damit ich nicht so viel Texturspeicher verschenke.
Naja gründlich lesen tut man eine Tutorial ja immer nur dann wenns nicht gleich klapp ;) Im Absatz texturen richtig zubereiten steht ja die bedingung 2^n X 2^n, heisst das, das die Texturen nur gut aussehen wenn sie quadratisch sind?
Weil dann ist der Vorschlag mit den Ziffern und der Textur 256 x 32 ja schon nicht mehr ganz so sauber, oder?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jan 23, 2010 10:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Ääähmm...
Nein ^^
1024x16 ist ein pot2-Textur, müsste also super gehen. Zeig doch mal deinen Code. Er müsste, damit es richtig ist, ungefähr so aussehen:
Code:
  1. procedure drawzeichen (texture: GLuint;zeichen:integer); //32..127 (128 wären 97 Zeichen!)
  2. begin
  3.   glBindTexture(texture);
  4.   glBegin(GL_QUADS);
  5.     glTexCoord2f(zeichen/96    ,0);glVertex3f(-1, 1,0);
  6.     glTexCoord2f(zeichen/96    ,1);glVertex3f(-1,-1,0);
  7.     glTexCoord2f((zeichen+1)/96,1);glVertex3f( 1,-1,0);
  8.     glTexCoord2f((zeichen+1)/96,0);glVertex3f( 1, 1,0);
  9.   glEnd;
  10. end;

Das müsste dir ein Zeichen an die Position 0,0,0 malen. Dementsprechend solltest du vorher glTranslatef benützen. ;-)
Mir tut sich aber beim Codeschreiben die Frage auf, ob du die 96 Zeichen wirklich alle in gleicher Breite in der Textur hinterlegt hast? Dann müsste ein Zeichen ja 1024/96=10,6̅ lang sein.

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


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 » DGL » Feedback


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.024s | 19 Queries | GZIP : On ]