3D Parte 3
Página 1 de 1
3D Parte 3
Créditos:
psycon:Por traduzir.
dodoop:Por disponibilizar.
Tutorial:
Uso específico do seno
O que você aprenderá: criar um movimento para a camera.
1.1. Introduction
O que você aprenderá:
· Movendo a camera numa direçao,
· Usando o seno para rodar/yaw (rodar/ virar na horizontal),
· Usando o seno para nivel/pitch (subir descer na vertical),
· Movendo a camera para cima e para baixo,
· Rodando o programa.
------------------------------------
1.2. Movendo a camera numa direçao
No tutorial anterior sobre z values vimos como apontar a camera para um obj.
Talvez você reconheca o código seguinte daquele tutorial? Aqui está:
sem apontar algo em particular, não há nenhum objeto para apontar.
Se a camera tem que planar pelo espaço, passando todos os tipos de objetos sem
apontar para algum em particular, nós precisaremos usar outro tipo de código, algo como isso:
---------------------------------------
1.3. Usando o seno para rodar /yaw
Temos aqui seno (e sua contraparte: coseno) vamos ve-los. Para pegar a projeçao correta ao se mover pela room, teremos que usar o codigo seguinte:
A camera sera apontada na direçao que está olhando ou está movendo. Isso pode ser muito usual em jogos.
Em muitos jogos vc querera que a camera mostre na direcao em que esta se movendo, como, por exemplo, em jogos de tiro de primeira pessoa.
Com xt e yt determinados, iremos tb escrever o codigo para o zt value.
O xt e yt value cobre o olhar da esquerda e direita (também conhecido como yaw), mas nao cima e baixo!
---------------------------------------
1.4. Usando o seno para nivel/pitch
Nao somente precisamos declarar a variavel z, como vimos no exemplo anterior, mas tb precisamos apontar a camera para cima e para baixo. Para isso, usaremos o seguinte codigo:
Adivinhe por que? Isto é onde o seno entra novamente:
zdirection usando a funçao seno. Agora teremos que determinar xt, yt e zt, entao formar a direçao.
Poderiamos fazer a camera se mover na zdirection, ou seja onde esta apontando. Just read on.
----------------------------------------
1.5. Movendo a camera para cima e para baixo
Se quizermos que a camera se mova na zdirection, precisaremos mudar o z
value (sua altura efetivamente) que será feito pelo código seguinte:
incluído com este texto para ver como e por que funciona.) Como você pode ver pelo código,
o z é mudado, baseado no zdirection e speed.
Para fazer a camera’s pitch retornar para o nivel automaticamente, teremos que diminuir o
zdirection com o passar do tempo, usando o código seguinte:
no final.
1.6. Rodando o programa
Embora há muito mais àprender sobre o uso específico de seno em 3D, como
movimento circular ou ondulado, isto é tudo que falarei por agora.
Veja agora o arquivo gm6 para ver como seno foi usado para criar o efeito de voar pelo espaço. (Use as setas para mover.)
***
psycon:Por traduzir.
dodoop:Por disponibilizar.
Tutorial:
Uso específico do seno
O que você aprenderá: criar um movimento para a camera.
1.1. Introduction
O que você aprenderá:
· Movendo a camera numa direçao,
· Usando o seno para rodar/yaw (rodar/ virar na horizontal),
· Usando o seno para nivel/pitch (subir descer na vertical),
· Movendo a camera para cima e para baixo,
· Rodando o programa.
------------------------------------
1.2. Movendo a camera numa direçao
No tutorial anterior sobre z values vimos como apontar a camera para um obj.
Talvez você reconheca o código seguinte daquele tutorial? Aqui está:
- Código:
//mostrar o q a camera ve
d3d_set_projection(0,0,0, obj_Ball.x,obj_Ball.y,obj_Ball.z, 0,0,1);
sem apontar algo em particular, não há nenhum objeto para apontar.
Se a camera tem que planar pelo espaço, passando todos os tipos de objetos sem
apontar para algum em particular, nós precisaremos usar outro tipo de código, algo como isso:
- Código:
//mostrar o q a camera ve
d3d_set_projection(x,y,z, xt,yt,zt, 0,0,1);
---------------------------------------
1.3. Usando o seno para rodar /yaw
Temos aqui seno (e sua contraparte: coseno) vamos ve-los. Para pegar a projeçao correta ao se mover pela room, teremos que usar o codigo seguinte:
- Código:
xt=x+cos(direction*pi/180);
yt=y-sin(direction*pi/180);
A camera sera apontada na direçao que está olhando ou está movendo. Isso pode ser muito usual em jogos.
Em muitos jogos vc querera que a camera mostre na direcao em que esta se movendo, como, por exemplo, em jogos de tiro de primeira pessoa.
Com xt e yt determinados, iremos tb escrever o codigo para o zt value.
O xt e yt value cobre o olhar da esquerda e direita (também conhecido como yaw), mas nao cima e baixo!
---------------------------------------
1.4. Usando o seno para nivel/pitch
Nao somente precisamos declarar a variavel z, como vimos no exemplo anterior, mas tb precisamos apontar a camera para cima e para baixo. Para isso, usaremos o seguinte codigo:
- Código:
//declare z value
z=0;
zdirection=0;
Adivinhe por que? Isto é onde o seno entra novamente:
- Código:
zt=z+sin(zdirection*pi/180);
zdirection usando a funçao seno. Agora teremos que determinar xt, yt e zt, entao formar a direçao.
Poderiamos fazer a camera se mover na zdirection, ou seja onde esta apontando. Just read on.
----------------------------------------
1.5. Movendo a camera para cima e para baixo
Se quizermos que a camera se mova na zdirection, precisaremos mudar o z
value (sua altura efetivamente) que será feito pelo código seguinte:
- Código:
//move in zdirection
z+=zdirection*speed/128
incluído com este texto para ver como e por que funciona.) Como você pode ver pelo código,
o z é mudado, baseado no zdirection e speed.
Para fazer a camera’s pitch retornar para o nivel automaticamente, teremos que diminuir o
zdirection com o passar do tempo, usando o código seguinte:
- Código:
//diminuir zdirection
zdirection*=.98
no final.
1.6. Rodando o programa
Embora há muito mais àprender sobre o uso específico de seno em 3D, como
movimento circular ou ondulado, isto é tudo que falarei por agora.
Veja agora o arquivo gm6 para ver como seno foi usado para criar o efeito de voar pelo espaço. (Use as setas para mover.)
***
dodoop- Membro
- Mensagens : 41
Fama : 14
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos