Ponto V!

Home Arquitetura Programação Roadmap – Computação Gráfica
Thiago Dias Pastor
Roadmap – Computação GráficaImprimir
Escrito por Thiago Dias Pastor

Dando uma pausa na série sobre shaders, neste post irei compartilhar com o pessoal os livros sobre computação gráfica e programação de jogos que eu mais uso ou usei.

Gostaria que este artigo fosse algo “vivo”, qualquer pessoa que conheça outros livros e queira compartilhar, mande-me uma pequena descrição conforme o layout dos aqui mostrados.

Me focarei apenas em Computação gráfica, Apis Gráficas, Shaders, que são os tópicos que eu tenho mais familiaridade.

Computação Gráfica

Computer Graphics Using OpenGL (3rd Edition), by Francis S. Hill, Jr., Prentice Hall, December 2006.

Este foi o primeiro livro que eu usei para aprender computação gráfica. A didática é sensacional principalmente para iniciantes. O livro começa com um resumo sobre a matemática necessária, depois fala sobre transformações 3D, texturas, curvas, iluminação, modelos 3D, (ele define e usa uma “linguagem” para criar cenas chamada Scene Design Language SDL – não confundir com API Gráfica SDL para C) ...

Infelizmente tópicos mais recentes como uso de shaders e pipeline programável não são explicados nem comentados.

Vale ressaltar que o livro não é uma referencia para Opengl, o autor explica somente o necessário tendo o foco na computação gráfica e não nesta tecnologia em específico.

Um ponto bastante legal são os estudos de caso que são apresentados no fim de cada capítulo.

Interactive Computer Graphics: A Top-Down Approach Using OpenGL (5th Edition) , by Edward Angel, Addison-Wesley, 2008.

Em termos de conteúdo o livro é bastante semelhante ao anterior, porém a abordagem é um pouco diferente. O autor começa no auto-nível e vai descendo gradualmente. Eu nunca li a quinta edição (mostrada na foto), acompanhei a anterior e gostei bastante. Sempre que possível o autor tenta explicar conceitos mostrando código fonte (e isso facilita absurdamente a compreensão).

A versão que eu li não tinha nada sobre shaders, porém eu vi que esta nova contém alguns capítulos sobre o assunto.

O grande destaque do livro é a ênfase que o autor dá em forçar o pessoal a realmente colocar a mão na massa, codificar, criar aplicativos ...

Principles of Digital Image Synthesis (The Morgan Kaufmann Series in Computer Graphics) 2 Volume Set , by Andrew S. Glassner, Morgan Kaufmann, 1995:

[FREE] http://realtimerendering.com/Principles_of_Digital_Image_Synthesis_v1.0.1.pdf

Livro bastante antigo, porém sensacional. Voltado a profissionais e estudantes que pretendem entender a computação gráfica no mais baixo nível possível (não é recomendável para iniciantes). O livro é divido em duas partes:

A primeira é uma grande revisão de matemática, sendo abordados conceitos de:

  • Calculo Diferencial e Integral (com demonstrações e tudo mais)
  • Sistemas e Sinais (Convolucao,Analise de Fourier, Wavelets,Auto-valor, Auto-Vetor,filtragem, ...)
  • Olho Humano (abordagem fisiológica mesmo =P)
  • Sistemas de cor ...

· A Segunda é mais voltada a Computação Gráfica, os principais tópicos abordados são:

  • Natureza da Luz (abordagem bastante física, com conceitos de luminancia, radiancia ...)
  • Sistemas de Iluminação (ele começa do olho humano e chega até sistemas como Phong, justificando TODAS as passagens)
  • Antialiasing (Discusão profunda e detalhadas das diversas formas de aliasing)

Considero este o melhor livro conceitual de Computação gráfica, se eu um dia conseguir entender uns 70% do que está escrito nele eu me considero satisfeito (têm alguns capítulos que eu já li umas 5 vezes e ....).

O autor é extremamente detalhista e preocupado em justificar tudo o que faz (sacrificando um pouco a didática). Ideal para quem quer criar efeitos especiais novos (olhar a natureza e imitá-la =P).

Recomendo fortemente, mas apenas para aqueles que realmente gostam de matemática e já conhecem um pouco do assunto.

DirectX 10

Introduction to 3D Game Programming with DirectX 10 , by Frank D. Luna, Jones & Bartlett, October 2008.

Gostaria de citar um livro de DirectX 11, existem muito poucos (acho que apenas um até agora) e eu nunca li ele.

Nunca usei DirectX 9, meu primeiro contato com a tecnologia DirectX foi através deste livro. O autor começa com a clássica revisão dos conceitos matemáticos de álgebra linear e computação gráfica, em seguida ele explica os conceitos básicos de DirectX/Windows API e finalmente vai para os tópicos mais avançados.

