Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Multisample en D3D

Iniciado por XÑA, 24 de Octubre de 2006, 10:24:35 AM

« anterior - próximo »

XÑA

Creo que el multisample sólo se puede utilizar con el Backbuffer y no con un RenderTarget...¿es correcto?

Y si lo fuera, entonces la lógica que es:

Renderizar en el backbuffer
Copiarlo a un RenderTarget para hacer efectos de post
Copiar el resultado al backbuffer de nuevo.

Por favor, comentarios....Gracias

marcode

¿Sigues liado con tu programa multiventana? :wink:

Una pregunta, ¿que efectos haces de post que no puedas hacer en el backbuffer?. Ten en cuenta que es mucho más rápido.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

XÑA

Pues por ejemplo, si tengo que hace un post de glow, tendré que coger el backbuffer actual, usarlo como textura, y aplicar el efecto sobre un render target, puesto que no puedo usar el backbuffer como textura y como render target al mismo tiempo.

marcode

¿y no podrías usar otro backbuffer?
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

XÑA

otro? Eso es un RenderTarget

Helius

Vamos a ver...

Crea todos los render targets que necesites, aplicas los efectos ahí y luego los combinas finalmente en el backbuffer ¿no?

Para el caso del glow, te creas un rendertarget y pintas ahi la escena, aplicas luego el glow y luego lo pasas al backbuffer. Vamos, así lo entiendo yo.

Saludos.
Geardome Devlog
Tutoriales sobre DirectX 9, Nintendo DS y PSP.

marcode

yo creo que aquí encontrarás los detalles de cómo implementarlo, estabas usando DX creo:

PostProcess_Sample
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

BeRSeRKeR

Efectivamente, si renderizas en el RT directamente, no tendrás AA, por lo que la solución es renderizar en el backbuffer y con StretchRect copiarlo al RT.

Ve a esta página y échale un vistazo al documento y el ejemplo que hay bajo el nombre de Antialiasing with Post-Processing.

En esa misma página tienes uno que explica lo mismo pero para OpenGL ( Post Processing Effects with Anti Aliasing).

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

XÑA

Gracias Ber. En Jade te echamos mucho de menos, a ver si te pasas que está quedando de muerte...

BeRSeRKeR

Cita de: "XÑA"Gracias Ber. En Jade te echamos mucho de menos, a ver si te pasas que está quedando de muerte...
El otro día me registré en el foro. ¡Es un comienzo!... :lol:
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

XÑA

Lo sé. Te mandé un privado. Mira, ya tenemos:

Resuelto el problema del resize.
Ahora el render se hace a un View, que puede ser el backbuffer o un swap chain.
El código mucho más claro, eliminando muchas cosas y estructurándolas mejor.
Una clase matemática, con interpoladores.
2 fórmulas de atenuación. Ahora las clase light es la que contribuye con el shader en lugar de tener el if en el shader.
Los comienzos de un nuevo editor.
Importación de collada.
Un sistema virtual de ficheros.
Y ahora se renderiza al backbuffer, para poder usar el multisample.

Vamos que es la leche!!!

Vicente

Ya te vimos el otro día cuando te registraste en el foro :p Espero que todo te vaya mu bien :) Un saludo!

Vicente






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.