O que são "espaço no mundo" e "espaço para os olhos" no desenvolvimento de jogos?

16

Estou lendo um livro sobre conceitos 3D e OpenGL. O livro sempre fala sobre espaço no mundo , espaço para os olhos e assim por diante.

  • O que exatamente é um mundo dentro da tela do monitor do computador?

  • Qual é o espaço do mundo?

  • O que é o espaço dos olhos? É sinônimo de projeção?

gamdevNoobie
fonte

Respostas:

25

Antes de entender o que é o mundo ou o espaço dos olhos, o que é um espaço?

Em um sentido abstrato, um espaço geométrico (por exemplo, Espaço Euclidiano) é uma extensão ilimitada em que os objetos tendem a existir. O espaço define propriedades básicas que os objetos que vivem nesse espaço devem satisfazer. Por exemplo, no espaço euclidiano, a distância é definida como Sqrt( vector dot product with itself).

A maioria das pessoas tende a se misturar entre a definição de espaço e sistema de coordenadas. Um espaço como espaço euclidiano define as propriedades, mas não define o sistema de coordenadas, eu diria que "espaço para os olhos" é melhor chamado de "coordenadas para os olhos".

Na computação gráfica, lidamos quase exclusivamente com o espaço euclidiano. Quando você define um vértice de (X, Y, Z) no espaço euclidiano, isso não significa nada para nós.

Uma definição mais tangível seria defini-la em relação a algum sistema de coordenadas. Por exemplo, um vértice (X, Y, Z) é relativo às coordenadas oculares. Portanto, se Vértice = (0,2,3) em relação às coordenadas oculares. significa que esse vértice é:

  • 0 na direção X a partir da posição X do olho.
  • 2 na direção Y a partir da posição Y do olho.
  • 3 na direção Z da posição Z do olho.
  • E a distância do vértice do olho é sqrt (0 ^ 2 + 2 ^ 2 + 3 ^ 2) = sqrt (13) unidade.

Mas o que são coordenadas oculares e como definimos um sistema de coordenadas?

Definimos um sistema de coordenadas fornecendo três vetores de bases ortogonais (leia-se: comprimento unitário e perpendicular) que se assemelham à orientação e uma posição (tradução). insira a descrição da imagem aqui

Portanto, se a câmera no openGL foi definida (observe que isso é relativo às coordenadas mundiais):

 - Position (0,3,10)
 - Up       (0,1,0)
 - Forward  (0,0,-1)
 - Right    (1,0,0)

Isso significa que o espectador está fixado em (0,3,10) a partir do mundo (0,0,0) e sua direita está alinhada com o eixo X do mundo, e sua frente é invertida no mundo Z e sua subida é alinhada para o mundo Y.

insira a descrição da imagem aqui

Mas você falou demais sobre as coordenadas oculares, o que são as coordenadas mundiais?

Coordenadas mundiais são apenas um sistema de coordenadas pai fixo. As coordenadas oculares devem ser relativas a alguma coisa. Este é o sistema de coordenadas global ao qual tudo é definido em relação.

A Coordenada Mundial possui um i = fixo (1,0,0) na direção X, j = (0,1,0) na direção Y, k = (0,0,1) na direção Z. Estes são os vetores que definem o sistema de coordenadas cartesianas.

Mas isso não faz sentido! Quais são as coordenadas que as coordenadas do mundo são definidas em relação?

Eu diria que é relativo a si mesmo, na realidade esse seria o centro do universo (mas isso é simplista demais).

Mas, em um sentido mais prático, eu diria que, em computação gráfica, é conveniente definir o espaço do mundo como o centro do universo (mundo dos jogos), para que possamos imaginar como as coisas podem se relacionar.

concept3d
fonte