10 minuto(s) de leitura

1. Como são formados os objetos 3D?

Os objetos 3D são formados no computador através de processos de modelagem 3D, que podem ser realizados por meio de diferentes softwares, como o Blender, Maya, 3D Studio Max, entre outros.

Na modelagem 3D, o artista ou designer cria um modelo tridimensional digital do objeto, utilizando ferramentas como polígonos, curvas, superfícies e texturas. Esses modelos são criados a partir de uma variedade de técnicas, como modelagem por subdivisão, escultura digital e modelagem por NURBS.

Uma vez que o modelo 3D é criado, ele pode ser texturizado, iluminado e renderizado, permitindo a criação de imagens realistas do objeto em diferentes ambientes e condições de iluminação.

Nota: As telas dos computadores são essencialmente bidimensionais, são gráficos 3D são apenas ilusões de óptica 2D que fazem o seu cérebro achar que está olhando para um objeto 3D. Fomas 3D

1.1. Quais são os elementos que compõem imagens?

Imagens apresentadas nos dispositivos de saída são formadas por pontos construídos e organizados pelas seguintes estruturas:

1.2. Arquivo Bitmap

Um bitmap é um tipo de imagem que é usado para armazenamento de imagens e pode ser definindo como um mapa de bits.

Cada pedaço da imagem é composto por um ponto chamado de pixel.

1.3. Vector Graphics ou imagem vetorizada

“É uma forma de computação gráfica em que as imagens visuais são criadas diretamente a partir de formas geométricas definidas em um plano cartesiano, como pontos, linhas, curvas e polígonos.”

Em um programa de gráficos vetoriais, fornecemos o ponto inicial e o ponto final e o programa faz o resto.

Mas tem outra vantagem. Se aplicarmos zoom a uma imagem bitmap, podemos ver os pixels e teremos uma imagem ruim. Em gráficos vetoriais, ampliar uma imagem não envolve uma imagem ruim porque a imagem é criada por uma fórmula matemática.

2. Lista de formatos e texturas que o Unreal Engine suporta

Para Materiais, as texturas são mapeadas para as superfícies às quais o Material é aplicado. As texturas podem ser usadas para uma variedade de cálculos dentro de um Material, sendo aplicadas diretamente a uma entrada (como Cor Base), usadas como uma máscara ou usando os valores RGBA para outros cálculos.

Os materiais podem fazer uso de várias texturas que são todas amostradas e aplicadas para diferentes propósitos. Por exemplo, um material simples pode ter uma textura Base Color, uma textura Specular e uma textura Normal Map. Além disso, pode haver um mapa para Emissivo e Rugosidade armazenado nos canais alfa de uma ou mais dessas mesmas texturas. O empacotamento de vários valores em uma única textura permite que eles sejam usados mais prontamente, economizando chamadas de desenho para desempenho e reduzindo o espaço em disco [Textures].

Uma variedade de formatos de imagem e tipos de arquivo são suportados:

  • .bmp - Bitmap;
  • .float;
  • .pcx;
  • .png;
  • .psd - Vector Graphics;
  • .tga;
  • .jpg - Bitmap com metadados e compressão;
  • .exr.

3. O que são Pontos?

Na geometria, um ponto é representado por sua coordenada no espaço. Geometria usa um sistema de coordenadas cartesianas, onde as coordenadas de um ponto em espaço são representados pela distância ao longo de cada um dos eixos principais para o ponto.

Figura: Plano cartesiano.
Plano Cartesiano – O que é, como fazer, características e coordenadas. https://conhecimentocientifico.com/plano-cartesiano/

Pontos são representados por pixels em monitores.

3.1. Pixel

“A palavra pixel é uma combinação dos termos “picture” e “element”. Ou seja, “elemento de imagem”. É a menor unidade de uma imagem digital, independente de sua fonte. Se você pegar uma foto e fizer uma aproximação (zoom), verá uma série de quadradinhos que a compõem. Cada um desses quadros é um pixel. São milhões ou milhares deles.”[O que é um pixel?]

Pixel é o menor elemento em um dispositivo de exibição, sendo que cada pixel é composto por um conjunto de 3 pontos: verde, vermelho e azul.

Figura: Pixel.
Um exemplo de formação de imagens.

3.2. Bits por pixel

Figura: Pixel Color
Tamanho do pixel de cor é diferente. O tamanho de um arquivo de imagem, portanto, está diretamente relacionado ao número de pixels e à granularidade da definição da cor. Uma imagem típica de 640x480 pixels usando uma paleta de 256 cores exigiria um arquivo de cerca de 307 KB de tamanho (640x480 bytes), enquanto uma imagem colorida de 24 bits de alta resolução de 1024x768 pixels resultaria em um arquivo de 2,36 MB (1024x768x3 bytes)..

