Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: zupervaca en 14 de Enero de 2007, 06:00:02 PM

Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: zupervaca en 14 de Enero de 2007, 06:00:02 PM
Hola, alguno podria orientarme en lo que dice el titulo, es decir, tener diferentes RenderTargets como los SwapChains de Direct3D, pero en OpenGL.

Gracias.

PD: Con decirme como se llama el equivalente me valdria :wink:
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: senior wapo en 14 de Enero de 2007, 10:50:07 PM
Googlea "Opengl shared contexts".  Tendrás que usar código distinto para cada plataforma y asegurarte que todas las ventanas/vistas usan el mismo formato de pixel.
¿ Seguro que no te vale con una ventana única y jugar con glViewport() y glScissor() ?

Recientemente he estado mirando lo mismo pero aún no lo he implementado asi que no te puedo ayudar más.

Aprovecho y secuestro el hilo para lanzar la pregunta, ¿ se pueden hacer equivalentes a los swap chains en DirectX6 ?
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: tamat en 15 de Enero de 2007, 01:54:28 PM
Aprovecho y lanzo otra pregunta, de que va el rollo de los swapchains?
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: [EX3] en 15 de Enero de 2007, 02:27:28 PM
Corregirme si me equivoco pero si no entendi mal en la doc de las DirectX 8.1, las SwapChains son un mecanismo para poder renderizar la escena en diferentes contextos simultaneamente. Supongo que estara pensado para aplicaciones 3D para poder representar varias perspectivas de una misma vista, como en los editores 3D por ejemplo.

Salu2...
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: senior wapo en 15 de Enero de 2007, 05:09:50 PM
Es más o menos lo que ha puesto Ex3. La utilidad de los swap chains es que sin ellos, si usas dos contextos/devices separados y quieres usar las mismas texturas las tienes que tener dos veces en memoria.

Con swap chains/shared contexts lo unico que duplicas son las superficies destino y sus Zbuffers, stencils, accumulators, etc...

En plan simple, es un rendertarget en el que el destino es un buffer de video principal potencialmente en otra ventana. Lo que no recuerdo ahora, por no haberlos usado nunca, es si compartian renderstates o eran independientes (creo haber leido que independientes).
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: zupervaca en 15 de Enero de 2007, 08:28:09 PM
Para sacarte de dudas, he hecho la prueba y comparten los estados del render, esto en direct3d, en opengl ni idea, pero me imagino que sera igual.
He estado investigando y en opengl se llama "pbuffer", pero parece ser que no todas las tarjetas graficas lo soportan ya que es un extension :(, seguire investigando por que mi intencion es comenzar a hacer alguna que otra herramienta y me hace falta.
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: Elvis Enmanuel en 20 de Enero de 2007, 02:14:30 PM
Se llaman MRT (Multiple render targets) y si que comparten el contexto. Los pixelBuffers están un poco obsoletos, ahora todo el mundo tira por los FBO (Frame Buffer Objects).

ains.
Título: Algo como el SwapChain de Direct3D, pero el OpenGL
Publicado por: zupervaca en 20 de Enero de 2007, 04:19:26 PM
Gracias por la info, les hechare un vistazo por que la implementacion de direct3d9 la tengo y me fastidia retornar null en la funcion de crear el "swapchain" en ogl.