Curso de WebGL
LCG/UFRJ
DCC/IM

Acessos a esta página desde 15/10/2015: Page Visit Counter

Índice


Por que Implementar em WebGL

Neste curso, serão ensinadas as técnicas para desenvolvimento de aplicações gráficas tri-dimensionais, interativas, usando WebGL. Desta forma, é possível embutí-las em páginas HTML, que poderão ser interpretadas por qualquer navegador (Web browser) moderno. WebGL (Web Graphics Library) é uma API JavaScript para exibição interativa de gráficos 2D e 3D dentro de qualquer navegador compatível e sem o uso de plug-ins. WebGL está completamente integrado em todos os padrões de navegadores, permitindo o uso da aceleração em GPU, para desenhar em um canvas de uma página Web, para aplicação em simulações físicas, processamento de imagens, jogos e efeitos gráficos em geral.

Os elementos de WebGL podem ser combinados com outros elementos HTML e compostos com diferentes partes da página Web ou do seu fundo. Programas WebGL consistem de código escrito em JavaScript e código para shader, que é executado em uma Unidade de Processamento Gráfico (GPU). WebGL foi projetado e é mantido pelo grupo, sem fins lucrativos, Khronos.


Módulos Disponíveis

O curso de CG está dividido em vinte e dois módulos, podendo ser estendido, caso haja uma maior disponibilidade de tempo. Os módulos estão disponíveis no formato .pdf e .pptx

O curso de WebGL está dividido em dez módulos, podendo ser estendido, caso haja uma maior disponibilidade de tempo. Os módulos estão disponíveis no formato .pdf.


JavaScript

JavaScript é uma linguagem de programação de alto nível, dinâmica, não tipada, e interpretada. Juntamente com HTML e CSS, é uma das três tecnologias essenciais para a produção de conteúdo para a World Wide Web; a vasta maioria dos websites a emprega e ela é suportada por todos os browsers modernos sem o uso de plug-ins.

JavaScript é prototipada com funções de primeira classe, tornando-a uma linguagem multi-paradigma, que suporta os estilos de programação orientado a objeto, imperativo, ou funcional. Sua API permite utilizar textos, arrays, datas e expressões regulares, mas não inclui qualquer tipo de I/O, mecanismos de rede, armazenamento ou facilidades gráficas, contando para isso com o ambiente de programação na qual está mergulhada.


Links Úteis

  1. three.js
  2. Getting Started with three.js
  3. Learning Three.js or WebGL for Dummies
  4. Mr. doob

  5. Check WebGL Support
  6. WebGL Fundamentals
  7. Learning WebGL
  8. glMatrix

  9. Coursera
  10. CodePen
  11. Humus Textures
  12. TurboSquid
  13. What math should all game programmers know?

  14. JavaScript Tutorial
  15. JavaScript Coder
  16. JavaScript Brasil
  17. Animating with javascript

  18. Angel's Book Code (7th edition)
  19. Tony Parisi's WebGL Book Code
  20. Build New Games

  21. Anton's OpenGL 4 Tutorials
  22. OpenGl Guide
  23. LCG - Introdução à Computação Gráfica
  24. Texas CG Course
  25. Image manipulation and processing using Numpy and Scipy
  26. Transforming Normals
  27. Cube Maps: Sky Boxes and Environment Mapping
  28. Skybox and Reflection

  29. unity (Windows and Mac)
  30. MonoGame (Windows, Ubuntu, and Mac)
  31. UnReal (Windows and Mac)

  32. Interactive Computer Graphics - Library
  33. Teal Book (WebGL Programming Guide) - Library
  34. Videos

Exemplos

Por tópicos:


Laboratórios

Todos os programas foram escritos em ambiente Fedora 22 e Mac OS El Capitan.


Livros

  1. Inglês:
    1. Interactive Computer Graphics: A Top-Down Approach with WebGL
    2. WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL
    3. Fundamentals of Computer Graphics (4th Edition) (*)
    4. Computer Graphics: Principles and Practice (3rd Edition)
    5. Foundations of 3D Computer Graphics
    6. Mathematics for 3D Game Programming and Computer Graphics
    7. 3D Computer Graphics: A mathematical approach with OpenGL
    8. Real-Time Rendering Resources
    9. WebGL: Up and Running
    10. WebGL Academy (on line)
    11. Game Programming (on line)
    12. Computer Graphics (*) (on line)
    13. JavaScrip: The Good Parts
    14. Schaum's outLines Computer Graphics (on line)

  2. Português:
    1. Introdução à Computação Gráfica (*)

Instalação

Tudo o que é necessário é um browser moderno: Safari, Firefox, Chrome ou IE.


Hardware para Desenvolvimento

Na prática, não é necessário nenhum hardware específico:


Pré-requisitos para Assistir o Curso


Turmas do Prof. Paulo Roma

Para aqueles matriculados no curso de Computação Gráfica I (MAB122) ou Tópicos Especiais em Computação Gráfica (MAB604), por favor inscrevam-se no curso:

  1. MAB122,
  2. MAB604.

As notas podem ser consultadas aqui:

  1. Login (MAB122),
  2. Login (MAB604)

Datas de provas e trabalhos, e a sala de aula, podem ser obtidas aqui.