Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
yyajsayy

Transformação Pixel ->Rosa em alpha 0 [opengl]

Recommended Posts

yyajsayy

Boas Pessoal, estou aqui com uma pequena dúvida.

Estou a fazer um projecto em opengl, consiste num FPS, já tenho a estrutura toda, está tudo a funcionar impecavelmente.

Agora vamos passar à questão em causa, tenho uma arma, como podem verificar na imagem a baixo, mas a minha imagem carregada não tem canal alpha, é do tipo RAW.

Ok, no problem, agora queria perguntar a alguém se tem a ideia como poderei transformar os pixeis de uma determinada cor, por exemplo rosa choque em transparente.. (na imagem tenho branco mas não interessa)

O ideal seria quando crio a textura após carregar a imagem em memória fazer a transformação.

Se alguem estiver conhecimento sobre isso, dê aí uma dica :)

doom2e.th.jpg

Nos jogos do século passado utilizava-se um algoritmo do género, daí os sprites até virem com cor rosa.

Thanks :D


"If it don't work the first time, rename it to version 1.0."

http://seguranca-informatica.pt

Share this post


Link to post
Share on other sites
Triton

Basta alterares o alpha channel da imagem. Em princípio deves estar a fazer load da imagem como RGBA8 (1 byte por cada canal). Assim podes transformar a imagem em memória antes de enviares como textura para o OpenGL.

Mas o mais fácil é não usares uma cor específica como transparente e usar o alpha channel da maneira correcta. Editas a imagem com um editor normal (Photoshop, Paint.NET, GIMP, etc) e metes o alpha correspondente nesses pontos onde queres que a imagem seja transparente.

Depois de fazer load como RGBA no OpenGL, activas o blending. Podes ver aqui melhor como fazer: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=08


<3 life

Share this post


Link to post
Share on other sites
Metaluim

Isso de meter uma cor específica, fazia-se nos motores 2D dos jogos das consolas antigas, muitas não suportavam alpha blending (por software ou hardware). Com o advento do OpenGL/DirectX isso tornou-se irrelevante.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.