Postar esta pergunta aqui em vez de SO por causa de sua relevância no desenvolvimento de jogos.
Meu dilema é o seguinte: atualmente são minhas férias de verão após meu primeiro semestre de CompSci e aprendi C ++ suficiente para realmente começar um pouco mais avançado.
Eu não quero começar a programação de jogos até que eu me ensine álgebra linear, trigonometria, etc. No entanto, eu quero conhecer os fundamentos, a teoria e os métodos usados na programação de jogos!
Eu achava que tinha alguns livros decentes na biblioteca da faculdade, mas eles estavam terrivelmente desatualizados com livros sobre programação de jogos ou mecanismos de jogos ou jogo / gráfico (tópico aqui) do início dos anos 90 a 2002.
Conhecendo o estado volátil da tecnologia da computação, achei que pegar conhecimento sobre tecnologia de ponta de um livro de uma década não é uma boa idéia. A própria Amazon me deixa sem noção de qual livro eu quero.
O que eu não quero: um livro dependente da plataforma. Não estou interessado em aprender OpenGL, Direct3D ou qualquer API específica. Eu só quero saber coisas como mosaico, como a GPU lida com as coisas, o que acontece sob o capô e que tipo de métodos de rastreamento de raios e radiosidade existem. O básico, os principais conceitos - esses tipos de coisas.
Espero que esteja claro! Livros, recursos são todos bem-vindos. Embora eu prefira um livro a um site!
Respostas:
Estes não são de forma alguma "exaustivos" para jogos, mas são bons livros para computação gráfica em particular, então aqui está um começo.
Fundamentos de computação gráfica
Peter Shirley, Steve Marschner
Amazon Link (terceira edição) | Site do livro (segunda edição)
(fonte: images-amazon.com )
Este livro cobre uma tonelada de informações sobre muitas áreas da computação gráfica. São abordados conceitos "online" (como em tempo real) e "offline" (como iluminação global), além de matemática, sombreamento, pipeline de gráficos, texturas, estruturas de dados, teoria de luz e cor, conceitos de malha, etc. Definitivamente, não é voltado especificamente para jogos, mas para conceitos de computação gráfica em geral. O livro não está escrito em nenhuma linguagem de programação específica, mas na linguagem da matemática.
Renderização em tempo real
Tomas Akenine-Moller, Eric Haines, Naty Hoffman
Amazon Link (terceira edição) | Site do livro (terceira edição)
(fonte: images-amazon.com )
Este livro é voltado principalmente para métodos gráficos "online" (em tempo real). Ele abrange o pipeline de gráficos e matemática, sombreamento e textura relacionados, iluminação, efeitos de espaço na tela, NPR, malhas e curvas e algumas técnicas de aceleração. O capítulo sobre métodos de teste de interseção vale apenas o custo do livro, pois é uma referência fantástica para testar colisões entre praticamente qualquer tipo de volume delimitador que você queira usar. Ele discute os shaders, onde eles se encaixam no pipeline e para o que eles podem ser usados (o que é conhecimento essencial no trabalho gráfico moderno), mas você certamente não conseguiu aprender a programação do shader em qualquer idioma deste livro. É uma visão geral de alto nível das técnicas em tempo real, não um livro de programação. Mais uma vez, a linguagem usada neste livro é matemática.
Arquitetura do Game Engine
Jason Gregory
Amazon Link (primeira edição) | Site do livro (primeira edição)
(fonte: gameenginebook.com )
Eu adicionaria este livro à sua lista se você estiver interessado em gráficos especificamente relacionados a jogos. Gregory cobre grandes sistemas de mecanismos de jogos a partir de uma visão de 10.000 pés, ocasionalmente fornecendo exemplos de código em C ++ para ilustrar seus pontos, mas principalmente é uma visão geral do que são os principais subsistemas de mecanismos, como eles funcionam, como se encaixam e o que você precisa. deve pensar ao projetá-los / construí-los. São abordadas matemática 3D e uma atualização em C ++ (com foco específico na programação de jogos), além de gerenciadores de recursos, loops de simulação, dispositivos de entrada, técnicas de depuração, mecanismos de renderização e animação, colisões e dinâmica corporal rígida e sistemas de jogabilidade. Os únicos dois principais subsistemas de mecanismo que faltam neste livro são áudio e redes, o que é honesto em deixar de fora, porque o livro já está lançando mais de 800 páginas.
fonte
Se você estiver interessado em um passeio de ida e volta de tudo que é renderizado, a renderização em tempo real é sua melhor aposta.
Em termos de matemática, existem vários bons livros introdutórios, desde o mais suave 3D Math Primer para gráficos e desenvolvimento de jogos até o mais amplo de matemática para programação de jogos 3D e computação gráfica .
Eu também recomendo a Game Engine Architecture se você estiver interessado nessa rota; não é um livro aprofundado sobre o assunto (nem poderia ser), mas é uma base sólida em uma ampla gama de tópicos. Para um iniciante, considero inestimável.
fonte