Introdução

;O Java3D é uma API (Application Program Interface) que vem se tornando bastante conhecida e utilizada para o desenvolvimento de muitas aplicações, entre as quais pode-se citar os jogos 3D. Isso se deve ao fato de ser uma camada em alto nível que facilita o desenvolvimento, dispensando o programador de realizar tarefas complexas como gerenciamento de memória, otimização e renderização. Diferentemente do OpenGL, que funciona sobre o conceito de máquina de estados, o Java 3D oferece ao desenvolvedor uma programação mais clara e intuitiva através do seu conjunto de classes e métodos para a programação 3D.

Este curso oferece uma visão geral sobre o desenvolvimento de jogos 3D utilizando a linguagem Java e sua API gráfica Java 3D. Para isso, os conteúdos abordados vão desde a criação de uma simples janela até a implementação de um protótipo final contendo as características básicas de um Jogo 3D, como interface gráfica com o jogador, placar, colisão, etc.

Dentre os principais tópicos abordados no curso, destaca-se: manipulação de imagens e texturas, transformações geométricas no sistema de coordenadas espacial (X,Y,Z), interação com dispositivos de entrada, animações, sons e colisão.
 

Desenvolvido por: Silvano Maneck Malfatti, Fernando Freitas Gil, Luciane Machado Fraga
Instrutores do curso: Silvano Maneck Malfatti e Luciane Machado Fraga


Requisitos mínimos para se fazer o curso:

- Conhecimentos de programação Java, conceitos básicos de manipulação de objetos 3D no espaço (rotação, translação, escala).
- Ambiente de programação Java de sua preferência.
 

Conteúdo

 

Aula 1: Introdução à Programação Java e sua API Java 3D
A primeira aula irá mostrar como a API (Application Program Interface) Java 3D pode ser utilizada com a linguagem Java para o desenvolvimento de aplicações 3D. Nesse primeiro contato, será mostrado como instalar o compilador Java e sua API Java 3D, como deve ser a estrutura de um programa Java+Java 3D, e para finalizar será apresentado um pequeno exemplo que cria uma aplicação em tela cheia pronta para renderizar gráficos 3D.

Aula 2: Conhecendo os Objetos de Cena do Java3D
Nessa segunda aula será abordado mais detalhadamente sobre os objetos que compõem o Universo Virtual do Java3D, assim como quais os tipos de objetos que podem ser transformados, adicionados, removidos em tempo real, e como configurar suas propriedades. Para finalizar serão apresentados exemplos de como alterar o Universo Virtual em tempo real.

Aula 3: Primitivas e Cores
A terceira aula ensina como trabalhar com as primitivas oferecidas pelo Java 3D (pontos, linhas, triângulos e quadriláteros) e também como ajustar as suas cores e aparência. Para cada tipo de geometria apresentada no conteúdo será dado um exemplo prático de sua utilização.

Aula 4: Transformações Geométricas
A quarta aula ensinará como mover objetos 3D pelo mundo virtual. Para isso, serão apresentadas as classes responsáveis pelas transformações geométricas em Java 3D, e também como realizar a transformação de objetos através de suas próprias matrizes. Através de exemplos práticos será demonstrado como posicionar, rotacionar e escalar objetos 3D no Mundo Virtual.

Aula 5: Animações e Interação com Dispositivos de Entrada
A quinta aula irá apresentar um conjunto de classes do Java 3D que fornecem recursos para a criação de animações rápidas. Essa aula mostrará  também como utilizar dispositivos de entrada, como joystick, mouse e teclado, para interagir com os objetos do Universo Virtual do Java 3D. Serão codificados programas para demonstrar a interação com cada um dos dispositivos.

Aula 6: Trabalhando com Imagens
O objetivo desta aula é demonstrar como são carregadas as imagens utilizando a linguagem Java e a API Java 3D e como essas imagens podem ser aplicadas em forma de textura aos objetos 3D do Mundo Virtual. Esta aula ensinará também através de exemplos práticos como utilizar imagens para criar a interface com o usuário.

Aula 7: Luzes
Nesta aula serão apresentados os tipos de luzes existentes no Java 3D e como manipulá-las. Assim como nas aulas anteriores, serão apresentados exemplos práticos para a criação e manipulação de fontes de luz em um universo virtual Java 3D.

Aula 8: Adicionando Sons ao Universo 3D
A oitava aula mostrará como carregar e posicionar os diversos tipos de controles de sons espaciais oferecidos pelo Java3D. Programas exemplo demonstrarão como posicionar sons 3D no Universo Virtual e configurar a sua área de atuação.

Aula 9: Importando Modelos 3D para o Universo Virtual
Esta aula oferece recursos muito importantes para um jogo, pois mostrará como importar para o Universo Virtual objetos 3D desenvolvidos com programas de modelagem com o 3D Studio Max, entre outros. Serão apresentadas algumas classes, conhecidas como Loaders, que importam diferentes tipos de modelos 3D para o Universo Virtual.

Aula 10: Implementando Colisões
Esta aula ensinará um método para tratar colisões entre os objetos virtuais 3D. Apresentará também um programa básico que trata a colisão entre objetos do Mundo Virtual e a câmera.

Aula 11: Projeto de um Protótipo
Esta aula irá apresentar o projeto de classes do protótipo a ser implementado nas aulas finais. O projeto apresentará a definição das classes, métodos e atributos necessários para implementar o protótipo final.

Aula 12: Implementação do Protótipo
Esta aula irá apresentar a implementação do protótipo de um FPS.

 

 

 

 

Método de Ensino

   Ao adquirir o curso, o aluno poderá acessar o material a partir de qualquer computador que tenha acesso à internet. Através do site, o aluno também encontrará a opção para fazer download dos arquivos utilizados e exemplos do curso.

;Exercícios:
O material contém exercícios desafio que deverão ser feitos pelo aluno de modo a reforçar o conteúdo apresentado.

Esclarecimento de Dúvidas:
Sempre que o aluno tiver dúvidas relacionadas ao material estudado, deverá enviar uma mensagem para o instrutor através de um fórum exclusivo para sua turma do curso, detalhando o problema encontrado. Ao enviar a mensagem, automaticamente o instrutor recebe uma notificação de seu pedido de suporte, e acessará o fórum para responder à sua dúvida. Através deste mesmo fórum, você também pode interagir com os demais alunos da sua turma ou de outras.

Atendimento Online:
O aluno encontrará uma agenda que exibe os dias e horários em que o instrutor estará online, e terá a opção de agendar um atendimento, através do qual poderá conversar de maneira exclusiva com o instrutor através de um chat.

 

O Curso

UDCO é um sistema de cursos on-line divididos em um determinado número de aulas, acompanhadas do texto, em formato de apostila, e quando necessários, códigos fonte de exemplos aplicando o que foi mostrado durante a aula.
Estas aulas serão disponibilizadas periodicamente, podendo durar de alguns dias a uma semana, dependendo do seu tamanho e grau de dificuldade.

;

Todas as dúvidas relacionadas ao curso "deverão" ser postadas no fórum do curso, uma vez que a dúvida de um aluno poderá ser a mesma de outro e, assim o instrutor do curso se encarregará de responder a todas as perguntas.  Todas elas ficarão gravadas no fórum, para que possam ser visualizadas por qualquer aluno sempre que preciso. O aluno que tiver dúvidas quanto ao funcionamento do Curso, deverão informar a UniDev através do Atendimento On-line (disponível no site) ou no e-mail

;

Ao final do curso o aluno:

  • Recebera um certificado para comprovar que o mesmo participou do curso.*
  • Um CD-ROM com todo o conteúdo do curso, exemplos e media em formato de apostilas eletrônicas.
  • Acesso vitalício (permanente) ao conteúdo do curso concluido. On-line através do nosso site.

Mesmo após a conclusão do curso todo o conteúdo permanece acessível, de forma que sempre que preciso, possam ser feitas consultas e re-leitura de qualquer uma das aulas ou dos assuntos abordados.

* O certificado não é reconhecido pelo MEC ou qualquer outra instituição governamental.

 

 

Equipe

Silvano Maneck Malfatti
Instrutor do curso e elaboração das aulas

;

 

Silvano é formado em Ciência da Computação pela Universidade Regional Integrada do Alto Uruguai e das Missões (URI, Campus de Santo Ângelo/RS.). Na área de jogos possui diversos cursos como:

- Curso de OpenGL pela Unidev.

- Curso de Guia do Iniciante na Programação de Jogos com C++ pela Unidev.

- Curso de Desenvolvimento de Jogos Eletrônicos ministrado pela empresa Nology Softwares.

Local:Pontifícia Universidade Católica do Rio Grande do Sul (PUC-RS).

Trabalhou como programador C++ e Java no desenvolvimento de jogos comerciais na empresa Zupple Games. Atualmente desenvolve atividades de pesquisa no Laboratório Nacional de Computação Científica (LNCC - RJ).

Participou de diversos projetos de desenvolvimento de aplicações com Java+Java 3D, dentre eles:

- Jogo Educacional AITEM (Ambiente Interativo Temático para o Ensino da Matemática)

; ;

; ;

- Logo3D - Uma versão tridimensional da linguagem Logo.

; ;

; ;

- J3DTOOL - Editor de cenários para Jogos em Java 3D

; ;

; ;

 

 

Luciane Machado Fraga
Elaboração e revisão das aulas

;

 

Luciane é formada em Ciência da Computação pela Universidade Regional Integrada do Alto Uruguai e das Missões (URI, Campus de Santo Ângelo/RS.).

Participou pela PUC-RS do Projeto RPGEDU, desenvolvendo atividades de game design e programação C++. Atualmente desenvolve atividades de pesquisa no Laboratório Nacional de Computação Científica (LNCC - RJ).

Participou de diversos projetos de pesquisa, dentre eles:

- Projeto AVEI: desenvolvimento de um Ambiente Virtual de Ensino Inteligente utilizando Java+Java 3D

; ;

; ;

- Projeto Electras: desenvolvimento de um Sistema de Simulação em Eletromagnetismo para fins didáticos utilizando C++ e OpenGL

; ;

; ;

 

 

Fernando Freitas Gil
Elaboração da Arte

;

 

Fernando é técnico em Publicidade e Propaganda pela Escola Técnica Irmão Pedro em Porto Alegre/RS. Desenvolveu ilustrações de histórias como “Menino e Menina”, “A Fuga” e “Direitos Iguais” para a Revista Mangá Sex, produzida pela Editora Xanadú. Participou na criação da arte de jogos comerciais desenvolvidos pela empresa Zupple Games.

 

ScreenShots

Abaixo imagens de algumas das aplicações desenvolvidas durante o curso.

Aplicações

 

;;;

;;;

;;;

;;;

;;;

;;;

 

 

Vídeos

  ;   ;  
 

Vídeo 1 - Execução do Jogo

 

Vídeo 2 - Interação com o Jogo