A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Sáb Out 31, 2020 6:43 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 6 mensagens ] 
Autor Mensagem
 Título: Como movimentar um personagem usando Opengl
MensagemEnviado: Sáb Jan 10, 2009 4:47 pm 
Offline
Membro novo

Registrado em: Qua Out 04, 2006 5:30 pm
Mensagens: 3
Eu estou aprendendo a programar em opengl e glut utilizando c++
Tenho aprendido bastante coisa, já tenho noçâo de modelagem, cenário luzes, colisâo etc. O básico já tenho noçâo, só não consegui ainda aprender a movimentar um personagem pelo cenário.
Peguei um exemplo onde le um modelo criado no milkshape porém ele é estático não faz nada. Só aparece na viewport.
Não encontrei nenhum tutorial que me ensine a movimentar o personagem. Ou seja movimentar as pernas enquanto anda.
Alguém me ensina ou é muito dificil?


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Ter Ago 10, 2010 10:38 pm 
Offline
Membro novo

Registrado em: Ter Ago 10, 2010 9:59 pm
Mensagens: 5
Localização: Itajaí, SC
isso é mais basico do que "modelagem, cenário luzes, colisâo" então tu deveria saber -.-

_________________
Programe...


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Seg Ago 23, 2010 6:15 pm 
Offline
Membro novo

Registrado em: Qui Ago 19, 2010 5:08 pm
Mensagens: 6
Twinsen escreveu:
isso é mais basico do que "modelagem, cenário luzes, colisâo" então tu deveria saber -.-


por mais q eu concorde com vc...eu acho q esse tipo de resposta não vai ajudar...

olha só...se vc diz se mexer do tipo "andar" pelo cenario...bom...não sei como vc tá renderizando...mas...é só somar o valor da posição q vc quer a cada vértice q ja deve resolver...agora...se vc diz a respeito de animação...depende tb do q vc está usando...bones, keyframes, etc...

_________________
"Mais 20 tiros e teremos uma democracia"


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Seg Ago 23, 2010 10:21 pm 
Offline
Membro intermediário
Avatar do usuário

Registrado em: Qui Nov 12, 2009 8:34 pm
Mensagens: 97
heh... realmente é uma contradição:
Citação:
...já tenho noçâo de modelagem, cenário luzes, colisâo etc. O básico já tenho noçâo, só não consegui ainda aprender a movimentar


Como voce sabe luzes e colisão, mas não sabe mover ?
Nem tem como testar colisão sem ter movimento.


Bom, vamos lá:

Citação:
...é só somar o valor da posição q vc quer a cada vértice q ja deve resolver.


Não faça isso, os vértices dos "modelos" possuem uma posição local, ou seja, alterar a posição do vertice em si significa alterar a posição dele em relação ao modelo.

Imagine só a situação de um modelo com 32425256457 vértices vc nunca vai somar uma variavel "posição" a todos os vértices.

Use transformações lineares do OpenGL, recomendo voce dar uma pesquisada, pq eu considero isso o mais importante que eu programador precisa saber sobre OpenGL,

"modelar" usando o proprio OpenGL nenhum programador vai precisar fazer (tirando primitivas bem básicas), agora transladar, rotacionar, projetar... todas as transformações são essenciais nos jogos.

Faça o seguinte:

Código:
GLfloat x = 0.0f, y = 0.0f, z = 0.0f;
...
glMatrixMode(GL_MODELVIEW); // espaço vetorial dos objetos
glLoadIdentity();
...
glPushMatrix();
glTranslatef(x,y,z);

draw_model();

glPopMatrix();


Altera x, y, e z para fazer o modelo se movimentar.
Atenção: Esses comandos precisam estar dentro de um looping com controle de FPS já feito.

glPushMatrix() salva numa pilha o estado das transformações lineares, e o glPopMatrix(), carrega o estado salvo no glPushMatrix(), para os outros objetos não serem afetados pela transformação feita.

Ah ! Um conselho, não use a glut, ela é horrivel, extremamente ineficiente para jogos, callbacks só dão problemas pra jogos.
Use AllegroGL ou até o SDLGL.

_________________
Alexandre (Abdalla) Cardoso.

Antigo Portifolio:
http://www.dcc.ufrj.br/~abdalla
(o novo ainda está em construção)


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Ter Ago 24, 2010 12:38 pm 
Offline
Membro novo

Registrado em: Qui Ago 19, 2010 5:08 pm
Mensagens: 6
Abdalla escreveu:
Citação:
...é só somar o valor da posição q vc quer a cada vértice q ja deve resolver.


Não faça isso, os vértices dos "modelos" possuem uma posição local, ou seja, alterar a posição do vertice em si significa alterar a posição dele em relação ao modelo.

Imagine só a situação de um modelo com 32425256457 vértices vc nunca vai somar uma variavel "posição" a todos os vértices.



sim Abdalla...é exatamente isso...(até pq...se vc tiver um modelo com 32425256457 vértice...q Google te salve!) pois é um jeito um pouco mais simples de fazer...vide o MD5 da IDSoftware q trabalha mais ou menos assim...mas se vc quer jeitos mais eficientes...aí temos dois...ou vc separa os vértices em grupos e aplica um glMultMatrix com a matriz do bone na hora de renderizar (o q provavelmente te renderia algumas chamadas a mais) ou então seja agressivo...aprenda GLSL e faça a magica toda através do Vertex Program (q nem a pau eu recomendo pra iniciante)

e outra...FATO...pule fora do GLUT...ele é bom pra faculdade...fazer exemplinho...coisinha grafica e tudo mais...mas quando se trata de jogo vc provavelmente vai querer algo mais potente e completo...caso da Allegro e do SDL...

_________________
"Mais 20 tiros e teremos uma democracia"


Voltar ao topo
 Perfil  
 
 Título:
MensagemEnviado: Ter Ago 24, 2010 10:22 pm 
Offline
Membro intermediário
Avatar do usuário

Registrado em: Qui Nov 12, 2009 8:34 pm
Mensagens: 97
Pentium166 escreveu:
sim Abdalla...é exatamente isso...(até pq...se vc tiver um modelo com 32425256457 vértice...q Google te salve!) pois é um jeito um pouco mais simples de fazer...vide o MD5 da IDSoftware q trabalha mais ou menos assim...mas se vc quer jeitos mais eficientes...aí temos dois...ou vc separa os vértices em grupos e aplica um glMultMatrix com a matriz do bone na hora de renderizar (o q provavelmente te renderia algumas chamadas a mais) ou então seja agressivo...aprenda GLSL e faça a magica toda através do Vertex Program (q nem a pau eu recomendo pra iniciante)


Verdade, mas isso que vc disse é animação por interpolação de bones do modelo.
Eu achei que o cara quer algo mais simples que isso, como movimentar um modelo pelo cenário.

OBS: 32425256457 de vértices é foda mesmo... hahahah, meu PC travou quanto renderizei um heightMap de 2 milhões de vértices no openGL.

_________________
Alexandre (Abdalla) Cardoso.

Antigo Portifolio:
http://www.dcc.ufrj.br/~abdalla
(o novo ainda está em construção)


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 6 mensagens ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB