AntiAliasing



  • Hey,
    ich benutze zur Zeit die ARB Multisample Extension. Wie kann die möglichen Anzahl der Samples auslesen? glGetString bringt da nicht viel. Gibt es da irgendeine GLEW Funktion?
    Und ist es auch möglich mit dem Shader zu multisamplen? Wenn ja, gibt es irgendwo ein gutes Tutorial?



  • http://www.opengl.org/registry/specs/ARB/multisample.txt

    Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
    GetIntegerv, and GetFloatv:

    SAMPLE_BUFFERS_ARB 0x80A8
    SAMPLES_ARB 0x80A9
    SAMPLE_COVERAGE_VALUE_ARB 0x80AA
    SAMPLE_COVERAGE_INVERT_ARB 0x80AB

    HTH.
    rya.



  • Bei wglChoosePixelFormatARB (teil der WGL_ARB_pixel_format Extension) das WGL_SAMPLES_ARB Attribut verwenden.



  • Wenn ich WGL_SAMPLES_ARB benutze, kommt bei mir irgendeine sinnlos hohe Zahl heraus. Wenn ich GL_SAMPLES_ARB verwende, kommt immer die aktuelle Anzahl der benutzten Samples raus.
    Das Cap bekomme ich damit aber nicht raus.



  • Pikkolini schrieb:

    Wenn ich WGL_SAMPLES_ARB benutze, kommt bei mir irgendeine sinnlos hohe Zahl heraus.

    Und wie genau verwendest du WGL_SAMPLES_ARB!?



  • Ich glaub ihr versteht mich falsch.
    Ich will nicht wissen, wie ich die Anzahl der Samples oder so bestimme. Das ist alles klar.
    Ich möchte wissen, wie es möglich ist die maximale Anzahl der Samples rauszubekommen.
    Mit glGet bekomme ich nur, wieviele ich momentan Benutze.



  • Von glGet hab ich auch nie was gesagt, oder?

    dot schrieb:

    Bei wglChoosePixelFormatARB (teil der WGL_ARB_pixel_format Extension) das WGL_SAMPLES_ARB Attribut verwenden.

    Edit: Sry in deinem Fall brauchst du natürlich auch wglGetPixelFormatAttribivARB.



  • Tu ich...

    int iAttributes[] = {
    		WGL_DRAW_TO_WINDOW_ARB,GL_TRUE,
    		WGL_SUPPORT_OPENGL_ARB,GL_TRUE,
    		WGL_ACCELERATION_ARB,WGL_FULL_ACCELERATION_ARB,
    		WGL_COLOR_BITS_ARB,24,
    		WGL_ALPHA_BITS_ARB,8,
    		WGL_DEPTH_BITS_ARB,16,
    		WGL_STENCIL_BITS_ARB,0,
    		WGL_DOUBLE_BUFFER_ARB,GL_TRUE,
    		WGL_SAMPLE_BUFFERS_ARB,GL_TRUE,
    		WGL_SAMPLES_ARB, level,
    		0,0};
    

    Aber was du mir wahrscheinlich sagen willst, ist, dass ich immer eine Probe mit der jeweiligen Anzahl der Samples machen muss, ob da auch was rauskommt.



  • Pikkolini schrieb:

    Aber was du mir wahrscheinlich sagen willst, ist, dass ich immer eine Probe mit der jeweiligen Anzahl der Samples machen muss, ob da auch was rauskommt.

    So in der Art hätt ichs jetzt mal versucht. Oder eben z.B. ChoosePixelFormat mit einem sehr hohen Sample Count gemacht und geschaut was er als closest match liefert...



  • Wenn ich einen sehr hohen Sample Count benutze, kommt bei mir als closest match immer 0.



  • Ok dann wirst du wohl einfach alle Werte durchtesten müssen und schauen wie weit du kommst.



  • Das mit dem Maximum habe ich überlesen, sorry.
    Aber bei mir gibt folgender Code:

    int aa = 0;
    	glGetIntegerv(GL_MAX_SAMPLES, &aa);
    	std::stringstream ss;
    	ss << "Maximum Multisample: " << aa;
    	NLTrace(ss.str());
    

    diese Ausgabe:

    Maximum Multisample: 8

    HTH
    rya.



  • dot schrieb:

    Ok dann wirst du wohl einfach alle Werte durchtesten müssen und schauen wie weit du kommst.

    Nö - wie Scorcher24 schon schrieb kann man diesen Wert abfragen (siehe auch OpenGL 4.1 corespecs - page 395 - table 6.54.

    Damit ist es dann recht einfach über wglChoosePixelFormatARB ein geeignetes PixelFormat abzufragen.


Anmelden zum Antworten