Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Algo como el SwapChain de Direct3D, pero el OpenGL

Iniciado por zupervaca, 14 de Enero de 2007, 06:00:02 PM

« anterior - próximo »

zupervaca

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:

senior wapo

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 ?

tamat

Aprovecho y lanzo otra pregunta, de que va el rollo de los swapchains?
Por un stratos menos tenso

[EX3]

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...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

senior wapo

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).

zupervaca

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.

Elvis Enmanuel

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.

zupervaca

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.






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.