Sobre

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.

Ao final do curso o aluno:cd-rom

  • 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.

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.

Conteúdo

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 um 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.

Mais de 50 exemplos de códigos completos e totalmente funcionais. Imagens 2D de personagens e cenários. desenvolvidos por artistas profissionais. Código completo de pelo menos 3 protótipos

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 com o instrutor através de um chat.

A Grade

Aula 1: Introdução a Programação Java e a Java3D

  • Histórico
  • Instalando e Configurando o Compilador Java/Java 3D.
  • Estrutura de um Programa Java 3D.
  • Criação de uma Aplicação FullScreen utilizando Java+Java3D

Aula 2: Conhecendo os Objetos de Cena do Java 3D

  • Conhecendo os bjetos que definem a câmera
  • Conhecendo os objetos que definem o cenário
  • Implementando múltiplas visões de câmera
  • Modificando o cenário em tempo real

Aula 3: Primitivas e Cores

  • A classe ColorCube
  • Conhecendo as primitivas do Java 3D
  • Trabalhando com pontos, linhas, triângulos e quadriláteros
  • Configurando a aparência dos objetos no Mundo Virtual
  • Implementação de exemplos

Aula 4: Transformações Geométricas

  • Conceitos básicos de translação, rotação, escala e matrizes
  • Realizando uma Translação em Java 3D
  • Realizando uma Rotação em Java 3D
  • Realizando uma Escala em Java 3D
  • Multiplicação de matrizes
  • Criando suas Próprias matrizes
  • Implementação de exemplos

Aula 5: Animações e Interação com Dispositivos de Entrada

  • Conhecendo as animações pré-definidas do Java 3D
  • Implementação de Exemplos
  • Interação com Teclado
  • Interação com Mouse
  • Interação com Joystick
  • Implementação de exemplos
Aula 6: Trabalhando com Imagens
  • Preparação e carregamento imagens
  • Repetição e quebra de texturas
  • Utilizando imagens como textura
  • Configurando texturas com transparência
  • Desenvolvendo a Interface com o Usuário através de imagens
  • Implementação de exemplos

Aula 7: Luzes

  • Conhecendo os tipos de luzes em Java 3D
  • Luz ambiente
  • Luz direcional
  • Luz pontual
  • Luz focal
  • Implementação de exemplos
Aula 8: Adicionando Sons ao Universo do Java 3D
  • Conhecendo os recursos de Som do Java 3D.
  • Definindo um dispositivo de audio
  • Conhecendo os tipos de Som
  • Carregando um arquivo de audio
  • Implementação de exemplos
Aula 9: Importando Modelos 3D para o Universo Virtual
  • Conhecendo alguns tipos de Loaders
  • Importando objetos externos para o Universo Virtual do Java 3D (.wrl, .obj, .3ds)
  • Implementação de exemplos
Aula 10: Implementando Colisões
  • Conhecendo métodos para o tratamento de colisão objetos x câmera
  • Utilizando comportamentos na detecção de colisões
  • Implementando o tratamento de colisão através da técnica Bounding-Sphere
  • Implementando o tratamento de colisão através da técnica Bounding-Box
  • Implementação de programas exemplo para tratamento de colisão
Aula 11: Projeto de Protótipo
  • Apresentação das Classes, Métodos e Atributos a serem utilizados na implementação do protótipo
Aula 12: Implementação do Protótipo
  • Implementação do protótipo de um FPS

Equipe

SilvanoSilvano é 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).

    Possui certificação para programador Java emitido pela Sun (SCJP) e mestrado em Sistemas e Computação pelo Instituto Militar de Engenharia (IME).

    Trabalhou como programador C++ e Java no desenvolvimento de jogos comerciais na empresa Zupple Games. Desenvolveu 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, jogos multiplayer controlados por celular, jogos controlados pelo Wiiremote. Atualmente coordena o grupo de pesquisa NTIGames, destinado ao estudo e desenvolvimento de jogos eletrônicos. As figuras a seguir demonstram alguns dos trabalhos realizados pelo instrutor na área de jogos e computação gráfica.

     

    SilvanoLuciane 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 e Projeto Electras: desenvolvimento de um Sistema de Simulação em Eletromagnetismo para fins didáticos utilizando C++ e OpenGL

     

    SilvanoFernando 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.

     

     

     

     

     

    Screen Shots

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

     

    img

    img

    img

    img

    img

    img

    img

    udco

  •