A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Dom Out 25, 2020 10:24 am

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




Criar novo tópico Responder  [ 6 mensagens ] 
Autor Mensagem
 Título: Existem limites para as coordenadas?
MensagemEnviado: Qua Jun 06, 2012 5:39 pm 
Offline
Membro novo

Registrado em: Qua Jun 06, 2012 5:30 pm
Mensagens: 3
Tenho um código que desenha um triângulo vermelho e um verde na tela no Android Opengl ES 1.0

Ao alterar as coordenadas X,Y para um valor maior o triangulo desaparece. Estou alterando a posição da câmera também.

O código que funciona é esse:

Declaro os triângulos e suas cores e jogo em um buffer:

Código:
vert.setVertices(( new float[] {    -14302f,-12200f,         1, 0, 0, 1,
                     -14300f,-12200f,         1, 0, 0, 1,
                      -14301f,-12202f,         1, 0, 0, 1,
                     -14305f,-12200f,         0, 1, 0, 1,
                      -14308f,-12200f,         0, 1, 0, 1,
                      -14306f,-12202f,         0, 1, 0, 1,}),0, 6 * 6);


Posiciono a câmera:

Código:
gl.glViewport(0, 0, width, height);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluPerspective(gl, 67, width/ height, 1f, 15f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl, -14301f, -12201f, 10f, -14301f, -12201f, 0, 0, 1, 0);


Tudo corre bem e vejo os triângulos.

Abaixo o código que não funciona:

Código:
vert.setVertices(( new float[] {    -24302f,-22200f,         1, 0, 0, 1,
                     -24300f,-22200f,         1, 0, 0, 1,
                      -24301f,-22202f,         1, 0, 0, 1,
                     -24305f,-22200f,         0, 1, 0, 1,
                      -24308f,-22200f,         0, 1, 0, 1,
                      -24306f,-22202f,         0, 1, 0, 1,}),0, 6 * 6);



Código:
gl.glViewport(0, 0, width, height);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluPerspective(gl, 67, width/ height, 1f, 15f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl, -24301f, -22201f, 10f, -24301f, -22201f, 0, 0, 1, 0);


Apenas altero o 1 por 2 nas coordenadas e apesar de alterar a posição da câmera para que eu continue a ver a cena, nada vejo


Voltar ao topo
 Perfil  
 
 Título: Re: Existem limites para as coordenadas?
MensagemEnviado: Dom Jun 10, 2012 12:50 am 
Offline
Membro novo

Registrado em: Ter Mai 01, 2012 4:43 am
Mensagens: 14
Essa função pode ajudar, alterando no usando o teclado.
Código:
void camera (void) {
    glRotatef(xrot,1.0,0.0,0.0);  //rotaciona a camera no eixo x (left and right)
    glRotatef(yrot,0.0,1.0,0.0);  //rotaciona a camera no eixo x (up and down)
    glTranslated(-xpos,-ypos,-zpos); //translate a visão a posicao da camera
}


Voltar ao topo
 Perfil  
 
 Título: Re: Existem limites para as coordenadas?
MensagemEnviado: Dom Jun 10, 2012 9:40 am 
Offline
Membro novo

Registrado em: Qua Jun 06, 2012 5:30 pm
Mensagens: 3
Ok Santos,

Já usei deste procedimento, porém veja que não estou alterando a posição apenas da câmera altero também a posição dos triângulos.

Já me deparei com situações também onde eu setava minha posição Z da câmera e ia me aproximando do objeto e ao chegar a 0.25f eu via a cena e ao passar para 0.24f ou 0.249f já não via mais nada. Verifiquei tudo em relação ao meu frustum e eu deveria continuar vendo a cena.

Está difícil de entender o porque essas coisas ocorrem.

Pelo o que tinha intendido não importa a posição em que eu coloque os objetos se eu colocar a câmera na posição correta verei o objeto.

Ou seja eu uso o tipo de coordenada que achar melhor e no final o OpenGL resolve tudo normalizando as coordenadas para a cena que é visível.

Estou portando uma aplicação de mapas onde uso GDI e tenho que calcular tudo o que o OpenGL consegue fazer sozinho, mas na prática estou vendo que não vou conseguir usar os recursos a não ser que eu entenda o porque do que está ocorrendo.


Voltar ao topo
 Perfil  
 
 Título: Re: Existem limites para as coordenadas?
MensagemEnviado: Dom Jun 10, 2012 8:25 pm 
Offline
Membro avançado

Registrado em: Seg Dez 24, 2007 2:09 am
Mensagens: 239
Localização: Em algum byte perdido na memória...
Eu nao entendo muito de openGL e nao sei se voce esta fazendo isso, mas eu acho que voce precisa ter uma fonte de iluminacao para poder ver o objeto, pelo menos na maioria das engines graficas voce precisa, ou seja, voce tem uma fonte de iluminacao na cena? se sim, voce esta movendo ela junto com a camera e o objeto?

desculpa se isso nao tem a ver, como falei nao entendo muito de openGL


Voltar ao topo
 Perfil  
 
 Título: Re: Existem limites para as coordenadas?
MensagemEnviado: Dom Jun 10, 2012 9:35 pm 
Offline
Membro novo

Registrado em: Qua Jun 06, 2012 5:30 pm
Mensagens: 3
Obrigado colega, mas não tem nada a ver.

Eu já consigo ver os objetos não os vejo em situações específicas.


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:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB