Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: zupervaca en 06 de Agosto de 2005, 09:25:04 PM

Título: Cg Y Ati?
Publicado por: zupervaca en 06 de Agosto de 2005, 09:25:04 PM
 poz eso si alguien sabe si el cg de nvidia es compatible con ati? he mirado por el web pero no he visto nada al respecto
Título: Cg Y Ati?
Publicado por: BeRSeRKeR en 06 de Agosto de 2005, 09:52:01 PM
 En teoría debería funcionar ya que se tomaría el path de la ARB pero en la práctica tengo entendido que hay algunos problemillas de compatibilidad más los bugs que tenía Cg (no sé cómo está ahora mismo), pero mejor que eso te lo diga alguien que lo utilice.

Por otro lado, ¿tienes pensado crear dos renderers, uno en Direct3D y otro en OpenGL?. Porque si no es así, supongo que la mejor elección es HLSL (en caso de Direct3D) o GLSL (en caso de OpenGL). Eso sí, no sé si el GLSL es soportado por aceleradoras anteriores a las GeForce5200/Radeon9500.

Saludos.
Título: Cg Y Ati?
Publicado por: zupervaca en 06 de Agosto de 2005, 10:06:46 PM
 es que me encuentro ante un dilema y no es de programacion si no de prevision y riesgos mentales  :lol:, el tema shaders en directx lo tengo mas o menos claro, pero en opengl nunca lo he mirado y me imagino que se programaran de forma diferente que en directx, con lo que si compilo para directx tendria que usar unos shaders y si lo hago en opengl otros, o eso, o hacer que un precompilador para uno de los dos, vaya pirula  :P, mirare el glsl que me mencionas a ver que cosas cambia respecto a directx

gracias
Título: Cg Y Ati?
Publicado por: zupervaca en 07 de Agosto de 2005, 01:37:48 PM
 he estado mirando el cg y me parece muy bueno ya que con el mismo shader puedes hacerlo para directx y opengl y ademas no hay diferencias en el codigo, pero veo que solo es para windows y linux, con lo que todo lo que tengo montado para mac se iria al carallo y eso no es bueno, y despues aunque para consolas no tenga nada montado, como toda la libreria que he hecho solo depende de funciones estandard de c no creo que tuviera problemas para compilar en ellas usando opengl o directx, o haciendolas en un plis, uso cosas como el memcpy etc

he buscado info sobre el glsl que me dijiste pero solo encuentro documentos hablando de el muy por encima, mirare por la web de opengl a ver si viene algo mas detallado, si supieras algun sitio que se parezca a la ayuda que se tiene con las directx pero con el glsl ponlo por favor  :lol:
Título: Cg Y Ati?
Publicado por: BeRSeRKeR en 07 de Agosto de 2005, 02:41:11 PM
 
Cita de: "zupervaca"he estado mirando el cg y me parece muy bueno ya que con el mismo shader puedes hacerlo para directx y opengl y ademas no hay diferencias en el codigo
Exacto, por eso te pregunté si querías hacer dos renderers, uno para Direct3D y otro para OpenGL, porque en ese caso Cg sería una buena opción.

Cita de: "zupervaca"he buscado info sobre el glsl que me dijiste pero solo encuentro documentos hablando de el muy por encima, mirare por la web de opengl a ver si viene algo mas detallado, si supieras algun sitio que se parezca a la ayuda que se tiene con las directx pero con el glsl ponlo por favor  :lol:
Pues el único sitio que conozco donde hay ejemplos de GLSL es en la web de Humus, pero seguro que hay mas (busca por glSlang).

Saludos.
Título: Cg Y Ati?
Publicado por: Zaelsius en 07 de Agosto de 2005, 04:57:40 PM
 
Cita de: "zupervaca"con lo que todo lo que tengo montado para mac se iria al carallo
Un aviso: A día de hoy, en Mac OS X no hay soporte GLSL a nivel de driver. Sin embargo, se puede usar el software renderer para probar los shaders.. aunque es demasiado lento. No sé de quien será la culpa, si de Apple o ATI/NVIDIA. Tengo entendido que ATI realiza sus propios drivers para Mac, pero que era Apple quien se encargaba de los drivers para NVIDIA.. En cualquier caso, conociendo a Apple, no habrá soporte GLSL hasta que no se actualicen las dos familias de drivers.

