Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





cuando se dice OpenGL "emula por software si fuese necesario" que significa?

Iniciado por xeex, 09 de Abril de 2009, 10:45:03 AM

« anterior - próximo »

xeex

Hola
Tengo una duda, a que se refiere eso de que opengl puede emular por software?
Me pueden dar un ejemplo concreto en que lo haga.
que emula?
cuando lo hace?
direct3d tambien lo hace?

gracias y saludos

tamat

quiere decir que algunos drivers de opengl (por ejemplo el que viene con windows) si no tienen hardware para acelerar las acciones de render de opengl lo hacen por software, es decir, las operaciones que haría el hardware pues hechas mediante código y de manera transparente.

Además de la obvia perdida de rendimiento tambien hay el problema de que algunos efectos simplemente no se pueden hacer y el raster los ignora.

Direct3D tambien lo hace, de hecho creo que direct3d lo hace directamente desde la librería, no es cosa del driver.
Por un stratos menos tenso

xeex

gracias por la respuesta pero...?...algun ejemplo

citando a wiki:
Citar
"Fundamentalmente OpenGL es una especificación, es decir, un documento que describe un conjunto de funciones y el comportamiento exacto que deben tener. Partiendo de ella, los fabricantes de hardware crean implementaciones, que son bibliotecas de funciones que se ajustan a los requisitos de la especificación, utilizando aceleración hardware cuando es posible. Dichas implementaciones deben superar unos tests de conformidad para que sus fabricantes puedan calificar su implementación como conforme a OpenGL y para poder usar el logotipo oficial de OpenGL."

Hay una parte que no me calza:
-opengl dice: "debes tener una funcion que habilite cierta cosa...."
-los fabricantes de hardware leen la especificacion y dicen:"la targeta que crearemos debe ser capaz de habilitar cierta cosa..."
entonces si opengl dice que hacer y los fabricantes hacen lo que dice opengl, por que se deberia emular por software algo????,si las placas graficas cumplen con la especificacion de ogl.
Emular significa, en este caso, hacer que el cpu haga cierto proceso que la gpu no puede,  pero por que en primera instancia la  targeta grafica no podria ser capaz de hacerlo si supuestamente, esta, cuando fue creada, cumplio con la especificacion...simplemente no entiendo.

No se, sentido para mi tendria que una targeta grafica que no cumplio en su totalidad con la especificacion OGL, es decir, que le faltase un componente o algo que ejecutara una accion....en ese momento aplicarse la emulacion, pero de otra forma no entiendo...¿es así?¿es en ese momento en que se emula algo?
¡SALUDOS.

fjfnaranjo

Pues porque antes podía darse el caso de que no tuvieras una GPU con aceleración gráfica (hoy en día no es algo muy común...).
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

xeex

Es decir:
tener emulacion por software(en lo que respecta a OpenGL)=reemplazar la falta GPU????????
mmm no creo que sea solo eso


fjfnaranjo

fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

tamat

como dice fj no puedes garantizar que todo el mundo tenga una tarjeta que soporte opengl, durante mucho tiempo las tarjetas opengl solo estaban al alcance de unos pocos, sin embargo se queria poder usar la libreria opengl para hacer aplicaciones sin discriminar por hardware.
Por un stratos menos tenso

Tei

Por otra parte... si un dia la CPU de los PC's se ponen en 64 nucleos, no necesitaras una tarjeta 3D, los juegos OpenGL podra renderizarse en la pantalla sin tarjeta 3D.   Los juegos escritos en OpenGL aun funcionaran, los que requieren tarjeta 3d (Direct3D?), no.  En realidad probablemente todos se paren con un mensajito del tipo "no detectado shaders 2.0" o algo asi. :-)    De todos modos esto no ocurrira hasta dentro de 10 años.

[EX3]

