Computação Gráfica: mudanças entre as edições
(→Informacoes gerais: salas lab inf) |
(→Tarefas: tarefa 3 e projetos) |
||
Linha 71: | Linha 71: | ||
*** Se preferir, grave um video do programa funcionando em cada um dos passos acima. Utilize um programa para gravar a tela, no linux [http://wiki.nosdigitais.teia.org.br/Screencast#Currently_Best_Screencasting_Workflow_from_LabMacambiras.sf.net]. Dessa forma voce sera dispensado da apresentacao. | *** Se preferir, grave um video do programa funcionando em cada um dos passos acima. Utilize um programa para gravar a tela, no linux [http://wiki.nosdigitais.teia.org.br/Screencast#Currently_Best_Screencasting_Workflow_from_LabMacambiras.sf.net]. Dessa forma voce sera dispensado da apresentacao. | ||
* Data de entrega: 29/Outubro '''--> adiado 1 semana para 5/Novembro''' | * Data de entrega: 29/Outubro '''--> adiado 1 semana para 5/Novembro''' | ||
== Tarefa 3: Splines, Animacao, e Efeitos 3D == | |||
* [Enunciado https://github.com/rfabbri/fabbri-graphics-course/blob/master/lab2/lab2-computer_graphics-fabbri-2013.pdf?raw=true] | |||
* ''Data de entrega:'' terca-feira 16/Nov/2013 ate a meia-noite. Atrasos serao aceitos, porem somente com reducao na nota. | |||
* Uma versao mais elaborada deste trabalho pode ser entregue opcionalmente como projeto final. Porem o basico de todos os itens devera ser entregue na data pois valera como nota de tarefa tambem. | |||
=== Projetos === | === Projetos === | ||
# Ideia '''default''': Gerar uma animacao de alguns minutos com alta qualidade. | |||
# Ideia: Propor um projeto de sua preferencia | |||
# Ideia: Melhorar algum projeto de iniciacao cientifica | |||
# Ideia: interatividade com superficies no Scilab, aplicado a processamento de dados de corrosao do prof. Ivan, de amplo interesse de entidades como a petrobras. | |||
== Criterio de Avaliacao == | == Criterio de Avaliacao == |
Edição das 10h45min de 8 de novembro de 2013
Esta é a pagina principal de um curso de computação gráfica ministrado em 2013/2 no IPRJ/UERJ, de utilidade geral para a formacao de programadores de nivel intermediario e avancado para desenvolvimento de software multimídia, videogames, interfaces gráficas, dentre outros.
Informacoes gerais
- Instrutor: prof. Ricardo Fabbri, Ph.D.
- Periodo: 2o. Semestre de 2013, voltado ao 10o. periodo de Engenharia da Computacao
- Tercas 4pm-6:45pm e Quartas 11:30am-2:10pm, sala 211; Lab Inf 309 Tercas e 307 Quartas
Pre-requisitos
O aluno deverá saber conceitos básicos de programação e conseguir aprender linguagens rapidamente sob demanda durante o curso. Experiência prévia com programação orientada a objetos desejável, bem como conhecimento de álgebra linear. A linguagem padrao utilizada sera o Python, sendo C/C++, java e outros tambem utilizados eventualmente.
- Tutorial de Python da Kitware e Google[1]
- Slides extremamente uteis para aprender python cientifico rapidamente
- Boa visao geral do Python cientifico, iPython, PyLab, NumPy, SciPy, Spyder
- Complementos ao final com processamento de imagens e processamento paralelo
- Baixe o arquivo tutorial_slides.pdf[2]
Conteudo aproximado
- Intro & Historia da CG
- Video do sketchpad, blender demo run 2013, etc.
- Toda aula iniciara com um video curto sobre CG.
- Modelagem e conceitos de computacao grafica no software Blender (tarefa 1)
- Programacao em Python usando a API do software Blender (tarefa 2)
- Game engine design & usage
- Transformacoes de objetos e sistemas de coordenadas (ate 2/Out/13)
- Matrizes de rotacaos
- Quaternions
- Coordenadas homogeneas
- Transformacoes de objetos e sistemas de coordenadas (ate 2/Out/13)
- See Van Dam book..
Recursos principais
- Grupo de discussao: uerj.tk
Bibliografia
- Biblia do Van Dam: "Computer Graphics: Principles and Practice", 3rd. edition, 2013.
Recursos adicionais
- Curso do Van Dam na Brown: http://cs.brown.edu/courses/cs123/
- Curso de Computacao Paralela do IPRJ: incluindo CUDA
- Curso de Álgebra Linear Numérica do IPRJ: muitos conceitos úteis para computação gráfica
- Curso de Visao Computacional do IPRJ: computacao grafica inversa, tecnologia do kinect, wii, PS3Eye, etc.
- Curso de Teoria dos Padroes do IPRJ: aprendizagem de maquina, tecnicas estocasticas, vertente importante de Visao Computacional
Provas
- P1:
- Pf/Sub:
Tarefas
Tarefa 1: intro ao blender - modelagem simples de um mascote do IPRJ
- Desenhar e modelar um mascote do IPRJ no blender usando apenas cubos e esferas simples
- Data de entrega: 1/Out/2013
Tarefa 2: Girando Câmeras em Python
Objetivo: Simular uma camera girando em torno de um objeto, usando a API Python do Blender. A rotacao deve ser em torno de um eixo arbitrario. Sugiro os seguintes passos
- Realizar a rotacao de um objeto simples (cubo) em torno da origem no plano x-y, tomando o eixo z como eixo de rotacao. Aprenda como rotacoes estao representadas no Blender.
- Realizar a rotacao de um objeto simples em torno de um centro e eixo arbitrario.
- Realizar agora a rotacao de uma camera em torno do eixo z no plano x-y em torno da origem. Aprenda como cameras sao representadas no Blender. Elas usam a regra da mao direita? E o eixo z aponta para a cena ou contra a cena (z negativo)?
- Realizar a rotacao de uma camera em torno de um eixo arbitrario. O usuario devera especificar o passo de rotacao em graus e o numero de passos no programa python, de preferencia em uma janela. Voce pode animar a camera ou entao simplesmente gerar varias copias da camera inicial.
- Renderize uma animacao com uma camera girando em torno de um objeto. Mostre a matriz de rotacao.
- Renderize a mesma animacao, agora com a camera fixa e o objeto girando no sentido contrario. Mostre a matriz de rotacao.
- Entrega do projeto:
- Programa com README explicando como foi feito e mostrando como ficou a geometria.
- Apresentacao: ha duas alternativas, apresentar em aula para todos, ou enviar um video para o professor gravando a tela do seu computador:
- Apresentacao de 10min.
- Se preferir, grave um video do programa funcionando em cada um dos passos acima. Utilize um programa para gravar a tela, no linux [3]. Dessa forma voce sera dispensado da apresentacao.
- Data de entrega: 29/Outubro --> adiado 1 semana para 5/Novembro
Tarefa 3: Splines, Animacao, e Efeitos 3D
- [Enunciado https://github.com/rfabbri/fabbri-graphics-course/blob/master/lab2/lab2-computer_graphics-fabbri-2013.pdf?raw=true]
- Data de entrega: terca-feira 16/Nov/2013 ate a meia-noite. Atrasos serao aceitos, porem somente com reducao na nota.
- Uma versao mais elaborada deste trabalho pode ser entregue opcionalmente como projeto final. Porem o basico de todos os itens devera ser entregue na data pois valera como nota de tarefa tambem.
Projetos
- Ideia default: Gerar uma animacao de alguns minutos com alta qualidade.
- Ideia: Propor um projeto de sua preferencia
- Ideia: Melhorar algum projeto de iniciacao cientifica
- Ideia: interatividade com superficies no Scilab, aplicado a processamento de dados de corrosao do prof. Ivan, de amplo interesse de entidades como a petrobras.
Criterio de Avaliacao
(under construction)
- Trabalhos: 70% da media