Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Compatibilidad Con Shaders

Iniciado por tiutiu, 27 de Mayo de 2005, 10:53:12 AM

« anterior - próximo »

tiutiu

 Hace unos dias ya que estoy mirando como se hacen los shaders, pero ahora me ha asaltado una duda.
Estuve mirando con la aplicacion glView que tarjetas soportan ps y vs y he visto que es de la FX para arriba (no me acuerdo de que ATi). Si escribo un shader con GLSL, puede correr en una FX? y si solo es vertex shader, va en una GF4Ti? (lo mismo para las homonimas en ATi).

Lo pregunto porque si no es asi, supongo que si quieres usar shaders en un programa, tendras que hacer versiones en GLSL y en ensamblador ese tan feo, y eso es lo ultimo que quiero.


PD: ya podemos ir migrando todos a shaders, son lo mejor!!  B)  
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

CoLSoN2

Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

AK47

 Saludos
Los vertex shaders puedes usarlos en cualquier tarjeta, claro que por hardware solo de GF3 para arriba. Antes mi GF4 MX me aceleraba los vertex shader, pero no se porque con DirectX9 y tal no lo hace... Cuando la tarjeta no pueda acelerarlos por hardware Direct3D usa la CPU. Los uso en mi proyecto y van bien, aunque por supuesto mucho mejor si la tarjeta se encarga del trabajo  :)
En cuanto a los pixel shader por hardware es de GF3 para arriba. Eso si, el rendimiento varia considerablemente de tarjeta en tarjeta.

Lord Trancos 2

 Erh.... no se yo, no se yo... me da a mi que que lo de usar GLSL con modelos inferiores a una fx5200, no debe de estar muy facil.  :(

Digamos que es una intuicion; "un susurro en mi espiritu"; no me baso en nada que haya leido y tal.

De todos modos, a los precios a los que se puede acceder a una tarjeta con shaders 2.0, creo q no vale la pena que te compliques. A no ser que quieras abarcar el mercado del shareware,... pero el uso de shaders es de por si mala idea en ese mercado (ahora mismo, claro).
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

tiutiu

 Las geforce 4 tienen la extension de vertex shaders, es decir GLSL. Tambien tienen los fragment_program_1_1, lo que quiere decir que puedo escribir vertex shaders en GLSL pero para el shader model 1.1, cierto?
Vale, donde puedo encontrar las limitaciones o caracteristicas de cada shader model? supongo que tendre que escribir varias versiones de los shaders (como en la demo de soft shadows con dynamic branching de nvidia).

Creo que los shaders se tienen que comenzar a integrar ya en los motores, puesto que la fixed functionality se queda muy corta. En nuestro proyecto la hemos incluido para que el programa funcione en equipos viejos (multitexture y depth texture al menos). Los shaders mejoran el rendimiento de la FFP ya que puedes hacerlo todo con menos pasadas y conseguir efectos muchisimo mas realistas.
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

Miki

 Todas las tarjetas con soporte T&L (transform and lighting) tienen soporte Vertex Shader 1.0, desde la Geforce 1 y la ATI 7500 (creo k era la 7500, o tal vez 7000). Dichos shaders deben escribirse en el dichoso ensamblador (para estas tarjetas, no para las de hoy día). El shader se ejecutará en 2 de cada 3 vertices de un triangulo. Puedes transformar coordenadas de posición del vértice, coordenadas de textura del vértice, color del vértice y poco más (por no decir nada más). Digamos k si ejecutas OpenGL o Direct3D en modo HARDWARE_PROCESSING (T&L a fin de cuentas) el proceso de transformación de vertices se ejecuta por el vs. 1.0. Pero cuando uno se crea un efecto própio en código fuente (osea C++) entonces ya estás pasando por la FFP, con lo k se va todo al traste. De todas formas no conviene saturar a una Geforce1, 2, 2mx, etc.... haciendo k todos los calculos de transformación y color de vértice pasen por el T&L, ya que estas tarjetas eran en sí muy poco potentes con respecto a las actuales, y casi k conviene más tirar de CPU (osea FPP) para hacer los efectos k te plazcan. Por supuesto, para PS ya necesitas una GF3/ATI 8500 o superior. Los lenguajes GLSL/HLSL solo son compatiles para las gráficas con soporte PS 2.0 o superior (aunk ahora me viene a la cabeza que ya iban con 1.4), así k se me ekivoco ya sabeis a kien teneis k lapidar :-D
Espero haber servido de ayuda.
Salu2!

vincent

 Si no tengo entendido mal, que todo puede ser, CG i HLSL són lenguajes intermedios que al compilarlos generaran código ensamblador, con lo que lo puedes portar a cualquier tarjeta que soporte VS y PS.

A parte, utilizar la FPP no quiere decir hacer las cosas por software, sinó limitarte a las funciones que tiene implementada tu tarjeta gráfica.

Juraria que los shaders se pueden utilizar des de la GeForce 3. Si no la tienes, quizá puedas hacer algo con los register combiners de nvidia, pero esto si que no lo he probado yo.

si me he equivocado en algo, gustoso de que me corrijais yo estaré.... (rollo yoda, que ayer ví Star Wars 2)

Taluek!
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

tiutiu

 Bueno, entonces me limitare a tirar bastante de shaders (las tarjetas viejas solo tendran efectos limitados de iluminacion), ya que no voy a aprender a usar los register combiners para hacer specular bumpmapping o usar point lights (paso de la iluminacion de ogl, claro).

¿Sabeis como puedo compilar o 'traducir' un shader en GLSL a ensamblador? Asi puedo pasar los shaders para la version 1.1 o 1.4.
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos






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.