2012-02-16 29 views
5

Actualmente tengo un motor de renderizado que usa varias pasadas en las que varias partes de la imagen se representan en texturas y luego se combinan utilizando sombreadores. Funciona, y ahora me gustaría activar el muestreo múltiple.¿Cómo renderizar objetos Framebuffer en texturas de múltiples muestras?

He leído aquí (http://www.opengl.org/wiki/Framebuffer_Object_Examples#MSAA) que, con OpenGL, no puede adjuntar un GL_TEXTURE2D_MULTISAMPLE a un objeto framebuffer.

Parece una forma de utilizar muestreo múltiple y aún tener acceso al resultado, ya que la textura consiste en utilizar un almacenamiento intermedio de muestras múltiples y, a continuación, copiar el resultado en una textura de varias muestras.

Mi pregunta es: ¿cuál sería la mejor manera de seguir adelante?

  • ¿Es posible renderizar en un búfer de renderizado y utilizar la salida en mi sombreador, sin copiar en una textura?
  • ¿Debo copiar el contenido del buffer en una textura y luego usarlo?
  • ¿Hay alguna otra mejor solución?

Gracias.

Respuesta

6

he leído aquí (http://www.opengl.org/wiki/Framebuffer_Object_Examples#MSAA) que, con OpenGL, no se puede adjuntar un GL_TEXTURE2D_MULTISAMPLE a un objeto de uso de este dispositivo.

Léelo de nuevo. No dice nada acerca de las texturas GL_TEXTURE_2D_MULTISAMPLE. En realidad, lo recuerdo: no lea esa página de nuevo. Si desea buena información FBO, lea the page on Framebuffer Objects que explica el comportamiento 3.x. La página a la que vinculó es antigua.

De vuelta en los días EXT, todo lo que tenía eran renderbuffers de multipantalla, porque las texturas de multimuestras no existían. Puede crear almacenamientos intermedios multiempañados, pero no puede textura con ellos. Solo puedes embrollarlos.

En 3.3 OpenGL, puede crear texturas multiempamo. Y puede adjuntarlos como cualquier otra textura a un FBO.

+0

Gracias por la respuesta y gracias por estos recursos que he encontrado de vez en cuando y que nunca han sido identificados como autorizados. – PierreBdR

Cuestiones relacionadas