Criando luz

8 respostas
M

Olá pessoal!

Estou fazendo um trabalho e precisava criar uma fonte de luz que mudasse de cor, atraves de um dispositivo.

Como criar essa fonte de luz?

Estou usando o paint 2d para setar uma imagem de fundo; de que modo é possivel criar uma luz utilizando a interface 2d?

Num mesmo programa posso usar o 2d e o 3d ao mesmo tempo?

Agradeço a ajuda,

abraços,

Marcelo.

8 Respostas

ViniGodoy

Você até pode, mas é mais fácil fazer isso usando uma Engine 3D, não uma 2D.

Dê uma olhada no JOGL, LWJGL, no Java3D ou mesmo no JMonkeyEngine. Todas são engines 3D para java. Elas permitem definir automaticamente fontes de luz, e permitem também criar objetos 3D na tela.

M

Ok, neste caso eu não posso utilizar ao mesmo tempo o 2d, certo?

Teria algum exemplo de código por 3d e 2d?

Abraço,

Marcelo.

ViniGodoy

Poder até pode. É o que os jogos fazem.

O HUD (área onde fica informações do personagens, skills, mini-mapa, etc.) é todo desenhado em 2D. Você pode usar para isso uma perspectiva ortogonal e mapear seu espaço vetorial para exatamente as coordenadas do monitor.

O resto do jogo em 3D. Usa a perspectiva de frustrum.

Fazer isso não é trivial. De exemplo tenho só o jogo do Bola Gelada, que fiz em 3D, mas é todo feito em C++.

Agora, você não vai poder fazer 2D usando o Java 2D. Terá que fazer 2D usando os comandos da API 3D que escolher.

Marky.Vasconcelos

Bem… se te ajuda voce pode pintar uma area branca semi-transparente na area que voce queira que seja mais clara.

Mas é claro que a opção do ViniGodoy é mais interessante.

M

Entendi. Realmente parece ser bem complicado…

Meu objetivo na verdade é criar uma lampada que emita luz colorida num cenário. Acho que uma solução seria usar o paint para criar um rastro colorido. Será que teria um método mais fácil e bem definido?

ViniGodoy

Bom. Vamos as perguntas:

Os objetos do cenário vão ter que brilhar?
Eles vão estar sempre no mesmo angulo em relação a câmera?
A luz vai tremular ou ser fixa?

Uma técnica usada em jogos mais antigos era desenhar os sprites dos objetos já com as luzes. Usar uma textura animada para a origem da luz (uma animação de uma tocha, por exemplo), e, quando muito, a iluminação fazer como o mark sugeriu, através de uma textura transparente. O personagem do jogo e outros objetos móveis não eram iluminados.

M

Seria algo bem simples. Desenhei um cenário que será fixo. Esse cenário eu coloquei utilzando o paint 2d, atraves do método drawImage. Nele já se encontra a lampada (tipo aquelas incandescentes) apontada para um ponto fixo. O que quero mudar é a luz dessa lampada, que não existe no desenho. Ela poderá ter várias cores e intensidade, podendo ser mudada numa escala de 0 a 100% de intensidade. Neste caso será fixa mesmo.

Aproveitando a pergunta, iria tambem colocar alguns feixes em forma de bolinhas, que tambem sairia da lampada, como uma espécie de raio laser. Esses feixes sim, gostaria de criar com um movimento meio turvo e que pudesse ser manipulado.

Obrigado pela atenção!

Marcelo.

M

Como eu poderia criar um feixe colorido utilizando o paint? Tentei criar um poligono em forma do feixe, mas tive alguns problemas. Como desenhar utilizando o paint, de forma que consiga ter esse efeito?

Abraço,

Marcelo.

Criado 28 de fevereiro de 2010
Ultima resposta 6 de mar. de 2010
Respostas 8
Participantes 3