Sou engenheiro de software e espero mudar minha carreira para o desenvolvimento de jogos. Estou lendo um livro agora em 2D usando C ++ / DirectX. Quando entro em 3D, sei que quero fazê-lo corretamente. Por exemplo, não sei nada sobre o espaço 3D. Portanto, se eu aprender apenas uma API, talvez eu a conheça, mas não sei se posso desenvolver um mini mundo 3D interativo com ela. Eu não me consideraria bem-sucedido apenas por ter uma caixa rotativa com os shaders mais recentes, etc. Minhas habilidades de matemática são de álgebra linear / trigonométrica e ainda estão na faculdade. Eu sei que mais matemática está por vir. Devo ler os livros de teoria 3D antes de pegar no OpenGL / Direct3D ou com outras sugestões? Só sei que uma API não vai ensinar o desenvolvimento de jogos em 3D e não quer se perder depois. Sou muito orientada para livros, então tudo bem se houver sugestões lá também. Pensamentos são bem-vindos. Obrigado!
19
Comece fazendo. Dessa forma, você descobrirá o que não sabe.
Depois, pegue um bom livro sobre matemática 3D.
Eu recomendo '3D Math Primer for Graphics and Game Development'
de Fletcher Dunn e Ian Parberry. (Wordware)
Muito claro, direto ao ponto, relevante - com código C ++ e tudo.
É muito importante conhecer o básico de pontos, vetores, transformações etc.
Mas isso não significa que você deva estudar tudo antes de mergulhar. :)
fonte
Tomei uma aula de Introdução à Computação Gráfica na faculdade (há 1 ou 2 anos) e o site do curso ainda está ativo. Ainda há muitos slides do PowerPoint que você pode achar úteis e úteis. Os tópicos abrangem a teoria de gráficos 2D e 3D.
fonte
Estou em um barco semelhante a você (embora eu esteja tecnicamente reaprendendo coisas que eu sabia vagamente na faculdade), e minha solução foi verificar vários dos livros mencionados na pergunta " Bons livros de teoria da matemática 3D " aqui. Se você é um aluno de livros, pode ser um bom caminho a seguir. Especialmente se a sua faculdade não tiver um bom curso de gráficos 3D (o meu não).
fonte
Hummm, quando eu tive que fazer meu primeiro jogo em 3D há 15 anos (tinha que ser como meu trabalho, isso ajuda a perseverar), eu não tinha nenhum conhecimento em 3D além da matemática do ensino médio. Se você gosta de resolver quebra-cabeças e ler, pode raciocinar a maior parte disso sozinho e com alguma ajuda da Internet (comp.graphics.algorithms faq). Eu li as Bíblias do openGL e http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406(aviso oldskool), pois fornecem informações de plano de fundo válidas. Se você fizer isso dessa maneira, poderá começar da maneira errada, mas em um momento poderá sonhar ou encontrar uma solução melhor. A maioria dos problemas em 3D pode ser resolvida se a sua compreensão 2D for boa. Adicione ao trigonométrico geral, pitágoras, matrizes e inversa / transponha (para projeção), produto pontilhado e cruzado e o que você usa para eles, quaternions (não precisa entendê-los, apenas saiba como usá-los - você pode ficar sem, mas eles hoje em dia fazem parte do vocabulário básico) e é possível resolver a maioria dos problemas encontrados. À medida que avança, você se depara com maneiras melhores, mas esses poucos podem resolver qualquer coisa. A melhor maneira é estabelecer uma meta fora do seu alcance e forçar-se a chegar lá. Os problemas que você encontra são o que você precisa aprender e, ei, você '
fonte
O blog Wolfire Games teve uma série realmente excelente de tutoriais em álgebra linear para desenvolvedores de jogos recentemente.
É realmente importante entender a matemática por trás disso antes de começar a aprender uma API. Caso contrário, a ordem e o objetivo das chamadas da API não farão muito sentido para você. Você precisa entender o que eles estão fazendo por você primeiro no nível de matemática.
fonte
Eu sugiro que você se inscreva no Game Institute , especificamente nos cursos de Programação Gráfica com DirectX 9.
Você não precisa participar das aulas interativas se quiser apenas aprender sozinho.
A propósito, existe a opção de obter também livros impressos por um valor adicional muito baixo. Eles valem bem a pena.
Eu fiz muitos dos cursos deles há alguns anos e os cursos, embora um pouco de skool velho seja realmente muito bom e eu não possa recomendá-los o suficiente - além de Gary Simmons é um cara muito legal.
fonte
Acima de tudo, apenas tente fazer coisas. Primeiro e acima de tudo, salte. Caso contrário, você se tornará um especialista em teoria, mas não em prática.
Se você acha que é realmente apaixonado por gráficos, imagine que continuará aprendendo novos materiais a maior parte de sua vida. Não é como se você pudesse aprender tudo o que precisa antes de começar. Simplesmente não funciona assim.
À medida que você aprende mais e mais sobre a matemática dos gráficos 3D, você perceberá que não há matemática em computação gráfica, apenas matemática. Aprenda a aprender matemática sozinho . Então você será capaz de digerir novas técnicas, conforme apresentadas na literatura.
À medida que as tecnologias gráficas evoluem, emprestamos diferentes técnicas matemáticas. O que é popular hoje pode não ser popular amanhã.
Aqui estão algumas coisas que permanecerão iguais.
No momento, estou achando o material em Álgebra Geométrica para Ciência da Computação muito interessante e acho que talvez seja melhor começar com a abordagem que eles fazem para a computação gráfica. http://www.amazon.com/Geometric-Algebra-Computer-Science-Object-Oriented/dp/0123694655
O livro explica coisas como quaternions de uma maneira muito mais simples e pode ser útil para você, dependendo de seus conhecimentos e conhecimentos matemáticos.
fonte
Não vá para livros de "computação gráfica". Comece com álgebra linear - estabelece as bases para tudo o que você precisa. O MIT tem um bom curso em vídeo: http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2005/
A partir daí, deve ser fácil pegar qualquer texto introdutório em computação gráfica. UoWashington tem um curso on-line (sem vídeo): http://www.cs.washington.edu/education/courses/457/06au/lectures/
Se você está impaciente, pode começar com o curso de gráficos sem álgebra linear, mas acredite em mim quando digo que ele voltará para morder você :)
fonte
Se você quiser entender como funciona um pipeline de renderização de software tradicional (e as coisas não mudaram muito, mesmo com a introdução de pipelines de hardware programáveis), um livro que eu recomendaria definitivamente seria o de Jim Blinn: A Trip Down The Graphics Pipeline.
Ao contrário de algumas das outras sugestões, não é particularmente abrangente, mas é muito legível e acho que se você está apenas começando com o 3D, é uma boa introdução. E foi escrito por Jim Blinn, que é um dos pais fundadores da computação gráfica e, portanto, é escrito da perspectiva de alguém que realmente inventou / descobriu essas técnicas.
fonte
Eu fui o TA do curso de gráficos na minha universidade por vários anos. Eu defini o plano de estudos e cobri coisas como rasterizações e sombreamento de software, Java3D, OpenGL etc. Depois de algum tempo, decidi escrever um traçador de raios para minha própria edificação. Foi uma experiência incrível - com um buffer de quadro e uma rotina putpixel (x, y, cor), em 500 linhas eu tinha código para gerar uma imagem com esferas, triângulos, sombreamento por pixel, sombras etc. refazer as práticas dos cursos, eu insistiria que os alunos fizessem um traçador de raios. É muito fácil se envolver com os detalhes de um algoritmo da linha de varredura ao criar um rasterizador ou sentir como se estivesse trabalhando em uma caixa preta usando uma API 3D.
Para acesso rápido e sólido a uma caixa de areia gráfica, recomendo que você escreva seu próprio traçador de raios. Obviamente, isso está muito longe do que é comumente usado na produção de gráficos 3D em tempo real, mas é uma maneira muito intuitiva e compacta de ver e aprender a teoria.
fonte
Atualmente, estou fazendo o mesmo que você e achei o CSCI 234 Introdução à computação gráfica no iTunesU realmente útil depois de ler alguns livros sobre computação gráfica e matemática.
fonte