Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ajustar El Gamma

Iniciado por boubou, 12 de Diciembre de 2003, 12:40:44 PM

« anterior - próximo »

boubou

 he probao con el SetGammaRamp y na d na...
a mi me da k habra k hacer un SetRenderState de esos para k s pueda ajustar el gamma...
enga a ver si podeis ayudarme plzz
a2
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

boubou

onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

Haddd

 ¿has mirado si tu tarjeta soporta GammaRamp?

Yo lo utilizo y me funciona bien. Si sigues teniendo problemas te mandaré el código cuando llegue a casa

boubou

 mejor k me lo mandes x k soy d torpe...
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

Haddd

 Para saber si soporta gama:

   if(m_Caps.Caps2 & D3DCAPS2_FULLSCREENGAMMA) {
      Haddd.Debug(_T("FullScreenGamma OK"));
      m_Video->Device()->GetGammaRamp(0,&m_GammaRampOriginal);
      m_SoportaGamma=true;
   }
   else
      Haddd.Debug(_T("FullScreenGamma NO DISPONIBLE"));

   if(m_Caps.Caps2 & D3DCAPS2_CANCALIBRATEGAMMA)
      Haddd.Debug(_T("CanCalibrateGamma OK"));
   else
      Haddd.Debug(_T("CanCalibrateGamma NO DISPONIBLE"));


void CXVideo::EstablecerGamma(long ir,long ig,long ib)
{ long c;long v;D3DGAMMARAMP m;

   if(!m_Informacion.m_SoportaGamma) return;
   
   for(c=0;c<256;c++) {
      if(ir==0) m.red[c]=(WORD)(c*256);
      else {
         v=ir+(c*256);
         if(v>65535) v=65535;
         else if(v<0) v=0;
         m.red[c]=(WORD)v;
      }
      if(ig==0) m.green[c]=(WORD)(c*256);
      else {
         v=ig+(c*256);
         if(v>65535) v=65535;
         else if(v<0) v=0;
         m.green[c]=(WORD)v;
      }
      if(ib==0) m.blue[c]=(WORD)(c*256);
      else {
         v=ib+(c*256);
         if(v>65535) v=65535;
         else if(v<0) v=0;
         m.blue[c]=(WORD)v;
      }
   }

   Device()->SetGammaRamp(0,D3DSGR_NO_CALIBRATION,&m);
}


Por cierto, acabo de recordar que el Gamma sólo funciona en Full Screen en la mayoría de tarjetas!!

boubou

 no me va.
¿el CanCalibrateGamma hay que hacerlo por fuerza?
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

ethernet

 Haddd usa las etiquetad de CODE para que te quere el codigo identado

Mars Attacks

 Si no es mucha molestia, ¿para qué quieres la corrección de gamma? Me parece interesante en aplicaciones fotográficas y tal, pero en juegos...  :huh:  

boubou

 
CitarSi no es mucha molestia, ¿para qué quieres la corrección de gamma? Me parece interesante en aplicaciones fotográficas y tal, pero en juegos...

para hacer fades.
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

boubou

 
CitarHaddd usa las etiquetad de CODE para que te quere el codigo identado

no he entendido nada.
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

Loover

 Para los fades te recomiendo mejor o un fade por objeto a color si quieres fades individuales usando el texture factor. O un fade a pantalla completa usando un quad del color deseado que ocupe toda la pantalla y blendearlo progresivamente con la escena.
Lo malo de usar los gamma es que no rulan bien en modo ventana y además no todas las tarjetas lo soportan.

Un saludo!
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

vicho

 mars por ejemplo yo para los mapas de Quake3 necesito cambiarles la gamma, puedo hacerlo por software pero seria bueno tener tambien la opcion de cambiarla por la tarjeta de video, en todo caso es raro por que yo tampoco podia cambiarla usando SDL, raro y eso que en linux me funcionaba a la maravilla

boubou

 un quad??
un plano?

podria servir tambien un sprite del tamaño de la pantalla?
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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

Loover

 A ver, me refiero a que cambies a proyección ortogonal y dibujes un quad (un par de triángulos formando un rectángulo) ocupando toda la pantalla con el color que tu prefieras para el fade. Tienes que dibujarlo por encima de los objetos que quieras q sufran el fade (puede que prefieras preservar por ejemplo los marcadores o menú del juego y solo aplicarlo a la escena). Entonces activas el alpha blending y vas cambiando progresivamente el valor alpha hasta que solo se vea el quad con su color ocultando totalmente la escena. Utiliza tiempo del reloj real para hace el fade.
Algo simplísimo vamos.

La otra opción es usar fade to color para cada uno de los objetos de la escena. Mirate el post que abrí preguntando sobre si había que lockear el vb para cambiar el color/alpha.

Un saludo!

PD: En mi opinión los controles de gamma mejor no tocarlos. Por lo que ya dije en el otro post.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

boubou

 al final he hecho como tu dijiste, loover. y me ha salido bien, musshas asias! :)
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

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






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.