zuallererst: ich habe schon gesucht aber irgendwie nix passendes gefunden. falls ich doch was übersehen habe, großes sorry!
zu meinem problem:
ich habe selbst eine funktion programmiert, mit der ich einen zylinder darstellen kann. es sind immer rechtecke, die in einem bestimmten winkel (der von der anzahl der rechtecke abhängt, also je mehr rechtecke, desto größer der winkel) zusammenhängen und letztendlich fast einen kreis, also den zylinder bilden. die normalen sind auch gesetzt. bis hierhin funktioniert alles prima.
jetzt lege ich texturen drauf (also eine textur auf eine recheckige fläche). bei ca 40 flächen sieht der zylinder eindeutig rund aus. das heißt, ich brauche auch 40 texturen. alles komplett geladen und draufgelegt - funktioniert immer noch gut - AUßER: an den rändern verschwimmen die texturen!! es sieht so aus, als ob da, wo der schatten zu sehen sein sollte, die texturen verwischen und unscharf werden.. ich verzweifle.
ein bild davon hänge ich mal an. der grüne pfeil zeigt, wie es normal aussehen sollte, die roten zeigen die unschärfe.
das sind die texturparameter:
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
weiß jmd rat? wie stelle ich das ab? und wie kann ich, mal ganz nebenbei, mit dem befehl glucylinder() erzeugte zylinder mit texturen versehen?
gruß,
lukas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Dein Problem ist nicht wirklich eins. Du hast so weit ich das sehe MipMapping aktiviert, und als Filter nicht Trilineare Filterung aktiviert. Der obere Teil des Zylinders ist näher am Beobachter/Kamera, hier wirkt eine schärfere Texturauflösung. Die Seiten sind weiter entfernt, so dass OpenGL hier die nächste MipMapping Texturauflösung wählt. Dadurch sieht das ganze verschwommener aus.
Es gibt 2 Möglichkeiten, das Problem zu beseitigen. Erstens, wenn dich die Auflösung selbst stört, dann solltest du die Texturauflösung erhöhen.
Wenn dich nur der Filter stört, dann kannst du mit GL_TEXTURE_MIN_FILTER auf GL_LINEAR das Mipmapping abstellen, dadurch verschwindet der Übergang, aber es wird nicht unbedingt schöner.
Du kannst auch Trilineare Filterung mit GL_TEXTURE_MIN_FILTER auf GL_LINEAR_MIPMAP_LINEAR anstellen und dann bei Bedarf und Unterstützung durch die Grafikkarte den anisotropischen Filter aktivieren ( ich glaube GL_TEXTURE_MAX_ANISOTROPY_EXT auf größer 0 stellen, im Regelfall auf 8).
Da hilft nur probieren, aber an der Berechnung des Zylinders liegt es nicht.
_________________ "Wer nicht arbeitet, kann auch nichts falsch machen"
ich habe es so versucht, wie du es geschrieben hast, aber es hat nicht richtig geklappt. die texturen waren immer noch verschwommen. ich habe dann letztendlich doch noch eine lösung gefunden, wie man auf einen standard opengl zylinder texturen setzt, und das hat wunderbar geklappt. vielleicht lags ja an meinem selbstgebasteltem zylinder..
Mitglieder in diesem Forum: 0 Mitglieder und 9 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.