Unterschied zwischen GL_NEAREST und GL_LINEAR [OpenGL]
-
Bei der Option glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); unter OpenGL seh ich überhaupt keinen Unterschied zwischen GL_NEAREST und GL_LINEAR. Beides sieht kacke aus. Ich hab das ganze mal mit einer Grafik die aus schwarzen Strichen besteht getestet und es gibt wirklich keinen Unterschied. Wie kann ich aktivieren, dass die Texturen schön weich verkleiner werden?
mfg.
-
Wenn die Textur beim Rendern zu stark verkleinert wird, siehst du auch kaum einen Unterschied. Du musst entweder Mipmapping verwenden oder darauf achten, dass die Textur mindestens mit der Hälfte ihrer tatsächlichen Größe gezeichnet wird. Dann siehst du es.
-
ich bin zwar unwissend, aber ich glaube einen Vorteil siehst du erst wenn du eine Rastergrafik vergrößerst:
-
@Vertexwahn: es gibt beides - Filtering zum Vergrößeren und zum Verkleinern. Kann man auch beides getrennt einstellen.
-
ps: die Grafik ist von mir selbst erstellt: http://turing.fh-landshut.de/~jamann/2dgrafik.JPG
oder wolltest du vielleicht auf den Effekt hinaus:
http://turing.fh-landshut.de/~jamann/verkleinern.PNG
-
-
Vertexwahn schrieb:
ps: die Grafik ist von mir selbst erstellt: http://turing.fh-landshut.de/~jamann/2dgrafik.JPG
oder wolltest du vielleicht auf den Effekt hinaus:
http://turing.fh-landshut.de/~jamann/verkleinern.PNGGenau den Effekt mein ich, zwar nicht ganz so extrem. Wie kann man den vermeiden?
mfg.
-
Mit MipMapping.
-
Ringding schrieb:
Mit MipMapping.
Stimmt, damit sieht's gut aus.
Vertexwahn schrieb:
oder wolltest du vielleicht auf den Effekt hinaus:
http://turing.fh-landshut.de/~jamann/verkleinern.PNGSagen wir mal, ich will jetzt genau diesen Effekt haben, wie stell ich das an? Weil mit GL_NEAREST beim verkleinern, errechnet er trotzdem manchmal noch Zwischenwerte.
mfg.
-
Das hängt einfach vom Verkleinerungsfaktor ab. Wenn genau 1:2 verkleinert wird, dann wird nur jedes zweite Pixel genommen, und alles wird rot (oder blau).
-
-
Sagen wir mal, ich will jetzt genau diesen Effekt haben, wie stell ich das an?
ich habs mit nearest Neighbour geschaft

um sgt. nukem mal nachzumachen ;):
-
Vertexwahn schrieb:
ich habs mit nearest Neighbour geschaft

Okay, aber wie aktiviere ich das bei OpenGL?
mfg.
-
joomoo schrieb:
Vertexwahn schrieb:
ich habs mit nearest Neighbour geschaft

Okay, aber wie aktiviere ich das bei OpenGL?
mfg.
Sry doofe Frage:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);Aber wofür ist:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);ich dachte immer genau das wäre, fürs verkleinern.
mfg.
-
<a href= schrieb:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc03_9upe.asp">GL_TEXTURE_MIN_FILTER The texture minifying function is used whenever the pixel being textured maps to an area greater than one texture element.
MINify = verkleinern
MAGnify = vergrößernGL_LINEAR = bilinear
GL_NEAREST = point-sampling == nearest-neighbour
-
Sgt. Nukem schrieb:
<a href= schrieb:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc03_9upe.asp">GL_TEXTURE_MIN_FILTER The texture minifying function is used whenever the pixel being textured maps to an area greater than one texture element.
MINify = verkleinern
MAGnify = vergrößernGL_LINEAR = bilinear
GL_NEAREST = point-sampling == nearest-neighbourJa, das kenn ich eigentlich auch so. Aber irgentwie, hat bei mir der MIN Filter überhaupt keinen Einfluss. Also der MAG Filter steuert beides, vergrößern und verkleinern. Und ich bin mir sicher das ich die Texture verkleinert und nicht vergrößert hab.
mfg.
-
Verkleinern ist ja auch böse wegen dem Oversampling. Wird denn bei dir überhaupt irgendwo verkleinert?
Bye, TGGC (Demo or Die)
