Este blog esta em reforma no momento.

Ajustes na seleção de objetos

Esse sistema que mostra os dados básicos e umas marcas de seleção derão mais trabalho doque parece e se esperava.
Mexer com GUI é mais complicado doque parece! Logo deu para perceber que preciso fazer um casamento melhor entre o 3D e o 2D.
O primeiro passo é padronizar nos modelos o uso de Emptys para servirem de referência.
Um para ser usado como ponto de seleção e outro acima da cabeça para exibir indicadores (como os ícones de quests nos MMORPG).

E fiquei um bom tempo trabalhando nas funções de projeção, que me devolvem as coordenadas 2D de tela com base no 3D.

Nessa sexta a noite trabalhei intensamente na linha indicadora. Ela é um complemento da GUI, você seleciona o objeto e a linha aponta um quadro com detalhes do personagem.

Ela nada mais é doque uma linha gerada por OpenGL "bruto". Apesar disso eu tive que criar um "White" material para resolver o problema de reinicializar o OpenGL na hora de desenhar a linha.

Tive que apelar para usar código de desenho de baixo nível, o passo principal foi caçar em fóruns e ver que o melhor jeito é implementar um RenderQueueListenner no sistema.

O mais chato é que eu conheço bem a OpenGL e todo o conceito erá simples e fácil. Mas dentro do framework tudo ficou mais dificil. Bom, na verdade essa é a função dele: simplificar as coisas complexas mas logiccamente as vezes isso complica as mais simples.


Linhas consomem mais processamento doque simples faces, mas como o numero delas é reduzido acredito que deve o impacto será mínimo.


Estranhamente não estou conseguindo renderizar texto pelo overlay padrão da OGRE, é algum problema com o manipulador de recursos.
Mas a Rocket está dando um gás muito bom no processo. Com uma HTML simples deu pra fazer muita coisa.
Esse HTML ainda vai carregar mais algumas seções como a caixa de informação de probabilidade de dano e talvez um indicador de status dizendo como esta o personagem.


Por enquanto os pontos de seleção quando inseridos em cena perdem seu parent (objeto pai), talves eu tenha que fazer a conexão usando o C++, mas ainda não olhei com calma todos os exemplos da GameKit.
O ideal é que eles sejam aparentados com os bones.

Foi bom eu ter visto estas coisas no inicio, por enquanto o teste esta sendo feito apenas com 2 modelos se tivesse mais prontos teria muito trabalho.

Comentários

  1. ai parabens pelo projeto acompanho sempre esperando novos posts muito interessante a história e só mais um detalhe percebi que quase não tem cometários em seu blog né resolvi deixar um aqui...

    ResponderExcluir
  2. Bacana.
    Você já viu o BGUI ? É uma biblioteca python para usar com a Blender Game Engine que muito boa para interface.

    Abraços,
    Dalai

    ResponderExcluir
  3. Só hj estou ouvindo falar, entrei na página do projeto no Google Code e vi uns screenshots e favoritei. É promissor.

    Mas não estou me focando em usar a GE do Blender, optei por um ambiente mais portável onde tb possa fazer umas experimentações novas.

    Quando começei no Blender não tinha essas coisas, nem shaders nem nada, apenas uma API meio braçal. Hoje a coisa é diferente, talvez ele chegue a competir com a Unity 3D como plataforma de desenvolvimento, mas no momento fico com a OgreKit ^_~

    ResponderExcluir

Postar um comentário

Como fiquei sabendo que um pobre blogueiro foi processado por um comentário anonimo esses dias, so me resta me precaver contra a ineficácia da legislação em tratar o meio online. Mas eu prometo que libero rapido ^_~