Por ahora el único camino a los shader en Mac es el uso de ARB_fragment_program y ARB_vertex_program, en las tarjetas que los soporten claro :( .

Edit: Acabo de ver que sí hay soporte CG para Mac OS X: http://developer.nvidia.com/object/cg_toolkit.html. Le echaré un vistazo a ver si consigo hacerlo funcionar.
Título: Cg Y Ati?
Publicado por: ethernet en 07 de Agosto de 2005, 05:03:09 PM
 Para hacer test te recomiendo un buen software programado por un buen español :). Se trata de Shader Designer ( http://www.typhoonlabs.com/ ) que es un aherramienta que te permite ver rápidamente el resultado de un shader sin tern que crear tú un programa, con la ventaja de que puedes variar un montón de parámetros con mucha sencillez. Dentro del setup vienen algunos ejemplos de shaders que pueden servirte de referencia.

Otra web que te recomiendo para GLSL es http://www.lighthouse3d.com/opengl/glsl/ que viene un tutorial desde el principio y con algunos ejemplos de shader, tanto en C++ como para Shader designer.

un saludo
Título: Cg Y Ati?
Publicado por: zupervaca en 07 de Agosto de 2005, 05:30:16 PM
 el opengl es el mazinger z de los ordenadores, necesitas mil dependencias para hacerlo rular  <_<  
Título: Cg Y Ati?
Publicado por: Zaelsius en 07 de Agosto de 2005, 05:37:03 PM
 Acabo de probar una demo de Cg en el Mac y funciona : ). Tengo una GeForce FX 5200, no sé si funcionará en una ATI.. supongo que sí.

En la página de Cg hay una tabla con los perfiles soportados y sus equivalencias OpenGL/DirectX.

Lo que saco en claro es que si no utilizas un perfil cuya equivalencia sea una extensión NV_lo_que_sea, deberia funcionar en ATI tambien. Le pasaré la demo a un amigo que tiene un Mac Mini(Radeon 9200), a ver si le funciona.
Título: Cg Y Ati?
Publicado por: ethernet en 07 de Agosto de 2005, 05:38:25 PM
 No entiendo a qué te refieres, supongo que lo dirás por las extensiones.

Título: Cg Y Ati?
Publicado por: Zaelsius en 07 de Agosto de 2005, 05:43:37 PM
 
Cita de: "ethernet"No entiendo a qué te refieres, supongo que lo dirás por las extensiones.
Me refiero a esto:

(http://www.lemonteam.com/julio/posts/cg.jpg)

Al compilar los shaders(ficheros .cg), tienes que especificar el perfil que quieres usar para convertir el código a ensamblador específico de cada plataforma/extensión.

Luego, en teoría, si usas OpenGL, y quieres poder ejecutar los shaders en tarjetas ATI y NVIDIA, sólo podrías usar los perfiles arbvp1 para VS y arbfp1 para PS.
Título: Cg Y Ati?
Publicado por: zupervaca en 07 de Agosto de 2005, 05:54:35 PM
 coño tio me acabas de sacar de muchas dudas, gracias, ¿de donde descargaste el .h .lib y .dll para mac? en la web de nvidia no lo vi y por eso pense que para mac no iva

editado: jeje ya lo vi si es que toy atontao de ver tantas webs

http://developer.nvidia.com/object/cg_toolkit.html
Título: Cg Y Ati?
Publicado por: ethernet en 07 de Agosto de 2005, 05:58:20 PM
 zaelsius: Me refería a lo de mazinguerZ que decía supervaca  XD
Título: Cg Y Ati?
Publicado por: Zaelsius en 07 de Agosto de 2005, 06:00:59 PM
Cita de: "ethernet"zaelsius: Me refería a lo de mazinguerZ que decía supervaca  XD
:P  
Título: Cg Y Ati?
Publicado por: zupervaca en 07 de Agosto de 2005, 06:02:58 PM
 aps yo pense que le decias a el tambien jeje, lo digo mas que nada por sus extensiones que esta hecho un poco al "vuelo" como si fuera un parche, pero lo peor de todo es la falta de documentacion real y eso crea mucha confusion
Título: Cg Y Ati?
Publicado por: Pogacha en 07 de Agosto de 2005, 11:39:51 PM
 El tema de los shaders en opengl empezo con el pie izquierdo, luego con el tema del GLSL se puso en la punta ( es lo mejor en lenguaje de shaders ).
En el tiempo que DX sacaba sus pixel shaders open gl no tenia nada, absolutamente nada ... en definitiva para ps anteriores al 2.0 ( ati 9500 y nv fx5200 ) se debia usar register combiners para nvidia ( los cuales son rapidos y eficases si los programas bien ) y fragment shaders para ATI ( que se parecen mas a un shader single-pipe ) tecnologias completamente distintas y ni cerca de ser compatibles en nada con las de la compotencia, las capacidades eran completamente variables, el cg suponia arreglar este problema, pero como estaba hecho por envidia no iba a funcionar nunca bien en las ati  ;) , al final se pusieron de acuerdo y para los ps 2.0 salio el arbFragmentProgram que permitio el alivio de la tension shadera en opengl, meses mas tarde salio GLSL y san se acabo, pero aun así la tension existe para OpenGL en ps anterior al 2.0, desde ATI 7500 a la 9200 y desde la geforce 2 a la ti4000, para esto usando Opengl debes hacer codepaths para cada placa ... mi motor estaba andando en las de envidias pero por mas que empece a estudiar en los fragment shaders de ati no tenia una placa ati para probar ...
En definitiva hay que esperar un poco para que los req minimos decentes sean los ps 2.0 ...
Saludos