Registriert: Di Okt 23, 2007 18:03 Beiträge: 49 Wohnort: Dortmund-Scharnhorst
Ich hab im Wiki so ziemlich alles, was ich zu gluQuadrics findne konnte durchgelesen, aber auf meine Frage leider keine Antwort gefunden (womit ich fast schon glaube, dass es nicht möglich ist).
Vorgeschichte: Also, ich schreibe gerade einen simplen Modeleditor, in diesem nutze ich gluQuadrics um Kugeln, Zylinder etc. zu zeichnen, da das damit ja ziemlich einfach geht. Im Moment bin ich dabei, die entstandenen Körper zu texturieren. Es ist ja möglich Texturen zu binden, die dann auch beim zeichnen des quadrics benutzt werden, hierbei wird allerdings die Textur einmal über das gesamte Objekt gespannt. Das sieht dann wenn die Textur relativ klein und das Objekt relativ groß werden soll, nicht mehr wirklich schön aus.
Was ich dazu wissen wollte: Ist es möglich, das gluQuadric so zu zeichnen, dass es die gebundene Textur gekachelt benutzt? Also, die Textur schön nebeneinander wiederholend benutzt?
Falls es nicht geht, welche weiteren Möglichkeiten stehen mir dann offen, was mir einfällt sind: 1. Zeichenroutine für die Kugeln/Zylinder etc. selber schreiben und passende Texturkoordinaten verwenden 2. Gekachelte Texturen benutzen -> führt aber zu erhöhter Texturgröße
MfG
Basti
_________________ Those who fear the dark never saw what light can do...
Registriert: Di Okt 23, 2007 18:03 Beiträge: 49 Wohnort: Dortmund-Scharnhorst
Der Ansatz klingt gut, aber irgendwie will es noch nicht wirklich. Ich hab es mal ausprobiert und auch ein wenig an den Parametern rumgespielt, im Anhang die Ergebnisse:
Kugel1 ist die Kugel mit "Standardtexturierung" d.h. kein aufruf von glscalef auf der Texturmatrix.
Kugel2 ist die Kugel mit dem Aufruf von glscale3f(1,10,5).
Kugel3 ist die Kugel mit dem aufruf von glscalef(5,5,5).
Rechts unten im Bild ist jeweils die gebundene Textur.
Der Code sieht wie folgt aus:
Code:
procedure TKugel.render;
begin
gluQuadricTexture(hilfsobjekt,texturiert); //hilfsobjekt ist das gluquadric texturiert = true
glMatrixMode(GL_TEXTURE);
glloadidentity;
glpushmatrix;
glScalef(1, 1, 1);
glMatrixMode(GL_MODELVIEW);
gluSphere(Hilfsobjekt, Radius, 25, 25); //hier wird die kugel gezeichnet Slices=Stacks=25
glMatrixMode(GL_TEXTURE);
glpopmatrix;
glMatrixMode(GL_MODELVIEW);
end;
MfG
Basti
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
_________________ Those who fear the dark never saw what light can do...
Mitglieder in diesem Forum: Google [Bot] und 10 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.