2011-11-30 12 views
5

Ho cercato di ottenere SDL FSAA con Multisampling funzionante, ma non lo desidera.Multisampling SDL

ho iniziato con qualcosa di semplice:

SDL_GL_SetAttribute (SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute (SDL_GL_MULTISAMPLESAMPLES, 2);

Ma faccio l'associato ottiene e restituisce 0 per i buffer e 1 per i campioni. (sia prima che dopo SetVideo).

Ho provato entrambi sul mio GeForce 280M, e sospettando che si trattasse di un problema di telefonia mobile, l'ho provato sul mio 580 senza fortuna.

Sto utilizzando Windows 7 con driver aggiornati.

Se impongo FSAA nel pannello di controllo NVidia funziona perfettamente, ma non riesco a ottenere l'applicazione per attivarlo.

Qualche idea?

+0

FSAA è anti aliasing a schermo intero. Rende in alta risoluzione e quindi ridimensiona il sesult in modo da visualizzarlo. MSAA è multi-aliasing multi-campionamento. Qui solo il buffer di profondità viene scalato e la percentuale di pixel di profondità visibili definisce l'opacità. FSAA con Multisampling non esiste. – Arne

risposta

1

Queste funzioni devono restituire 0 o -1. Non dovrebbero mai tornare 1. . . quindi non so cosa sta succedendo lì. Sono quei valori di ritorno per qualche altra funzione?

In ogni caso, è importante notare che queste sono richieste. Non c'è alcuna garanzia che siano ciò che pensi di essere. Ecco perché esiste la funzione SDL_GL_GetAttribute (chiamala AFTER SDL_SetVideoMode per vedere cosa hai ottenuto).

Stai richiedendo un buffer multisampling con due campioni per pixel. Non è una quantità enorme di multicampionamento. PRIMA SDL_SetVideoMode, provare quanto segue:

SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); 
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES,16); 

E se vedete bordi smussati, non ti preoccupare.

+0

0 e 1 erano il valore quando ho chiamato SDL_GL_GetAttribute dopo la creazione del contesto. Quindi, sembra che le mie richieste siano state ignorate; Non sono sicuro del perché. Ho appena scelto il 2, perché ho pensato che fosse più probabile che ci riuscisse. –

+0

Capisco. Potrebbe essere il caso che la carta non supporti 2. Userei qualcosa di più grande. Normalmente, consiglierei 4 o 8, ma ho usato con successo 32 sul mio 580 (M) per gli FBO, e sarei sorpreso se 16 non funzionasse. In ogni caso, mi preoccuperei di più di quello che vedi. Se sembra tutto morbido e scorrevole, non preoccuparti di ciò che dice SDL_GL_GetAttribute (...). – imallett