Estou usando o OpenGL para aprender computação gráfica. Estou tentando entender matrizes de projeção. O seguinte é mostrado no 'Red Book' do OpenGL:
Não entendo por que a largura e a altura são divididas por 2?
fonte
Estou usando o OpenGL para aprender computação gráfica. Estou tentando entender matrizes de projeção. O seguinte é mostrado no 'Red Book' do OpenGL:
Não entendo por que a largura e a altura são divididas por 2?
Como não varia de , varia de .
O importante não é a largura, mas os valores mínimo e máximo de . Como está no centro da janela de exibição, não no canto, os valores mínimo e máximo são mais e menos metade da largura.
BTW, o Red Book não é uma ótima introdução aos gráficos em geral. É um padrão técnico, não um tutorial, portanto, a explicação dos conceitos é suficiente para ser inequívoca - não está tentando ensinar o material. Também trata-se de uma biblioteca de renderização de scanline em particular, por isso há muitos conceitos importantes que ela não descreve, como o BRDFs é importante, como eles se relacionam com as propriedades da superfície do mundo real, o que uma imagem realmente é e muitos técnicas de nível superior.
E, finalmente, mesmo na área em questão - como usar uma GPU para acelerar a renderização - está terrivelmente desatualizada. A arquitetura GL é baseada em GPUs de 20 anos atrás. Embora muitos recursos tenham sido adicionados para acompanhar as alterações no hardware, as abstrações fundamentais não são uma boa maneira de entender as arquiteturas atuais da GPU.
Se você quiser aprender sobre a teoria da computação gráfica, comece com um livro didático adequado, como Renderização com Base Física ou Computação Gráfica: Princípios e Prática, ou um curso on-line. Se você quiser aprender como criar um aplicativo 3D, comece com um tutorial sobre o tipo de aplicativo em que está interessado (por exemplo, se for um jogo, tente um tutorial do Unity).