Hinzufügen von Texturen – Teil 1
Um den geometrischen Figuren mehr Details zu verpassen werden Texturen verwendet (was im Grunde 2D Bilder sind). Der Vorteil soll darin bestehen, dass in einem Bild sehr viele Details eingefügt werden können, sodass die geometrischen Figuren im Endeffekt sehr detaillreich erscheinen ohne dass weitere Eckpunkte hinzugefügt werden müssen.
Die Texture wird dann einfach nur über die Figure “gelegt” oder anders gesagt auf die Koordinaten-Punkte gemapped. Anscheinend werden die Farben über die Texture-Koordinaten abgerufen, was sich sampling nennt. Man kann dann bestimmte Optionen bestimmten, die darüber entscheiden was mit der Texture geschieht den spezifizierten Bereich überschreiben.
Das kann zum Beispiel die Wiederholung des Bildes sein, Spiegelung oder die Erzwingung eines bestimmten Wertes. Diese Optionen werden mit folgender Funktion bestimmt: glTexParameter. Die Parameter s und t stehen hier jeweils für x und y.
Ein Texel ist ein Texture Pixel. Mipmaps sind Texturen die auf Distanz heruntergerechnet werden, da große Bilder mehr Bandbreite verbrauchen und weiterhin hat OpenGL Schwierigkeiten die richtige Farbe bei einer hohen Auflösung zu bestimmten wenn die Objekte in weiter Distanz sind (also sehr klein sind). MipMaps werden von OpenGL mit glGenerateMipmaps erstellt. Für den Wechsel zwischen den Mipmap-Variaten können Optionen mit glTexParameteri festgelegt werden.
Um Bilder in OpenGL zu laden, muss man entweder einen eigenen Import-Algorithmus (Konverter) schreiben oder man nimmt die Import-Library von Sean Barrett namens stb_image.h. Die Anleitung für die Implementierung ist wie so oft in der IT wieder sehr genau: “Now simply include stb_image.h
somewhere in your program and compile.“
Ich wette darauf, dass, wenn ich dem Wortlaut exakt folgen würden, würde es nicht kompilieren. Alleine schon die Worte “simply” und “somewhere” funktionieren in so einem Tutorial einfach nicht. Das Bild wird dann mit der Funktion stbi_load geladen.
No Comment