As cores do pixel dependem da quantidade de bits por pixel (bpp).

  • 1 bpp, 2(1) = 2 colors (monochrome);
  • 2 bpp, 2(2) = 4 colors;
  • 3 bpp, 2(3) = 8 colors;
  • 4 bpp, 2(4) = 16 colors;
  • 8 bpp, 2(8) = 256 colors;
  • 16 bpp, 2(16) = 65,536 colors (“Highcolor” );
  • 24 bpp, 2(24) = 16,777,216 colors (“Truecolor”).

Aumentando a qualidade de cores a imagem terá uma aparência mais realista mas consumira mais memória e processamento.

3.3. Uma dica para utilizar texturas no Unreal Engine

Formatos de textura menores resultam em materiais mais rápidos (por exemplo, DXT1 é de 4 bits por pixel, DXT5 é de 8 bpp, ARGB descompactado é de 32 bpp).

Nota: Compressão de imagens que usam blocos de bits.

GIMP: Exportando imagens do Gimp com compressão DXT1

4. Linhas, raios e segmentos

Uma linha tem direção e comprimento infinito. A direção de uma linha pode ser definido por dois pontos distintos pelos quais a linha passa.

Um raio começa em um ponto e se estende infinitamente em uma direção distante do ponto. Um raio é definido por um ponto e uma direção.

Um segmento de linha é uma linha de comprimento finito definida por seus dois pontos finais.

Figura: Segmento de linha.
Em computadores, devemos lidar com quantidades finitas, então não podemos tirar o total extensão de uma linha ou raio de acordo com sua definição matemática. No computador gráficos quando nos referimos a “linhas”, geralmente nos referimos a segmentos de linha. https://cdn1.byjus.com

4.1. Planos e Triângulos

Um plano é uma folha orientada em 3 espaços sem espessura e com uma extensão infinita.

Um plano é definido por três pontos não colineares que cruzam o plano ou por um ponto no plano e uma direção perpendicular ao plano.

A direção perpendicular a um plano é chamado de Normal ao plano.

Um triângulo também é definido por três pontos no espaço 3 chamados Vértices (singular vértice).

Figura: Triangle Vertex Normal.
A face normal de um triângulo pode ser calculada a partir do produto vetorial de duas arestas desse triângulo. https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/shading-normals

5. Polígonos (Polygon)

As imagens tridimensionais formadas no computador são compostas por polígonos.

Polígonos são uma coleção de vértices, arestas e faces que definem a forma do objeto poliédrico.

5.1. Polígonos no Maya

Utilizando as opções em Poly Modeling podemos definir uma séria de elementos poligonais.

Figura: Wireframe.
Polígonos no Maya utilizando a visualização Wireframe.

Channel Box/Layer Editor - Propriedades do objeto com a sua quantidade de subdivisões, estes valores podem ser manipulados aumentando ou diminuindo a quantidade de arestas.

Figura: Poly Count.
Verts, Edges, Faces, Tris, UVs no Maya

Apresentado a quantidade de vértices e arestas.

Display > Heads up display > Poly Count.

5.2. Polígonos no Unreal Engine

Selecionando Brush Wireframe no View Port ou pressionando Alt+2 a estrutura de malha de vértices dos polígonos na cena.

Figura: Unreal Wireframe
Visualização a malha dos objetos, Unreal Engine 4 > Brush Wireframes.
Figura: Apresentado a quantidade de vértices e arestas.
Visualizando estatísticas - Window > Statistics.

6. Face

São as superfícies planas que constituem um sólido. Consistem em triângulos (malha de triângulo), quadriláteros ou outros polígonos convexos simples, uma vez que isso simplifica a renderização.

6.1. Faces no Maya

Com botão direito pressionado (RMB) escolha Face para selecionar a face.

Figura: Maya RMB.
Face.
Figura: Maya e seleção de Face.
A face selecionada fica em outra cor.

6.2. Faces no Unreal Engine

Somente é possível selecionar faces e vértices de objetos do tipo Geometry em Place Actors.

É necessário habilitar as opções de edição em Modes > Brush Editing.

Figura: Unreal Engine Faces de objetos.
Para editar a face no Unreal Engine utilize Modes > Brush Editing

7. Aresta

São segmentos de reta que são as intersecções de duas faces contíguas.

7.1. Arestas no Maya

