Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Iniciacion En Fp, Ps Y Vs

Iniciado por Pogacha, 19 de Agosto de 2004, 10:41:05 PM

« anterior - próximo »

boubou

 Segun tengo entendido, Cg y HLSL son muy parecidos, no? Corregidme si me equivoco, please :)
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

Es la unica esperanza de los trolls tras el envio al "infienno
" de WhiteBlaizer y X-Alien

Pogacha

 HLSL = High Level Shading Languaje?
No se que son esos que aparecen estilo ensamblador con "mov"s y demas.
Que lenguaje es ese?, este lo veo hasta en la sopa, pero no se cual es (parece el preferido o por lo menos el mas viejo).
De todas formas no tengo problemas de programar ensamblador ( no creo todas las maravillas que promete el GLSL
Bueno prove el NVEmulate en una GF2MX y anda al pelo, lo probe directamente con el counter strike y anda casi perfecto  :blink: , si puse el emulador y despues me fui al icono del cs y doble click y ahhh ... , en un pentium IV 2.4ght ht mother intel y todo de la puta madre con suerte 12 frames por minuto  :lol: , pero anda bien de todos modos, algunos problemitas con el depth buffer para los sprites nomas.

boubou

 Esto con HLSL:

char* env_map=
"float4x4 model_view;"
"float cr=255;float cg=255;float cb=255;float ca=255;"
"float cx,cy,cz;"
"texture cubemap;"

"sampler2D current_tex="
"sampler_state{"


   "MinFilter = Linear;"
   "MagFilter = Linear;"
   "MipFilter = Linear;"
"};"



"samplerCUBE sample_cubo="
"sampler_state{"

"Texture=<cubemap>;"
   "MinFilter = Linear;"
   "MagFilter = Linear;"
   "MipFilter = Linear;"
"};"


"struct mivertice{"

"float3 pos :POSITION;"
"float3 normal : NORMAL;"
"float3 o_pos : POSITION;"
"float3 tex: TEXCOORD0;"

"};"

"struct mivertice2{"

"float4 pos : POSITION;"
"float3 tex: TEXCOORD0;"
"float3 env_tex : TEXCOORD1;"

"};"

"struct mipixel{"

"float4 pix : COLOR0;"

"};"


"mivertice2 vertex_shader(mivertice v_in){"

"mivertice2 v_out;"

"v_out.pos=mul(model_view,float4(v_in.pos,1));"

"float3 v_n=mul(v_in.normal,model_view);"
"v_n=normalize(v_n);"

"float3 v_eye=-normalize(v_in.o_pos);"

"float3 vref=2*dot(v_eye,v_n)*v_n-v_eye;"


"v_out.tex=v_in.tex;"
"v_out.env_tex=vref;"



"return v_out;"


"}"


"mipixel pixel_shader(mivertice2 v_in){"
""

"mipixel p_out;"
"p_out.pix=texCUBE(sample_cubo,v_in.env_tex)*tex2D(current_tex,v_in.tex)*float4(cr,cg,cb,ca);"
"return p_out;"

"}"



"technique envmapping{"

"pass pass0{"

"SrcBlend=SRCALPHA;"
"DestBlend=INVSRCALPHA;"
   "AlphaBlendEnable=TRUE;"

"AlphaArg1[1]=TEXTURE;"
"AlphaArg2[1]=DIFFUSE;"
"AlphaOp[2]=MODULATE;"
"AlphaArg1[2]=CURRENT;"
"AlphaArg2[2]=TFACTOR;"
"Sampler[0]=(current_tex);"
"Sampler[1]=(sample_cubo);"
 
 "VertexShader= compile vs_1_4 vertex_shader();"
 "PixelShader= compile ps_1_4 pixel_shader();"

"}"


"}";


Al nene le guta :).
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

Es la unica esperanza de los trolls tras el envio al "infienno
" de WhiteBlaizer y X-Alien

Pogacha

 OK, HLSL tipo C
Las comillas tambien van?  (asco)  edit: perdon no vi el char * map = {
Y ese que es "ensamblador" que lenguaje es?

BeRSeRKeR

 
Cita de: "Pogacha"OK, HLSL tipo C
Las comillas tambien van?  (asco)  edit: perdon no vi el char * map = {
Y ese que es "ensamblador" que lenguaje es?
Pues es el lenguaje original de los vertex & pixel shaders. Si quieres programar en ensamblador puedes hacerlo sin ningún problema. Para ver ejemplos puedes descargarte el RenderMonkey y verás tanto ejemplos en HLSL como en ensamblador.

Y con respecto al post de boubou hay que aclarar que eso es HLSL integrado en un archivo de efectos (fx) de Microsoft (Cg tiene el CgFx que es algo similar) y que además, como bien has visto, lo ha especificado como una cadena de texto (de ahi lo de las comillas). Aunque yo preferiría tenerlo en un archivo a parte y así ahorrarme todas esas comillas (que por otra parte no entiendo por qué hay tantas).

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Pogacha

 Lo de las comillas es un misterio, no habre ni sierra llave, y no hay comas  :blink: .
Bien, entonces hay ensamblador, y por ende OpenGL ya lo soportaba ...
Supongo, definitivamente, que esto si varía de placa a placa.

Bien yo creo que se ha dicho todo lo que se tiene que decir para iniciarce en shaders. Si alguien quiere agregar algo ...

Me siento mal por estar tan descolgado de las tecnologias actuales.

A todos muchisimas gracias.
Y prometo mostrar los shaders funcionando en mi motor, cuando funcionen claro! :lol: .

Saludos
Pogacha

BeRSeRKeR

 
Cita de: "Pogacha"Bien, entonces hay ensamblador, y por ende OpenGL ya lo soportaba ...
Sí, OpenGL también soporta su propio lenguaje ensamblador (supongo que mejor utilizar arb_vertex_program y arb_fragment_program), parecido al de Direct3D.

Cita de: "Pogacha"Supongo, definitivamente, que esto si varía de placa a placa.
No. Si programas por ejemplo en ensamblador de Direct3D o utilizando el arb_vertex_program y el arb_fragment_program en OpenGL, el ensamblador es exactamente igual para una placa ATI que para una nVidia.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Pogacha

 ¿En la GeForce 440 MX anda el GLSL?
Todo lo que pude sacar de la pagina de la nvidia es que tiene compatibilidad con Ogl 1.3

Zaelsius

 Funcionarán los vertex programs pero no los fragment programs  :(  

Pogacha

 :( , era a lo que podia aspirar.
Donde consigues esa info? :ph34r:
Que placa de bajo costo andarian los fragment programs?

Por cierto:
Era GeForce4 440 MX
Es lo mismo?

La ATI 9500 esta como 170 U$S, puede ser ?

BeRSeRKeR

 
Cita de: "Pogacha"La ATI 9500 esta como 170 U$S, puede ser ?
Yo tengo una ATI 9600 XT con 256MB (soporta pixel shaders 2.0) y si no recuerdo mal me salió por unos 127€. Creo que es una opción muy muy maja. :)

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Pogacha

 En realidad pretendo algo menor a 80 U$S, no creo que halla, pero no es de avaro, si no que en donde estoy al precio tienes que multiplicarlo por 3.22 y al salario por 0.6  (grrr)
Mas me interesa cuales andan y cuales no, mas rapido o mas lento da lo mismo (relativamente).
Donde consigo info de funcionalidad, o sea, en que placa anda el GLSL o almenos los fragment programs de cualquier tipo. Sino voy aterminar haciendo render por software otra vez  :blink:

Pogacha

 Cuales de estas sirven ?, o como averiguo ?.

01 XFX  G-FORCE 4 MX440  64MB DDR  AGP8X  TV OUT 52,00
02 XFX  G-FORCE FX5200  128MB DDR  AGP8X  TV OUT 79,00
03 ASUS  A9200 SE  ATI  64MB DDR  AGP 8X  TV OUT 63,00
04 ASUS  A9200 SE  ATI  128MB DDR  AGP 8X  TV OUT 75,00
05 ASUS  A9600 SE  ATI  128MB DDR  AGP 8X  TV OUT 122,00
06 ABIT  G-FORCE FX 5200  128MB DDR  AGP 8X  TV OUT 107,00

Saludos

Pogacha

 Las paginas de ATI y nvidia no dicen nada, las de xfx, asus y demas tampoco, no se como saber si sirven o no, ¿que tendrian que decir? ¿ Hay alguna especificacion especial ?.

BeRSeRKeR

Cita de: "Pogacha"Cuales de estas sirven ?, o como averiguo ?.

01 XFX  G-FORCE 4 MX440  64MB DDR  AGP8X  TV OUT 52,00
02 XFX  G-FORCE FX5200  128MB DDR  AGP8X  TV OUT 79,00
03 ASUS  A9200 SE  ATI  64MB DDR  AGP 8X  TV OUT 63,00
04 ASUS  A9200 SE  ATI  128MB DDR  AGP 8X  TV OUT 75,00
05 ASUS  A9600 SE  ATI  128MB DDR  AGP 8X  TV OUT 122,00
06 ABIT  G-FORCE FX 5200  128MB DDR  AGP 8X  TV OUT 107,00

Saludos
Creo que todas las ATI desde 9500 para arriba y GeForceFX 5200 para arriba soportan pixel shaders 2.0

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






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.