Me surpreendi com a gama de conceitos explicados, existem capítulos que falam de praticamente todas as técnicas básicas como Iluminação Phong, Normal Mapping, Specular Mapping, Shadow, Terrain e ate um sistema de partículas (com geometric shader e tudo mais =P) ... Como em DirectX 10 não temos mais a Pipeline fixa, o livro foca-se apenas nos shaders.

Eu senti um pouco de falta de um tópico sobre Text Rendering e sobre a API de Som do DirectX, porém o resto compensa. Altamente recomendado, mesmo para aqueles que não usam DirectX.

Vale ressaltar que o livro assume que o leitor já sabe programar, não há nenhuma explicação dos conceitos de C e C++.

Advanced 3D Game Programming with DirectX 10.0 (Wordware Game and Graphics Library) , by Peter Walsh, Jones & Bartlett, January 2008.

Apesar do nome Advanced, ele não contém nada muito avançado. (na verdade contem menos tópicos sobre efeitos gráficos do que o livro anterior).

O interessante deste livro é a grande quantidade de tópicos abordados (que o anterior não aborda). Assuntos como Networking, Som, Animacão por ossos, organização de cenas são tratados com profundidade. (alguns tópicos não diretamente aplicados em jogos são discutidos como radiosity e subdivisão de superfícies).

Acredito que os dois livros mostrados são bastante complementares, sugiro que o pessoal interessado em aprender DirectX leia os dois =P.

Opengl

Não irei comentar os livros abaixo individualmente, pois eles são as referencias absolutas no assunto. O RedBook, BlueBook e o Orange Book(como eles são “carinhosamente” chamados) são bastante complementares entre si, sendo que os dois primeiros focam mais no pipeline fixo e o OrangeBook foca na linguagem de Shaders.

Vale frisar que estes livros não são de computação gráfica (apesar de falarem um pouco sobre o assunto). Eu programei pouco em Opengl (se comparar com DirectX) e sempre que tive duvidas me recorri a eles.

OpenGL SuperBible: Comprehensive Tutorial and Reference (5th Edition) , by Richard S. Wright Jr., Benjamin Lipchak, Addison-Wesley, A

The OpenGL Programming Guide - The Redbook

OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL(R), Version 2 (5th Edition)

OpenGL(R) Shading Language (2nd Edition)

OpenGL Shading Language (3rd Edition)

Matemática

Geometric Tools for Computer Graphics (The Morgan Kaufmann Series in Computer Graphics) , by Philip Schneider and David Eberly, Morgan Kaufmann, 2002.

Eu pouco usei livros específicos de Matemática focados em Computação Gráfica quando aprendi os conceitos matemáticos e não tenho muitos livros para indicar, porém este me chamou muita atenção (tenho e uso muito como referência).

Gostei muito da simplicidade do autor e da maneira como ele transmite assuntos que são naturalmente difíceis de uma maneira agradável e clara.

Os livros de Matemática (como este) e de Computação gráfica (os do início) contém muitos capítulos semelhantes, porém sempre recomendo que o pessoal leia pelo menos um que tenha um foco exclusivamente matemático. (tópicos como interseção de primitivas e métodos numéricos de resolução de problemas só são abordados em livros com foco matemático).

Dependendo do objetivo do desenvolvedor, um livro específico de matemática (como este)não é necessário. Recomendo mais para aqueles que querem construir sistemas de detecção de colisão, bolar algoritmos de organização espacial ...

Shaders Livros

Programming Vertex, Geometry, and Pixel Shaders, Second Edition

clip_image017

[FREE] http://wiki.gamedev.net/index.php/D3DBook:Book_Cover

Este não é específico de shaders, porém não sabia aonde colocá-lo e acabei deixando aqui =P. Apesar de ser um livro, a linguagem é bastante cotidiana e simples.

Os autores focam bastante em técnicas especificas e em alguns momentos vejo que o livro peca em coesão, parece que o pessoal não cria uma linha de pensamento e segue-a do inicio ao fim, sinto que às vezes alguns conceitos são “jogados” para o leitor. (em alguns momentos eles são extremamente específicos, em outros completamente superficiais , sem critério prévio)

Um ponto alto do livro são os modelos de iluminação abordados (normalmente os livros focam em Blin-Phong e Gourand, este vai além e discute modelos como Cook-Torrance, Ward ...)

Em resumo, não é um livro que eu compraria, porém ele é de graça =P, e descreve diversas técnicas que eu nunca encontrei em livro algum, por isso que eu recomendo =P.

Série GPU GEMS:

Os livros a seguir são coleções de artigos agrupados. Alguns estão na forma de tutorial, porém a maioria é bastante técnica e exige bastante conhecimento prévio de computação gráfica, matemática e shaders para acompanhá-los.

Usei muito o GPU GEMS 3, algumas das idéias implementadas na PloobsEngine foram retirados de lá =P.

O ultimo livro saiu já faz alguns anos (são todos de graça e podem ser baixados no site da NVidia – links abaixo), então não espere encontrar efeitos vistos em jogos AAA muito recentes.

Os autores dos artigos são variados e incluem Nvidia, Intel e Crytek .

Para programadores de shaders e efeitos visuais, esta série é um MUST HAVE.

GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics

[FREE] http://http.developer.nvidia.com/GPUGems/gpugems_part01.html

GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation

[FREE] http://developer.nvidia.com/node/17

GPU Gems 3

[FREE] http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.html

Série ShaderX:

Outra série sobre shaders bastante semelhante à anterior em termos de conteúdo e complexidade. Também um MUST HAVE.

Os três primeiros livros da serie foram liberados gratuitamente, porém outros (do 3 ao 7) ainda não (e são bastante caros ...).

Utilizei alguns destes livros na PloobsEngine, principalmente para implementar o SSAO e o Deferred Shading.

Vale ressaltar que os autores dos artigos estão bastante envolvidos com a indústria de jogos, as técnicas mostradas DE FATO são usadas nos jogos AAA que vemos no mercado.

Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks with CDROM

[FREE] http://tog.acm.org/resources/shaderx/Direct3D.ShaderX.Vertex.and.Pixel.Shader.Tips.and.Tricks_Wolfgang.F.Engel_Wordware.Pub_2002.pdf

ShaderX2: Introductions and Tutorials with DirectX 9.0

[FREE] http://tog.acm.org/resources/shaderx/Introductions_and_Tutorials_with_DirectX_9.pdf

ShaderX2: Shader Programming Tips and Tricks with DirectX 9.0

[FREE] http://tog.acm.org/resources/shaderx/Tips_and_Tricks_with_DirectX_9.pdf

Série Gpu Pro

Segue a mesma linha dos anteriores (conjunto de artigos agrupados).

Tive acesso apenas ao primeiro volume e ele é simplesmente excepcional (confesso que não entendi muita coisa, mas o que entendi gostei muito =P).

Estes livros são MUITO recentes, existem técnicas que ainda nem foram utilizadas em jogos ainda.

Algo que me frustra um pouco é que os autores usam tecnologia de ponta (DirectX 11, Shader Model 5), e eu ultimamente estou programando em XNA que não tem acesso a estas funcionalidades da GPU (maldito XBOX =P)

Novamente, é um MUST HAVE. (prepare-se, são caros pra caramba =P)

GPU Pro: Advanced Rendering Techniques

GPU Pro 2

Engine Programming

Game Engine Architecture

Nunca encontrei um livro bom e recente (gostava do Wild Magic 4, só que ele só usava tecnologias do século passado, não muito útil hoje em dia) que ensina a “fazer” uma Game Engine do zero. Este é o melhor na minha opinião.

Não espere encontrar bastante código fonte, algoritmos especiais, tópicos de otimização ..., não é essa a idéia, o autor tenta focar nos requisitos e na arquitetura do sistema. O livro é bastante alto nível e extremamente didático (não aborda tecnologias especificas).

Não vai ser este livro que vai te ensinar a fazer uma engine, porém ele vai te mostrar como organizar uma. Recomendo, principalmente para iniciantes.

Game Programming Gems

Série bastante clássica sobre programação de jogos. Cada livro contém uma artigos separados em áreas como Física, Som, Gráficos, Networking, Inteligência Artificial ... (ao contrário das series anteriores que focam na parte gráfica)

É a maneira mais simples de ficar antenado com tudo o que esta acontecendo no mundo dos desenvolvedores de jogos.

Para aqueles cujo foco não é efeitos especiais, recomendo fortemente essa série (mesmo os livros mais antigos dela). Os requisitos em termos de matemática e computação gráfica são bem mais amenos do que as series anteriores, estes livros são muito mais acessíveis.

Usei bastante o livro 4 da serie (nunca li nenhum acima do 5), achei sensacional =P. Nenhum é free, os mais antigos são mais baratos. Vale a pena comprar.

Finalizando

Conforme disse no inicio, gostaria que o pessoal colaborasse e mandasse referências adicionais sobre assuntos não abordados.

Fiz uma lista semelhante no blog ploobs, porém sem meus comentários e focado mais em Websites e blogs. Sugiro que o pessoal dê uma olhada.


