Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - AK47

#466
 Saludos
No pasa nada, ponedlo cuando podais ;) (un poco mielda el signo del guiño, no?)
#467
 Saludos
Hace tiempo que lo envie para codigo de la semana, pero todavia no lo han puesto. El ejemplo esta aqui para bajarlo. Usa vertex shaders, pero no hay que asustarse, es muy sencillo. Espero que os sirva de algo :)
#468
                                Vale vale berserker, no me llevo toda la gloria. Para ti un poquito, ala ;)                                
#469
                                Mecauen la leche! Como que gracias a todos?  :enfadado: En fin... tendre que compartir con los demas tu gratitud... XDD
A ver cuando suben mi ejemplo de vertex shader. No es algo increible, pero muestra como cambiar ciertos valores sin hacer un solo lock :)                                
#470
                                De nada hombre ;)
Cuando pongan el codigo de la semana que envie... (ejem) bajatelo. Es un ejemplo de Vertex Shader muy simple en 2D. El programa pone sprites en la pantalla saltando, rotando, cambiando de color y de nivel de transparencia, vamos, pone sprites usando Direct 3D sin tirar del ID3DXSprite ese :)                                
#471
                                Saludos
Yo tambien he estado trasteando con Direct3D 9 para pintar sprites para mi juego 2D. Hace tiempo use el D3DXSprite pero me iva terriblemente lento en mi savage 4 (es una patata pero bueno). Luego vi los experimentos que hizo un colega tirando de poligonos a pelo y me iva follao en mi cutre tarjeta. Resumiendo, tira de poligonos, ya que asi puedes optimizar el cambio de textura y tal.
Bueno, yo lo hago de esta forma:
Uso una perspectiva ortogonal.
Defino el formato del vertice como D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1.
Defino el quad con 2 poligonos y lo renderizo como un trianglestrip. El quad es de 1x1. Para pintar un sprite lo escalo al tamaño que requiero. Como uso una proyeccion ortogonal, al escalar el quad consigo una relacion de 1:1 entre el tamaño logico y tamaño de pixel. Osea que si escalo el sprite por 100 en X y 100 en Y, obtengo un sprite de tamaño 100x100 pixels.
Al cargar las texturas de los sprites con D3DXCreateTextureFromFileEx fijo el color que sera el colorkey. Las texturas tienen que ser potencias de 2, ya que sino la funcion escala la textura a la siguiente textura y el asunto queda hecho un asco.
Al pintar el sprite, realizo las siguientes operaciones:


g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);

g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);

g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);

g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);

g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); // Filtrado bilineal

Con estas operaciones consigo que no se pinten los pixels que son iguales al colorkey, y ademas, mediante el alpha del componente diffuse del vertice puedo definir el nivel de transparencia de los pixels que se pintan.
Se pueden cambiar los D3DTSS_COLOROP y D3DTSS_ALPHAOP para probar diferentes efectos. Obviamente, no se realizaran todas estas llamadas cada vez que se pinte un sprite, sino que se llamaran una vez, se pintaran los sprites y luego se desactivaran. Pero bueno, eso ya es relativo a la implementacion.
Espero que sirva de ayuda. A mi me sirve :)                                
#472
Programación gráfica / principiante
08 de Abril de 2003, 07:52:31 PM
                                Saludos

Lo que puedes hacer primero es aprender C++ y luego o motores o meterte con las APIs. Tambien podrias usar el blitz y herramientas similares :)                                
#473
Programación gráfica / OGRE y transparencias
22 de Marzo de 2003, 04:18:09 AM
                                Bu :P XDD ;)                                
#474
Programación gráfica / Las 2D todavia tienen futuro
21 de Marzo de 2003, 05:52:47 PM
                                Ya te digo Josette!!! ;) Vivan las 2D! :D                                
#475
Programación gráfica / OGRE y transparencias
21 de Marzo de 2003, 05:50:07 PM
                                Saludos
Master, yo diria que en tu maquina el soporte openGL es por software, ya que por lo que cuentas tiene toda la pinta de que te acelera D3D pero no openGL. Miralo o pasate a D3D, como hacen los hombres XDDDD

Ta pronto ;)                                
#476
Programación gráfica / ¿Cómo montarse un sprite?
14 de Marzo de 2003, 06:41:32 PM
                                Saludos
Lo del señor saltando, yo lo haria con la misma Y para todos los frames. Asi sera el programa quien se encargue de gestionar la Y del sprite y todas esas cosas

Ta luego ;)                                
#477
                                Saludos

El Cg se puede usar con otras tarjetas aparte de las de nVidia?                                
#478
General Programadores / Motores 3D
19 de Febrero de 2003, 10:41:30 AM
                                Saludos

Estoy con un trabajito de la universidad, y tengo que hacer un documento sobre motores 3D y to eso. Os agradeceria mucho que me proporcionaseis direcciones que conozcais, para tener mas referecias (es que igual algunos no salen en el Google  XD)

Ala, gracias ;)                                
#479
Código de la Semana / Video driver - mICrO
09 de Febrero de 2003, 03:52:30 PM
                                Magnifico codigo, si señor!
¡Oh gracias gran maestro micro, por compartir tu sabiduria con nosotros, seguramente este codigo me salvara la vida!
El codigo es casi tan bueno como MI Pekechat que tambien se puede pillar en este foro. Asi que ya lo estais probando XDDD ;)

Bueno trabajo maetro micro  8)                                
#480
General Programadores / MFC && DX
19 de Enero de 2003, 01:27:19 PM
                                Hola
Claro que puedes usar DX con MFC, sino mira los ejemplos MFCFog o MFCTex que trae el SDK, por ejemplo ;)                                





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.