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 - MChiz

#46
 Sigo pensando que es mas facil con el TextureFactor...
#47
 Me pareceria demasiado raro ( y bonito ;b ).  Pensemoslo como si fuese un pixel shader:

float4 main( InData in, uniform sampler2D tex1, uniform sampler2D tex2 ) {
   return ( float4 )tex2D( tex1, in.texCoord0 ) + ( float4 )tex2D( tex2, in.texCoord0 );
}

Este anterior shader NECESITA dos unidades de textura.

float4 main( InData in, uniform sampler2D tex1, uniform float4 textureFactor ) {
   return ( float4 )tex2D( tex1, in.texCoord0 ) + textureFactor;
}

Y este utiliza UNA unidad de textura y ADEMAS tiene una constante que, en este caso, es el textureFactor.
Se me acaba de ocurrir... pienso que si va por este camino, esta claro que una stage NO equivale a una unidad de textura.

Saludoteeees!
#48
Programación gráfica / No Me Creo Esto De Direct3d...
11 de Diciembre de 2003, 07:51:16 PM
 Buf! Yo no pretendia en ningun momento desembocar en esto ( como bien dice Berserker ;b ). Todo esto es un tanto offtopic pero bueno, que le vamos a hacer.
Gracias por el COTD Berserker. Ya lo habia visto y creo que es la unica solucion. Simplemente me parecia raro que D3D tuviese PointSize pero no LineWidth. Es curioso si mas no.

Y sobre la guerra de D3D y GL... sinceramente, a mi me parecen las dos unas buenas APIs. Cada una tiene lo suyo y punto. Pienso que lo mejor es comerse las dos y listo. Ademas, asi no te cierras en una y ves como la gente soluciona los mismos problemas de formas diferentes.

Un saludotee!!
#49
 Buens!

Lo primerisimo de todo: Berserker tiene razon; me equivoque al copypastear :b Lo que ha puesto Berserker esta bien.

Una cosa que parece estar confundida: El usar 2 stages no significa utilizar multitextura ( CREO ). Lo digo porque he llegado a hacer muchas operaciones, sobrepasando el limite de texturas simultaneas de mi tarjeta, y todo rula. Asi que CREO que utilizar el primer metodo que expuse no te obliga a tener multitextura. Que alguien me corrija si me equivoco ( o pruebalo tu mismo : ) )

Y a lo otro que decias, Loover: Si, si le metes 128 de alpha y tienes el alpha blending activado, funcionara : )

Saludotes!!!!!
#50
 Hola:

Si que se puede hacer lo que quieres sin necesidad de hacer algo tan complejo. Has de usar el TextureFactor.
Si quieres tener un color por vertice, textura y ademas todo esto poder tintarlo de un color, debes hacer:

En el stage 0 pones que se multiplique la textura y el color por vertice.
En el stage 1 pones que el resultado anterior se multiplique por el TextureFactor.
El codigo seria algo asi:
p_Device9->SetRenderState( D3DRS_TEXTUREFACTOR, color/* Aqui pon el color que quieras*/ );
p_Device9->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
p_Device9->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
p_Device9->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
p_Device9->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_MODULATE );
p_Device9->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT );
p_Device9->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_TFACTOR );

Si solamente quieres texture y tintar de un color:

En el stage 0 pones que se multiplique la textura y el TextureFactor:
Y su codigo correspondiente:
p_Device9->SetRenderState( D3DRS_TEXTUREFACTOR, color/* Aqui pon el color que quieras*/ );
p_Device9->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
p_Device9->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
p_Device9->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_TFACTOR );

Espero que te sirva!

Un saludote!!
#51
Programación gráfica / No Me Creo Esto De Direct3d...
11 de Diciembre de 2003, 09:25:42 AM
 Hola a todos!

Tengo un problemilla con D3D. Estoy realizando una aplicacion y necesito pintar lineas con un grosor determinado. Al principio pense 'bah, esto sera una mamonada'. Me puse a buscar la equivalente de glLineWidth en D3D y: O no la supe encontrar o realmente no existe! Lo mas parecido que vi fue la interface ID3DXLine, que me deja fijarle un grosor, pero no quiero usar esa clase solo por eso. Alguien tiene idea de como hacer lo que necesito?

Muchisimas gracias por adelantado.

Saludotes!
#52
Programación gráfica / 3d+c, ¿cómo Empezar?
25 de Noviembre de 2003, 08:16:17 AM
 Totalmente cierto : ) ( Que bien nos lo pasamos x)) )
#53
Programación gráfica / 3d+c, ¿cómo Empezar?
24 de Noviembre de 2003, 09:09:26 PM
 STL lentas? Pero si tienen prefetch!!! Hice un test con unos colegas del palo hacer un sumatorio de un array normal y otro de un vector de STL. Si se usan los iteradores, gana STL. Y si se usan los algoritmos que vienen con las STL, aun mejor : )

STL r00lz!
#54
General Programadores / Dlls Y Mfcs
23 de Noviembre de 2003, 04:23:22 PM
 Bueno, al fin lo he conseguido arreglar!

Al final la culpa no era de las MFCs, si no mia ( Gracias igualmente, ethernet, por el link. Muchas gracias ). Lo que pasaba es que la DLL que estaba intentando linkar esta, a su vez, intentaba linkar con otra DLL ( implicitamente, creo que se llama ) y era esta la que Windows no encontraba. Fallo mio...  :(

como me alegro de no usar mfc

Eso mismo pensaba yo, hasta que me han hecho ver la luz ^_^ Las MFC estan mejor de lo que parece.

Un saludote y gracias a todos!!
#55
General Programadores / Dlls Y Mfcs
22 de Noviembre de 2003, 01:15:29 PM
 Lo unico que hago es poner, en los settings del proyecto, que el EntryPoint es DllMain. Y esto me funciona cuando es una aplicacion Win32 normal, pero no con MFC.
Desde la aplicacion MFC he hecho el LoadLibrary de unas pocas DLLs y la unica que me ha funcionado bien ha sido la OpenGL32.DLL...
Tambien he probado la AfxLoadLibrary, pero me da los mismos errores  (nooo)  (nooo)  (nooo)  (nooo)  
#56
General Programadores / Dlls Y Mfcs
22 de Noviembre de 2003, 12:14:34 PM
 Buenas:

Pues yo no tenia ningun DllMain; no lo necesitaba. Ahora se lo he puesto, pero parece que no pasa por ahi, pero con una aplicacion Win32 normal, si que pasa. Ciertamente el Windows no me cree cuando le digo que en la ruta X esta una DLL : ( No lo entiendo!!
Mi DllMain es esto:

BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved ) {
return TRUE;
}


Gracias por el intento!!

Estoy desesperandome por momentos...
#57
General Programadores / Dlls Y Mfcs
22 de Noviembre de 2003, 10:25:44 AM
 Ya lo habia probado, pero muchas gracias igualmente. No se que puede ser... : (
#58
General Programadores / Dlls Y Mfcs
22 de Noviembre de 2003, 01:25:17 AM
 Hola a todos!

Me he vuelto a encontrar con un problemilla al utilizar DLLs.
Tengo mi DLL que es una implementacion de una clase interface ( motor grafico, por ejemplo ) y esta hace un new del objeto mediante una funcion. Bueno, hasta aqui todo bien. Ahora me he querido hacer una aplicacion con MFCs utilizando este objeto, pero me he encontrado con el problema de que la aplicacion no me quiere cargar la DLL ( utilizo LoadLibrary ).
Alguien sabe porque es esto? He dejado todos los settings del proyecto igual que el resto, pero no consigo solucionarlo... si alguien me pudiese ayudar, le estaria muy agradecido. Este problemilla me saca de quicio....  (nooo)
En fin, muchisimas gracias por adelantado!

Un saludote!!

EDIT: La funcion GetLastError( ) de Windows me devuelve el error numero 126 ( The specified module could not be found.  ERROR_MOD_NOT_FOUND ) y juro y perjuro que el archivo esta ahi, y con otras aplicaciones no MFCs me funciona a la perfeccion...  (grrr)  
#59
General Programadores / Macros Y Zeromemory
20 de Noviembre de 2003, 08:18:15 AM
 : )))) Me alegro que te haya gustado esta solucion.
Deberiamos ir olvidando las macros, y del C en general ( siempre que sea posible ), e intentar pasarnos completamente a C++. Yo no hace mucho que estoy en el ajo, pero gracias a un compañero estoy aprendiendo muchisimo y es ahora cuando lo veo!!

Un saludote!
#60
General Programadores / Macros Y Zeromemory
19 de Noviembre de 2003, 10:08:07 PM
 Y porque no haces un template?:


template < class Type >
void zeroMemory( Type *destination ) {
   ::ZeroMemory( destination, sizeof( Type ) );
}


Y luego para llamarla desde tu codigo simplemente es:


zeroMemory( &variable );


C++ es una maravilla; usemoslo!! ; )





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.