Comentários (17)
  • Washington
    avatar

    Obrigado por esse conteúdo,mas tipo fui ler o livro GPU GEMS 1 e tinha calculos logo no segundo capitulo Rendering Water,Onde acho um livro que explique a metematica nos jogos.
    Os livros estão em ordem de prioridade? Os mais importantes primeiros?

  • Thiago Dias Pastor
    avatar

    ola,
    Os livros estao separados por assunto, e dentro de cada assunto eles estao separados por prioridade.
    Os livros da parte de shaders tendem a ser mais pesados na parte matematica, sugiro que voce leia pelo menos um livro de computacao grafica e um de matematica para jogos para acompanha-los.
    A serie GPU GEMS é uma "colecao de artigos", ela nao foi editada para ser lida sequencialmente, pode acontecer de voce encontar uma artigo bastante complexo logo no comeco.

  • gokernel
    avatar

    Opa curti!, principalmente pelos links dos E-Books livres.

    Gokernel.


  • Washington  - Amazon
    avatar

    Esse Amazon.com você ja comprou livro lá e como se trata de um site americano temos que pagar a taxa de importação né?

  • Vinícius Godoy de Mendonça
    avatar

    Não precisa. Livros são isentos de taxas de importação. A única coisa que você precisa pagar é o frete. Mas frequentemente os livros importados saem mais baratos lá com frete, do que comprados aqui em sua versão traduzida.

  • Washington
    avatar

    Se eu ler esse livro: Computer Graphics Using OpenGL (3rd Edition) estarei apto a fazer calculos sobre shaders ou você devo usar outro livro?

  • Vinícius Godoy de Mendonça
    avatar

    Não. Como o Thiago mesmo já citou na própria descrição do livro:
    "Infelizmente tópicos mais recentes como uso de shaders e pipeline programável não são explicados nem comentados."

    Procure ler os livros de DirectX 10, pois eles explicam bastante sobre Shaders. E a série Shader X, claro. Mas você precisa estar afiado na álgebra vetorial e na computação gráfica em si, se não for seu caso, procure algum livro de matemática para te ajudar, como o Geometric Tools ou o 3D Math Primer.

  • Thiago Dias Pastor
    avatar

    concordo plenamente com a resposta do Vinicius =P

  • otavio
    avatar

    eu gosto muito de 3d principalmente pa criação de carros casas e montegens com videos e computação grafica tem de tudo um poco mas eu sou pessimo em matematica se iver q usar muito a matematica de raciocinio puts para mim é foda

  • Vinícius Godoy de Mendonça
    avatar

    Se quiser programar em 3D, sim, vai ser necessário uma boa dose de matemática.

    Mas você pode trabalhar como modelador ou artista, e deixar que os programadores de plantão façam o resto do serviço.

  • Washington
    avatar

    Eu sei que os livros De computação gráfica são os quais você leu,mas não teria um mais barato não?
    Computer Graphics Using OpenGL (3rd Edition)
    109 dólares

    Interactive Computer Graphics: A Top-Down Approach Using OpenGL (5th Edition)
    111 dólares

    estou sem dinheiro por enquanto

  • Vinícius Godoy de Mendonça
    avatar

    Os bons livros técnicos realmente são caros.

    Você tem algumas opções:
    a) A Amazon vende livros usados. Eles vem em boas condições, eu já comprei. Muitas vezes são vendidos por 1/5 do valor do livro original.
    b) Procure ver se é possível comprar edições anteriores à última. Muitas edições são praticamente cópias das anteriores, sendo que as anteriores são muito mais baratas;
    c) Procure por bons tutoriais na internet, como os do Ponto V!. Você chegou a ver que temos uma sessão de OpenGL?
    d) Se nada disso funcionar, junte a grana. Não dá para ganhar todas.

  • Bruno Crivelari Sanches
    avatar

    Esses livros em questão tem usados pela metade do preço. Eu tenho vários usados comprados da amazon e tenho vários na wish list que fico só esperando uma promoção ou aparecer um usado num bom preço.

    Andei comprando livros lá que custaram 2 dólares, o frete saiu muito mais caro que o livro :).

  • washington
    avatar

    Alguem que ja comprou no amazon pode me ajudar.
    Ja tentei comprar os livros umas 5 vezes e com dois cartões diferentes o problema é esse.

    Important Message
    Before we can proceed with your order, your credit card's issuing bank requires you to do one of the following:
    * Update the expiration date on the credit card you entered.
    * Choose an alternate credit card from your account.
    * Enter a new credit card number.
    Click Retry or edit credit card to continue.

    Diz data de validade,mas o cartão tem validade até 2014

  • Vinícius Godoy de Mendonça
    avatar

    Tem certeza que seu cartão é internacional?

  • Bruno Crivelari Sanches
    avatar

    O nome do dono do cartão tem que estar exatamente igual ao nome impresso no cartão e o endereço do cartão tem que ser exatamente igual ao endereço da fatura do mesmo, senão não processa.

    T+

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter