Foros - Stratos

Stratos => Principiantes => Mensaje iniciado por: drakmer64 en 20 de Junio de 2010, 01:13:36 PM

Título: Transparencia DirectX archivos PNG
Publicado por: drakmer64 en 20 de Junio de 2010, 01:13:36 PM
Cargo una imagen PNG con D3DXCreateTextureFromFileEx (...) que ya tiene transparencia, con que función de directx que al darle las coordenadas x,y de la imagen, me retorne TRUE o FALSE si ese punto de la imagen es transparente o tiene color.
Título: Re: Transparencia DirectX archivos PNG
Publicado por: blau en 20 de Junio de 2010, 01:21:44 PM
supongo que mas bien tendras que comprobar el canal alfa, ya sabes eso de RGBA
Título: Re: Transparencia DirectX archivos PNG
Publicado por: [EX3] en 20 de Junio de 2010, 05:01:07 PM
No existe ninguna funcion concreta de DirectX para obtener el color de un pixel directamente, hay programarlo pero no es demasiado complicado. Para poder leer los pixeles de una textura o una superficie tienes que bloquear su informacion mediante la funcion LockRect() de la textura o superficie pasandole una estructura D3DLOCKED_RECT que contendra un array con la informacion de los pixeles y el Picth que lo usaras para determinar el ancho de la textura o superficie a la hora de recorrer el array leyendo los componentes de color. El array que contiene la estructura almacenara cada pixel en 4 indices, esto es, que los cuatro primeros indices del array corresponden al valor RGBA del primer pixel.

Si buscas por google deberia aparecer algun tutorial sobre el uso de la funcion LockRect() para la lectura de pixeles que te lo explique algo mas detalladamente pero con lo brevemente explicado arriba supongo que deberias lograr implementarlo sin muchos problemas.

Salu2...