Cita de: Tei en 16 de Abril de 2009, 04:52:41 PM
Por otra parte... si un dia la CPU de los PC's se ponen en 64 nucleos, no necesitaras una tarjeta 3D, los juegos OpenGL podra renderizarse en la pantalla sin tarjeta 3D.   Los juegos escritos en OpenGL aun funcionaran, los que requieren tarjeta 3d (Direct3D?), no.  En realidad probablemente todos se paren con un mensajito del tipo "no detectado shaders 2.0" o algo asi. :-)    De todos modos esto no ocurrira hasta dentro de 10 años.
Aunque no via CPU, hoy dia cualquier PC de no mas de 2 años seguramente soporte shader 2.0 y una aceleracion 3D decente minima via grafica integrada (las Intel GMA 950 por ejemplo, que están extendidas prácticamente en cualquier PC sin ATI/NVidia instalada).

Cita de: xeex en 09 de Abril de 2009, 09:42:39 PM
Es decir:
tener emulacion por software(en lo que respecta a OpenGL)=reemplazar la falta GPU????????
mmm no creo que sea solo eso
Obviamente, no reemplaza la GPU, simplemente ejecuta por software (via CPU) aquellas instrucciones que mas o menos pueden ejecutarse sin llegar a colapsar la CPU, lógicamente, no con el mismo resultado ni la misma velocidad.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

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

Prompt

Yo creo q aqui puede haber una confusion. Aclaremos algo.

OpenGL no hace ningun calculo por CPU, de hecho si no tienes alguna extension directamente te jodes. Dicho esto, que es generalmente aplicable, hay que decir que hay cosas del driver, como la pasada de seleccion o GL SELECT y cosas por el estilo que solo estan actvas acelerado por hardware en tarjetas como las QUADRO o para desarrollo. Esto cabreó mucho a la gente en su día...

Con lo cual, esta funcionalidad solo existe de forma posible por CPU tirando los FPS y el tiempo de procesado (yo lo medi en su dia en milisegundos) . Esa es la unica parte que se hace pr software pero es el fabricante quien hace en windows el driver extendido o de cliente y claro mete ahiii... lo q el quiere. De hecho nVidia tiene un programa para emular extesiones por CPU si tu tarjeta no dispone de ella.

Para mi es algo logico, si n tienes algo acelerado por hardware mejor q te diga q la extension no existe y no sea tu programa algo que vaya a 2 FPS con el bottleneck correspondiente.

Tei

Cita de: Prompt en 17 de Abril de 2009, 12:11:59 PM
Para mi es algo logico, si n tienes algo acelerado por hardware mejor q te diga q la extension no existe y no sea tu programa algo que vaya a 2 FPS con el bottleneck correspondiente.

pero el programador sabe, quizas como maximo lo que habia en el momento que habia el juego, no lo que habra de aqui a 20 años.   Y parece que vender juegos viejos tiene algun sentido, o no existiria GOG. ..aunque no se que perras sacaran.

Prompt

Cita de: Tei en 17 de Abril de 2009, 02:54:02 PM
pero el programador sabe, quizas como maximo lo que habia en el momento que habia el juego, no lo que habra de aqui a 20 años.   Y parece que vender juegos viejos tiene algun sentido, o no existiria GOG. ..aunque no se que perras sacaran.

Hombre, esto requiere mas desarrollo y a medio plazo, hasta podria darte la razon, es decir, hacer un videojuego mas avanzado que la media de tarjetas y tener la posibilidad de emular cosas y no desactivarlas. Desde un punto de vista del gamer, vease HL o el CS, la gente prefiere tener 100 FPS a verlo todo bonito, u otros juegos como un MMO, mejor 100 tios en pantalla que 5, con lo cual el razonamiento de emular se va al traste y el costo de produccion se eleva practicamente para nada. En el caso de Direct3D pues el te lo hace solo por software, pero ya digo que te crea un bottleneck importante nada interesante para los gamers.

La gente al final en videojuegos, lo desactivará si o si al no estar acelerado por hardware. En otras industrias donde 3DS Max, Maya o XSI tienen un papel importantisimo emular es necesario ya que el hardware se queda obsoleto o las tecnicas nuevas aun no estan implementadas en los drivers de las tarjetas gráficas.

Tei

yo de verdad que del tema no se mucho, pero queria defender la idea de opengl, porque me parece muy futureproff, .. pero es eso, una de las ideas de opengl, que tampoco es LA idea, solo un puntito.







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.