Figura: Maya e arestas.
Para selecionar utilize RMB a opção Edge.
Figura: Maya select Edge.
Selecionando a aresta é possível e manipular-la.

7.2. Arestas no Unreal Engine

Figura: Unreal Engine Aresta.
Utilizamos - Modes > Brush Editing > Select Edge.

8. Vértices

São os pontos de encontro das arestas.

8.1. Vértices no Maya

Figura: Maya RMB Vertex.
Selecionamos com RMB a opção Vertex.
Figura: Maya select vertex.
Selecionando um vértice.

8.2. Vértices no Unreal Engine

Figura: Unreal Engine select Vertex.
Brush Editing.

9. Valores de ponto flutuante

Na matemática, todos os cálculos são exatos e realizam aritmética sobre os valores e não alteram sua precisão. No entanto, os computadores armazenam aproximações para números reais como valores de ponto flutuante e realizando operações aritméticas podem fazer com que sua precisão mude. Nem todos os números reais podem ser representados exatamente por uma representação de ponto flutuante. Números como π e outros transcendentais os números têm uma expansão decimal infinita. A natureza aproximada dos números de ponto flutuante geralmente levanta sua cabeça ao comparar números de ponto flutuante e outras estruturas compostas de números de pontos, como pontos, vetores, retas, planos, matrizes e assim por diante.

Figura: Média.
Precisão de valores ponto flutuante. https://media.geeksforgeeks.org

10. Sistemas de coordenadas

Objetos em Computação Gráfica possuem descrições numéricas (modelos) que caracterizam suas formas e dimensões. Esses números se referem a um sistema de coordenadas, normalmente o sistema Cartesiano de coordenadas: x, y e z. Em alguns casos, precisamos de mais de um sistema de coordenadas.

Normalmente, os softwares de elementos gráficos 3D, como por exemplo Maya ou Blender, usam um dos dois tipos de sistemas de coordenadas cartesianas de esquerda e direita. Em ambos os sistemas de coordenadas, o eixo x positivo aponta para a direita e o eixo y positivo aponta para cima.

10.1. À esquerda e à direita serão entregues de coordenadas

Você pode lembrar para qual direção o eixo z positivo aponta, apontando os dedos de sua mão direita ou esquerda na direção x positiva e curvando-os na direção y positiva. A direção do seu polegar aponta em sua direção ou para longe de você, é a direção em que o eixo z positivo aponta para esse sistema de coordenadas. A ilustração a seguir mostra esses dois sistemas de coordenadas.

Figura: Left-handed e Right-handed.
Determinado a organização de coordenadas utilizando a mão https://docs.microsoft.com

Unreal Engine - Utiliza o sistema de coordenadas Left-Handed;

Maya - Utiliza o sistema de coordenadas Right-Handed.

10.2. Pivot - O centro do objeto 3D no Maya

Pivot é um ponto que marca o centro de objetos tridimensionais no Maya, onde :

  • Todas as transformações de um objeto são relativas ao ponto de pivô do objeto;
  • Os manipuladores 3D também contam com o ponto de pivô do objeto.
Figura: Maya select pivot.
Selecione o pivot usando a tecla W e depois Tecla Insert ou D.

10.3. Pivot - O centro do objeto 3D no Unreal Engine

Comando : Alt + Scroll mouse.

11. Cor

Uma cor é descrita para o computador como uma tupla ordenada de valores de um cor space (espaço de cor). Os próprios valores são chamados de components(componentes) e são coordenados no espaço de cores. O GDI do Windows representa as cores como uma tupla ordenada de componentes vermelhos, verdes e azuis com cada componente no intervalo [0 . 0 , 1 . 0] representado como uma quantidade de bytes sem sinal no intervalo [0 , 255].

Por padrão, o Windows GDI usa o espaço de cores RGB.

Em computação gráfica, muitas vezes é conveniente usar as cores HLS e HSV.

  • HLS: matiz, leveza, saturação;

  • HSV: matiz,saturação,valor.

12. Transparência com Alpha

Muitas vezes, em computação gráfica, desejamos combinar pixels como se eles fossem pintados em folhas transparentes empilhadas umas sobre as outras. No Direct3D, a transparência é representada como um canal adicional de informações que representam a quantidade de transparência do pixel.

Quando um pixel é totalmente opaco, seu valor alfa é 1 . 0 e este pixel completamente obscurece qualquer coisa por trás dele. Quando um pixel é totalmente transparente, seu valor alfa é 0. 0 e tudo por trás do pixel aparece. Quando o valor alfa é entre 0 e 1, o pixel é parcialmente transparente.