Ambiente 3D no Fasm
Este é um vídeo mostrando polígonos de vários objetos contidos num ambiente em três dimensões criados a partir de um programa em Assembly 32 bits escrito no FASM.
Vídeo:
Nesse ambiente virtual tem-se os eixos xyz e os pontos, que compõem os objetos, que possuem coordenadas retangulares xyz. A tela 2D representa a tela do computador, onde os pontos 3D são projetados em coordenadas 2D xy nesta tela.
Após esses pontos projetados, pode-se desenhar, na tela, uma linha entre dois pontos ou um triângulo, entre três. Com várias linhas ou triângulos, pode-se modelar um objeto 3D.
Num objeto com vários triângulos, desenha-se primeiramente os triângulos mais afastados no eixo z e, depois, os mais próximos da referência 0, que é o observador, fazendo-se com que a face mais próxima do objeto se sobreponha à mais distante. Isso é feito com um contador decrescente no eixo z que vai desenhando os triângulos que estão acima desse, fazendo assim uma varredura.
Para deslocar um objeto no eixo x por exemplo, simplesmente soma-se um passo às coordenadas x dos pontos 3D do objeto. O mesmo é feito no eixo y e z. Dessa forma, o objeto pode ir p/ frente, trás, direita, esquerda, cima, baixo.
Para rotacionar um objeto no plano xz por exemplo, converte-se as coordenadas retangulares xz em coordenadas polares com a hipotenusa e o ângulo e, soma-se um passo a este ângulo que corresponde à rotação, convertendo posteriormente de volta p/ coordenadas retangulares:
A combinação do deslocamento com a rotação permite um objeto ficar rotacionando sobre si mesmo, estando na referência da tela 2D.
Aqui o programa e os arquivos que contêm as coordenadas dos objetos. Estão postados mais a título de curiosidade porque as fontes são um tanto grandes e eu tenho programas que automatizam a manipulação destes:



Comentários
Postar um comentário