Tutoriais - Utilidades

Passeios interativos com Max e 3D Game Studio

Oi pessoal meu nome é Jean, hoje vou explicar passo a passo como criar um ambiente interativo com o 3ds Max 9 e o 3D Game Studio 7.

Antes de qualquer coisa nós precisamos ter em mente alguns conceitos básicos da Computação Gráfica.

O mais importante em um ambiente em tempo real é a velocidade da execução, ou seja, os FPS (Frames Per Second), e se sabe que quanto mais compactado os dados mais lento será a leitura, tanto para textura quando para objetos e outros tipos de dados.

Noções elementares de CG e textura em ?Real Time? (tempo real)

Em cada imagem temos uma quantidade de informações de cores e elas podem ser limitadas pelas configurações ou pelo formato utilizado chamado Color Depth .

Para sua maior performance quase tudo no computador utiliza números potência de 2 chamado de ?Power of two?.
Vejamos alguns exemplos que utilização Color Depth com números com potência de 2.

(2¹ = 2 colors) 1 Bit - A imagem com apenas 2 amostragem de cores. Monocromático











(2 elevado a 4 = 16 colors) 4 Bis ? 16 Cores o mesmo usados nos consoles 16 bit como Super Nintendo.










(2 elevado a 8 = 256 colors) 8 bit ? Seria então 256 cores.

(2 elevado a 16 = 65,536 colors) 16 bis ? Cor muito próxima da realidade, porém, alguns espectros de cor não são visíveis como um gradiente, por exemplo, cores verdes também são mais sensíveis aos olhos humanos e podem apresentar problemas usando 16 bit.

(2 elevado a 24 = 16,777,216 colors) 24 bit ? Mais conhecido como ?True Color? e suporta toda a gama de cores que nossa vista pode enxergar, tirando as cores de freqüências baixas como Violeta e as altas como Infra.

(2elevado a 32 = 4,294,967,296 colors) 32 bit ? É um formato mais alto para jogos onde você tem todas as cores ?True Color? e recursos exclusivos como o armazenamento de valores de Alpha para a criação de texturas translúcidas.

Outra fator importante que deve ser levado em consideração é a configuração de sua placa de vídeo. Poque não adianta você ter texturas com 32 bit se a configuração do seu vídeo está para exibir cores em 24 bit.
Porque Poder de 2?

Porque dois é a base do sistema binário e por conseqüência disso a velocidade da leitura é muito mais rápida quando o numero é um Poder de 2. Por exemplo:

2 elevado a 0 = 1
2 elevado a 1 = 2
2 elevado a 2 = 4
2 elevado a 3 = 8
2 elevado a 4 = 16
2 elevado a 5 = 32

E assim por diante.

Isso vale tanto para o tamanho da textura quanto para a quantidade de cor.



No 3D Game Studio podemos usar vários formatos de imagem, por exemplo:

BMP e PCX ? São formatos de leituras rápidas, mas mesmo oferecendo 24 bit de cor são consideradas imagens de media qualidade.

TGA ? É a textura de melhor qualidade, podendo reproduzir texturas translúcidas com 32 bit de cor.

JPG ? Textura com tamanho muito pequeno, porém, é como já expliquei acima, quanto mais compactado será mais demorado, não é recomendado para aplicações em tempo real.

No 3D Game Studio você pode usar texturas com o tamanho sendo múltiplos de 4, por exemplo.

256 por 260
260 por 264

Com texturas usando múltiplos de 8 temos mais recursos, como desativar o Mipmaps, que geralmente é recomendável deixar ativada, pois é utilizada para diminuir o aliasing.

Agora, textura usando múltiplos de 4 ou de 8 não quer dizer que são Poderes de 2!

As placas de vídeos não reproduzem texturas arbitrárias. Todas as texturas na hora da execução são convertidas para texturas com o tamanho em ?Poder de 2? mais próximo do tamanho original, por exemplo.

(32, 64, 128, 256, 512, 1024...)

120 por 1020 seria convertido para 128 por 1024

516 por 72 seria convertido para 512 por 64

Beleza, agora chega de teoria e vamos para a pratica.
Exportando do 3ds Max 9 para o 3D Game Studio 7

Um dos melhores formatos para exportação hoje é o FBX.
Para atualizações gratuitas acesse o site: http://www.autodesk.com/fbx

Nele você guarda todas as características da cena, como a forma geométrica, animação, textura e outros. Abra o arquivo Cena6.max no seu 3ds max.

Como você pode ver é uma cena simples, contém materiais com 24 bit de cor e tamanho de largura e altura em Poder de 2, mapeamento normal, nada de anormal foi usado, ou melhor dizendo, complexo.

Então clique em File ? Export.
Exporte na mesma pasta onde a Cena6.max esta localizada, em nome coloque apenas ?cena? e em formato coloque Autodesk FBX.

Apenas irei exportar a Geometria e as Câmeras, a Iluminação usaremos outro método, texturas conseqüentemente vêm junto com a geometria, vamos para o próximo passo.



Agora faremos o mesmo processo, só que exporte para o formato ASCII Scene Export .ASE.

Coloque ?cenalight? como o nome do arquivo.

Abra o 3D Game Studio, entre então no programa ?Level Editor?.
Depois em File ? Import ? Import from FBX files.
Importe o arquivo cena.fbx
Depois File ? Import ? Import from 3ds Max ASE.
Importe o arquivo cenalight.ase.

Sempre é necessário reajustar a intensidade da iluminação. Clique nas Luzes e ajuste o parâmetro Range para que fique de acordo na cena toda.

Salve o arquivo com o nome \"cena\".

Agora vamos copilar o mapa para o engine.
Vá em File ? Build Map e clique em Ok.

Para fazer um teste clique em File ? Run Map.

Por último criaremos uma Sphere para colidir com o cenário e junto a isso a câmera irar acompanha a sua posição.

Abra o programa ?Model Editor?, crie uma Sphere e posicione a Sphere no meio da cena.

Agora salve o arquivo com o nome ?sphera?. Vamos para o próximo passo.
Programando uma câmera em Lite-C com 3D Game Studio 7

Este será o passo final desse tutorial pessoal, não vou detalhar bem pois o tutorial já está grande e em programação cada detalhe é muito grande, então, se tiver alguma dúvida, posta uma mensagem no fórum que assim que possível eu responderei.

Abra o programa ?Script Editor?.

Automaticamente ele já criara um novo, então, vamos lá, cole o seguinte script:

#include
#include

var vel_x;

var camera_tilt;
var camera_pan;

function camera_move () {

while(1) {

camera.pan -= (mouse_force.x * 16) * time_step;
//Pan é ã rotação no eixo X seria mesma coisa que olhar para esquerda ou para direita
//16 é a velocidade da ação

camera.tilt += (mouse_force.y * 4) * time_step;
//Tilt é ã rotação no eixo Y seria mesma coisa que olhar para cima ou para baixo
//4 é a velocidade da ação

if ( key_pressed(72) ) vel_x += 1;
//Quando presionar a tecla para cima ele irar acelerar +1
if ( key_pressed(80) ) vel_x -= 1;
//Quando presionar a tecla para cima ele irar desacelerar -1

vel_x *= .98;
//Atrito vai evitar que a sphera ande infinitamente

me.tilt = camera.tilt;
//Atuliza a Tilt para sphera
me.pan = camera.pan;
//Atuliza a Pan para sphera

c_move( me, vector( vel_x * time_step, 0, 0), nullvector, IGNORE_PASSABLE|GLIDE|USE_AABB );
//Movimenta de acordo com a inclinação da sphera que esta com o mesmo valor da camera

vec_set( camera.x, me.x);
//Atualiza o mesmo valor da posição da camera é igual o da sphera
wait(1);
}


}
function main () {

level_load (\"cena.wmb\");
//Carrega o cenario
wait(2);
ent_create( \"sphera.mdl\", vector(400, 0, 100), camera_move );
//Carrega a entidade sphera

}


Logo quando carregar o engine, a primeira função a ser executada será a main, então, salve o arquivo na mesma pasta onde esta os demais com o nome ?main.c?.

Entre em Options ? Preferences, depois, na opção Main Script to Run e abra o arquivo main.c que você acabou de criar.

Tecle F5 para testar, se estiver tudo certo, para publicar você clica em File ? Publish.
Selecione o engine Lite-C que geralmente fica na em: C:\\Arquivos de programas\\GStudio7\\acknex.exe


Pessoal o engine do 3D Game Studio é fabuloso e permite inúmeros recursos com poucas limitações, tanto para passeios virtuais como para games de computador e fliperama.

Mais informações sobre o 3D Game Studio no site: www.3dgamestudio.com

Faça o login para poder comentar

sunag Comentou em 16/06/2011 17:45 Ver comentário

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 711048.

Total de membros registrados: 138517

Últimos membros registrados: luciano pr, Davis123, diabecode, aldiriank1, nexagenkopen, GoldenRevivePlus, TroviranKapselnPreis, Williamcharses.

Usuário(s) on-line na última hora: 1247, sendo 3 membro(s) e 1244 visitante(s).

Membro(s) on-line na última hora: Andrezão de Paula, holtenodro, Rodrigo.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.