diff --git a/axes_indicator.py b/axes_indicator.py index a955701..44db162 100644 --- a/axes_indicator.py +++ b/axes_indicator.py @@ -18,7 +18,7 @@ def draw(self, screen: pygame.Surface): [self.center[0], self.center[1]], [self.center[0], self.center[1]])) - projected_rotation = projection_matrix @ rotation_x(self.angle_x) @ rotation_y(self.angle_y) @ rotation_z(self.angle_z) + projected_rotation = projection_matrix @ rotation_z(self.angle_z) @ rotation_y(self.angle_y) @ rotation_x(self.angle_x) transposed_rotation = (projected_rotation * self.line_size).transpose() lines_end_positions = (transposed_rotation + add_center_matrix).tolist() diff --git a/grid.obj b/grid.obj new file mode 100644 index 0000000..99f8bb1 --- /dev/null +++ b/grid.obj @@ -0,0 +1,169 @@ +# Vertices +v 0 0 -5 +v 0 0 -4 +v 0 0 -3 +v 0 0 -2 +v 0 0 -1 +v 0 0 0 +v 0 0 1 +v 0 0 2 +v 0 0 3 +v 0 0 4 +v 0 0 5 + +v 1 0 -5 +v 1 0 -4 +v 1 0 -3 +v 1 0 -2 +v 1 0 -1 +v 1 0 0 +v 1 0 1 +v 1 0 2 +v 1 0 3 +v 1 0 4 +v 1 0 5 + +v 2 0 -5 +v 2 0 -4 +v 2 0 -3 +v 2 0 -2 +v 2 0 -1 +v 2 0 0 +v 2 0 1 +v 2 0 2 +v 2 0 3 +v 2 0 4 +v 2 0 5 + +v 3 0 -5 +v 3 0 -4 +v 3 0 -3 +v 3 0 -2 +v 3 0 -1 +v 3 0 0 +v 3 0 1 +v 3 0 2 +v 3 0 3 +v 3 0 4 +v 3 0 5 + +v 4 0 -5 +v 4 0 -4 +v 4 0 -3 +v 4 0 -2 +v 4 0 -1 +v 4 0 0 +v 4 0 1 +v 4 0 2 +v 4 0 3 +v 4 0 4 +v 4 0 5 + +v 5 0 -5 +v 5 0 -4 +v 5 0 -3 +v 5 0 -2 +v 5 0 -1 +v 5 0 0 +v 5 0 1 +v 5 0 2 +v 5 0 3 +v 5 0 4 +v 5 0 5 + +v -1 0 -5 +v -1 0 -4 +v -1 0 -3 +v -1 0 -2 +v -1 0 -1 +v -1 0 0 +v -1 0 1 +v -1 0 2 +v -1 0 3 +v -1 0 4 +v -1 0 5 + +v -2 0 -5 +v -2 0 -4 +v -2 0 -3 +v -2 0 -2 +v -2 0 -1 +v -2 0 0 +v -2 0 1 +v -2 0 2 +v -2 0 3 +v -2 0 4 +v -2 0 5 + +v -3 0 -5 +v -3 0 -4 +v -3 0 -3 +v -3 0 -2 +v -3 0 -1 +v -3 0 0 +v -3 0 1 +v -3 0 2 +v -3 0 3 +v -3 0 4 +v -3 0 5 + +v -4 0 -5 +v -4 0 -4 +v -4 0 -3 +v -4 0 -2 +v -4 0 -1 +v -4 0 0 +v -4 0 1 +v -4 0 2 +v -4 0 3 +v -4 0 4 +v -4 0 5 + +v -5 0 -5 +v -5 0 -4 +v -5 0 -3 +v -5 0 -2 +v -5 0 -1 +v -5 0 0 +v -5 0 1 +v -5 0 2 +v -5 0 3 +v -5 0 4 +v -5 0 5 + +# Faces +f 1 2 14 13 +f 2 3 15 14 +f 3 4 16 15 +f 4 5 17 16 +f 5 6 18 17 +f 6 7 19 18 +f 7 8 20 19 +f 8 9 21 20 +f 9 10 22 21 +f 10 11 23 22 +f 11 12 24 23 + +f 13 14 26 25 +f 14 15 27 26 +f 15 16 28 27 +f 16 17 29 28 +f 17 18 30 29 +f 18 19 31 30 +f 19 20 32 31 +f 20 21 33 32 +f 21 22 34 33 +f 22 23 35 34 +f 23 24 36 35 + +f 25 26 38 37 +f 26 27 39 38 +f 27 28 40 39 +f 28 29 41 40 +f 29 30 42 41 +f 30 31 43 42 +f 31 32 44 43 +f 32 33 45 44 +f 33 34 46 45 +f 34 35 47 46 +f 35 36 48 47 diff --git a/main.py b/main.py index b4442b2..d4382da 100644 --- a/main.py +++ b/main.py @@ -24,7 +24,7 @@ camera = Camera() camera_axes = AxesIndicator((camera.angle_x, camera.angle_y, camera.angle_z),(50, 50), 20) -obj = Object_3D("cessna.obj", (0, 0, 100)) +obj = Object_3D("grid.obj", (0, -10, 100)) object_axes = AxesIndicator((obj.angle_x, obj.angle_y, obj.angle_z), (100, 50), 20) t = 0 @@ -57,7 +57,8 @@ screen.fill("black") - obj.draw(screen, width, height, final_matrix) + obj.update(final_matrix) + obj.draw_vertex(screen, width, height) camera_axes.update((camera.angle_x, camera.angle_y, camera.angle_z)) camera_axes.draw(screen) @@ -65,7 +66,7 @@ object_axes.update((obj.angle_x, obj.angle_y, obj.angle_z)) object_axes.draw(screen) - pygame.draw.circle(screen, "grey", (width//2, height//2), 5, 2) + pygame.draw.circle(screen, "#ff3333", (width//2, height//2), 5, 2) pygame.display.update() - clock.tick() \ No newline at end of file + clock.tick(60) \ No newline at end of file diff --git a/object_3d.py b/object_3d.py index a1622c6..2d3c00d 100644 --- a/object_3d.py +++ b/object_3d.py @@ -2,6 +2,7 @@ import numpy as np from typing import Tuple from transforms import * + class Object_3D: def __init__(self, file_path: str, initial_pos: Tuple[int] = (0, 0, 0)): @@ -9,6 +10,8 @@ def __init__(self, file_path: str, initial_pos: Tuple[int] = (0, 0, 0)): file = open(file_path) self.vertices = [] self.faces = [] + self.relative_vertices = [] + for line in file: if line.startswith("v"): try: @@ -30,12 +33,22 @@ def __init__(self, file_path: str, initial_pos: Tuple[int] = (0, 0, 0)): self._angle_y = 0 self._angle_z = 0 - def draw(self, screen: pygame.Surface, width: int, height: int, view_matrix: np.ndarray): + + def update(self, view_matrix: np.ndarray): + self.relative_vertices = self.vertices @ (view_matrix @ translation(*self.initial_pos)).transpose() + + def draw_vertex(self, screen: pygame.Surface, width: int, height: int): + for vertex in self.relative_vertices: + if vertex[0,3] < 0: + pygame.draw.circle(screen, "white", (vertex[0,0] / vertex[0,3] + width//2, vertex[0,1]/vertex[0,3] + height//2), 1) + + def draw_edges(self, screen: pygame.Surface, width: int, height: int, view_matrix: np.ndarray): relative_vertices = self.vertices @ (view_matrix @ translation(*self.initial_pos)).transpose() for vertex in relative_vertices: if vertex[0,3] < 0: pygame.draw.circle(screen, "white", (vertex[0,0] / vertex[0,3] + width//2, vertex[0,1]/vertex[0,3] + height//2), 1) + @property def angle_x(self): return self._angle_x diff --git a/relatorio/imgs/07_glspace7.png b/relatorio/imgs/07_glspace7.png new file mode 100644 index 0000000..0287756 Binary files /dev/null and b/relatorio/imgs/07_glspace7.png differ diff --git a/relatorio/imgs/07_lookat1.png b/relatorio/imgs/07_lookat1.png new file mode 100644 index 0000000..0d946d7 Binary files /dev/null and b/relatorio/imgs/07_lookat1.png differ diff --git a/relatorio/imgs/07_lookat7.png b/relatorio/imgs/07_lookat7.png new file mode 100644 index 0000000..e3b67b8 Binary files /dev/null and b/relatorio/imgs/07_lookat7.png differ diff --git a/relatorio/imgs/07_rotation5.png b/relatorio/imgs/07_rotation5.png new file mode 100644 index 0000000..32cedf8 Binary files /dev/null and b/relatorio/imgs/07_rotation5.png differ diff --git a/relatorio/imgs/07_scaling4.png b/relatorio/imgs/07_scaling4.png new file mode 100644 index 0000000..790ca01 Binary files /dev/null and b/relatorio/imgs/07_scaling4.png differ diff --git a/relatorio/imgs/07_translation1.png b/relatorio/imgs/07_translation1.png new file mode 100644 index 0000000..416f405 Binary files /dev/null and b/relatorio/imgs/07_translation1.png differ diff --git a/relatorio/imgs/08_projection7.png b/relatorio/imgs/08_projection7.png new file mode 100644 index 0000000..e170a93 Binary files /dev/null and b/relatorio/imgs/08_projection7.png differ diff --git "a/relatorio/imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" "b/relatorio/imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" new file mode 100644 index 0000000..59c76d2 Binary files /dev/null and "b/relatorio/imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" differ diff --git "a/relatorio/imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" "b/relatorio/imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" new file mode 100644 index 0000000..f3faa4e Binary files /dev/null and "b/relatorio/imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" differ diff --git "a/relatorio/imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" "b/relatorio/imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" new file mode 100644 index 0000000..ea6128c Binary files /dev/null and "b/relatorio/imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" differ diff --git "a/relatorio/imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" "b/relatorio/imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" new file mode 100644 index 0000000..227d2f6 Binary files /dev/null and "b/relatorio/imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Proje\303\247\303\243o perspectiva MCTA008-17 Computa\303\247\303\243o Gr\303\241fica.png" differ diff --git a/relatorio/imgs/emap.jpg b/relatorio/imgs/emap.jpg new file mode 100644 index 0000000..022d4e3 Binary files /dev/null and b/relatorio/imgs/emap.jpg differ diff --git a/relatorio/imgs/logo_emap.png b/relatorio/imgs/logo_emap.png new file mode 100644 index 0000000..1161bb1 Binary files /dev/null and b/relatorio/imgs/logo_emap.png differ diff --git a/relatorio/imgs/ndc.png b/relatorio/imgs/ndc.png new file mode 100644 index 0000000..227d2f6 Binary files /dev/null and b/relatorio/imgs/ndc.png differ diff --git a/relatorio/imgs/projection02.png b/relatorio/imgs/projection02.png new file mode 100644 index 0000000..68ce960 Binary files /dev/null and b/relatorio/imgs/projection02.png differ diff --git a/relatorio/importantstuff.sty b/relatorio/importantstuff.sty new file mode 100644 index 0000000..29a03db --- /dev/null +++ b/relatorio/importantstuff.sty @@ -0,0 +1,46 @@ +\ProvidesPackage{importantstuff} + +\usepackage[letterpaper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry} + +\usepackage[portuguese]{babel} +\usepackage{ragged2e} +\usepackage{enumitem} +\usepackage{amsmath} +\usepackage{graphicx} +\usepackage{amsfonts} +\usepackage{float} +\usepackage{listings} +\usepackage{xcolor} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} +\lstset{style=mystyle} + +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + linkcolor=blue, + filecolor=magenta, + urlcolor=cyan, +} \ No newline at end of file diff --git a/relatorio/relatorio.tex b/relatorio/relatorio.tex new file mode 100644 index 0000000..a907558 --- /dev/null +++ b/relatorio/relatorio.tex @@ -0,0 +1,815 @@ +\documentclass[12pt]{article} + +\usepackage{importantstuff} + +\title{Renderização de Objetos Tridimensionais \\ +\large Transformações Lineares e Espaços} + +\author{Luciano Pereira Sampaio, Vitor Matheus do Nascimento} +\date{Novembro de 2023} + + +\begin{document} + +\thispagestyle{empty} + +\begin{figure} + \centering + \includegraphics[width=9cm]{imgs/emap.jpg} + \vspace{4cm} +\end{figure} + +\begin{center} + {\huge \bf Renderização de Objetos Tridimensionais \\ + \vspace{0.5cm} + \large Transformação Lineares e Espaços} + + \vspace{2cm} + + {Luciano Pereira Sampaio \\ + Vitor Matheus do Nascimento Moreira} + \vfill + Rio de Janeiro, \\ + Novembro de 2023 +\end{center} +\pagebreak + +\setcounter{page}{1} +\tableofcontents +\pagebreak + + +\section{Introdução} + +No presente trabalho, iremos discutir sobre as transformações aplicadas a objetos tridimensionais de modo que eles possam ser exibidos em superficies bidimensionais, como a tela de um computador. Este é um dos assuntos de grande interesse na área da computação gráfica, e é essencial para a representação visual de objetos tridimensionais em diversos contextos, como jogos, simulações e design gráfico. A transição de um ambiente tridimensional para uma superfície bidimensional envolve uma série de transformações lineares e algoritmos que visam preservar as características essenciais dos objetos, como forma, proporção e orientação, nosso intuito é discutir tais técnicas e aplica-las para criarmos um renderizador efetivo. + +\subsection{Motivação} + +As aplicações do tema podem ser vistas em diversos programas importantes no dia-a-dia, desde aplicativos profissionais, como o AutoCAD e o MATLAB, aplicativos que auxiliam na visualização e construção de elementos 2D e 3D para diferentes propósitos, até contextos de entretenimento, como jogos e animações 3D. + +O funcionamento desses aplicativos, incluindo o que o usuário consegue ver em sua tela, é atrelado aos conceitos de Álgebra Linear e Computação. Cada ponto e sua posição na tela deve ser uma representação gráfica coerente de um objeto de um objeto tridimensional, e para isso diversos processos são aplicados antes da visualização na tela. + +Pensando nisso, acreditamos que tal assunto é de interesse tanto para a aplicação de conceitos de Álgebra Linear quanto para aplicação de conceitos de Computação, todavia, daremos ênfase para os conceitos de Álgebra Linear. + +\subsection{Metodologia} + +Após a definição do tema, a abordagem escolhida foi a de estudar sobre o tema e aplica-lo por meio de um renderizador programado em Python utilizando o Pygame. + +Antes de prosseguirmos, existem alguns conceitos importantes para discutirmos, o primeiro é em relação a como nosso objeto tridimensional é representado. Em suma, é o melhor que podemos fazer é aproximar um objeto a partir de pontos e polígonos, entender como as transformações são aplicadas aos pontos já é o bastante para entender a representação geral do modelo. Estes pontos, com coordenadas $(x,y,z)$, são usados, usualmente, como colunas de uma matriz, e transformações lineares podem ser aplicadas a eles. Além disso, geralmente fazemos uma divisão entre três espaços de coordenadas principais, falamos sobre cada uma a seguir. + +\subsection{Espaço do Mundo (World Space)} + +O espaço do mundo é o espaço tridimensional no qual todos nossos objetos e nossa câmera se encontram. Sua origem é um ponto que indica o centro de nosso cenário, por convenção, consideramos o ``chão'' como o plano xz, e a altura como a componente y. + +\subsection{Espaço do Objeto (Local Space)} + +O espaço do objeto é o espaço em que se encontra um objeto tridimensional individual, cada objeto diferente te seu próprio espaço. O centro do objeto é também o centro do sistema de coordenadas do espaço, + neste sistema representar se encontra convencionalmente centrado na sua origem, e aplicaremos transformações lineares para manipular esse objeto em relação a seu sistema de coordenadas para encontrar sua posição, orientação e tamanho no sistema de coordenadas do mundo. + + +\subsection{Espaço da Câmera (View Space)} + +O espaço da câmera representa o ponto de vista da nossa câmera virtual posicionada no mundo, ou seja, o espaço do mundo relativo à câmera. Existem algumas transformações envolvendo este espaço, mas acreditamos que é mais fácil explica-lás depois de explicarmos sobre projeção, então voltaremos a falar sobre a câmera. + +\section{Transformações Gerais} + +Queremos que seja possível manipular cada um de nossos espaços a partir de transformações lineares, uma vez que assim poderíamos escrever uma transformação complexa a partir de uma composição de transformações mais simples. Com isso, vamos analisar e encontrar nossas principais transformações de interesse, para manipulações que mudem a orientação, posição e tamanho de um espaço. + +Basicamente, queremos uma forma de rotacionar, escalar e transladar nosso objeto. +Vamos analisar cada caso: + +\begin{enumerate}[noitemsep] + \item Escala + \item Rotação + \item Translação +\end{enumerate} + +Note que todas transformações acima podem ser realizadas representadas por matriz $3\times3$, exceto a translação, isso porque transformações lineares devem preservar a origem, mas translações não fazem isso. Entretanto, podemos contornar esse problema usando uma matriz $4\times4$, no que é conhecido como coordenadas homogêneas. Nossos vetores passam a ser do tipo $(x, y, z, w)$, e dizemos que $w = 1$. + +Esse não é o único motivo pelo qual usamos coordenadas homogêneas ao lidar com renderização de objetos tridimensionais, na verdade, esse é um dos menores motivos, visto que poderíamos ``simplesmente'' somar um vetor com os fatores de translação, no entanto, utilizar um sistema de coordenadas homogêneas é essencial para outras coisas, mas não convém falar sobre isso no momento, por enquanto vamos nos contentar com a explicação da translação. + +Agora, podemos encontrar transformações lineares para cada um dos três casos necessários. + +\subsection{Transformação de Escala}\label{scale_transform} + +Não há segredos nesta transformação, basicamente vamos multiplicar cada eixo do objeto por um escalar, vamos chamar a matriz que representa essa transformação de S. +\[ +S = +\begin{bmatrix} + S_{x} & 0 & 0 & 0 \\ + 0 & S_{y} & 0 & 0 \\ + 0 & 0 & S{z} & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\implies +S +\begin{bmatrix} + x \\ + y \\ + z \\ + 1 +\end{bmatrix} += +\begin{bmatrix} + S_{x} \cdot x \\ + S_{y} \cdot y \\ + S_{z} \cdot z \\ + 1 +\end{bmatrix} +\] + +\subsection{Transformação de Rotação/Orientação}\label{rotation_transform} + +Para a rotação e orientação, vamos utilizar ângulos eulerianos. O que vamos fazer é representar rotações em torno de cada eixo dado um ângulo, já sabemos como é a rotação em duas dimensões, podemos aplicar uma rotação ``bidimensional'' considerando 2 eixos e deixando o outro eixo livre, e repetir esse processo mais duas vezes, vamos chamar as matriz que fazem essa transformação de $R_x$, $R_y$ e $R_z$. + +\begin{equation} + \begin{cases} + y' = y \cdot \cos(\phi) - z \cdot \sin(\phi) \\ + z' = y \cdot \sin(\phi) + z \cdot \cos(\phi) \\ + x' = x + \end{cases} + \implies + R_x = + \begin{bmatrix} + 1 & 0 & 0 & 0 \\ + 0 & \cos(\phi) & \sin(\phi) & 0 \\ + 0 & -\sin(\phi) & \cos(\phi) & 0 \\ + 0 & 0 & 0 & 1 + \end{bmatrix} +\end{equation} + + +\begin{equation} + \begin{cases} + z' = z \cdot \cos(\theta) - x \cdot \sin(\theta) \\ + x' = z \cdot \sin(\theta) + x \cdot \cos(\theta) \\ + y' = y + \end{cases} + \implies + R_y = + \begin{bmatrix} + \cos(\theta) & 0 & \sin(\theta) & 0 \\ + 0 & 1 & 0 & 0 \\ + -\sin(\theta) & 0 & \cos(\theta) & 0 \\ + 0 & 0 & 0 & 1 + \end{bmatrix} +\end{equation} + + +\begin{equation} + \begin{cases} + x' = x \cdot \cos(\psi) - y \cdot \sin(\psi) \\ + y' = x \cdot \sin(\psi) + y \cdot \cos(\psi) \\ + z' = z + \end{cases} + \implies + R_z = + \begin{bmatrix} + \cos(\psi) & -\sin(\psi) & 0 & 0 \\ + \sin(\psi) & \cos(\psi) & 0 & 0 \\ + 0 & 0 & 1 & 0 \\ + 0 & 0 & 0 & 1 + \end{bmatrix} +\end{equation} + +A partir disso, podemos demonstrar a orientação de qualquer objeto tridimensional dado seus ângulos em relação a cada eixo. É muito importante notar que essas matrizes não comutam, então a ordem das transformações importa, e precisamos pensar nelas na hora de escolher os ângulos para orientação. Além disso, a composição dessas matrizes para representar uma rotações pode levar a um problema conhecido como ``Gimbal Lock'', no qual se perde um grau de liberdade da rotação, mas resolver esse problema foge do escopo, e ângulos eulerianos funcionam perfeitamente para representar uma orientação. + +\subsection{Transformação de Translação}\label{translation_transform} + +Por fim, outra transformação que precisamos é a de translação, como falamos anteriormente, aqui nos é conveniente utilizar coordenadas homogêneas para que a translação possa ser representada como uma transformação linear. Em coordenadas homogêneas, uma transformação de cisalhamento, é capaz de somar vetores à nossos vetores originais. Chamamos a matriz dessa transformação de $T$. + +\[ +T = +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\implies +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\begin{bmatrix} + x \\ + y \\ + z \\ + 1 +\end{bmatrix} += +\begin{bmatrix} + x + T_{x}\\ + y + T_{y}\\ + z + T_{z}\\ + 1 +\end{bmatrix} +\] + +Perceba que acabamos de representar o deslocamento de um vetor através de uma transformação linear, então acabamos de encontrar todas transformações necessárias para manipular a posição, orientação e tamanho de um objeto tridimensional. + + +\section{Objetos} + +Aqui, queremos representar nossos objetos nas coordenadas do Espaço do Mundo, o que fazemos, para isso aplicamos as transformações lineares que encontramos nos tópicos anteriores, a fim de demonstrar o tamanho, orientação e posição dos objetos no mundo. + +Nossas transformações são as seguintes: + +\subsection{Escala no Objeto} + +Aplicamos a matriz de escala encontrada na subseção {\ref{scale_transform}} a fim de mudarmos a altura, largura e comprimento do nosso objeto. Como mostrado na figura abaixo: + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_scaling4.png} + \caption{Exemplo de escala em um objeto} +\end{figure} + +\subsection{Rotacionando o Objeto} + +Aqui fazemos uma composição entre as matrizes de rotação dos eixos encontradas na subseção {\ref{rotation_transform}}. Por exemplo, $R_x R_y R_z$. É importante notar que as matriz de rotações não comutam em $\mathbb{R}^3$, e os ângulos devem ser escolhidos pensando nisso. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_rotation5.png} + \caption{Exemplo de rotação em um objeto} +\end{figure} + +\subsection{Transladando o Objeto} + +Por fim, aplicamos a translação no objeto dada a matriz encontrada na subseção {\ref{translation_transform}}, conforme a posição do objeto em relação ao Espaço do Mundo. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_translation1.png} + \caption{Exemplo de translação em um objeto} +\end{figure} + +\noindent +Com isso, a matriz final que leva o objeto para o espaço do mundo é: +\\[\baselineskip] +\boldmath{} +$M_{obj} = T \cdot R_x \cdot R_y \cdot R_z \cdot S$ +\unboldmath{} + +\section{Câmera} + +Aqui iremos falar sobre a câmera. Dois pontos importantes sobre a câmera, são que queremos que ela possa ``apontar'' para qualquer local do espaço do mundo, e queremos que ela pode estar localizada em qualquer local no espaço do mundo. Além disso, queremos conseguir as coordenadas dos objetos em relação à câmera, faremos isso a seguir. + +\subsection{Orientação da Câmera} + +Assim como os objetos, a câmera também possui uma orientação relativa ao Espaço do Mundo. + +Vamos construir a orientação da câmera com base em um sistema conhecido como ``LookAt''. Esse sistema consiste em definir um vetor que indica a direção para onde a câmera aponta, e criar uma base ortonormal a partir desse vetor. + +\subsubsection{Câmera LookAt} + +\boldmath{} +Queremos encontrar uma base ortonormal \boldmath{$\{u,v,n\}$} para o espaço da câmera, considerando que temos as seguintes informações: + +\begin{enumerate}[noitemsep] + \item Um ponto $P_{cam}$ no Espaço do Mundo, relativo à posição da câmera. + \item Um ponto arbitrário $P_{at}$ no Espaço do Mundo, relativo a posição que a câmera aponta. + \item Um vetor $V_{up}$, que indica a direção ``para cima'', geralmente o vetor $\begin{bmatrix} + 0 & 1 & 0 + \end{bmatrix}^T$. +\end{enumerate} + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_lookat1.png} + \caption{Representação dos Espaços do Mundo e Câmera} +\end{figure} + +\noindent +Perceba que o vetor $n$ pode ser encontrado da seguinte forma: $n =\frac{P_{cam}-P_{at}}{|P_{cam}-P_{at}|}$. +Ora, então o vetor $u$ é dado por: $u =\frac{v_{up} \times n}{|v_{up} \times n|}$. E de forma parecida: $v = u \times n$. Como $n$ e $u$ já são vetores normalizados e ortogonais, seu produto cruzado já está normalizado. +\\~\\ +Com isso, a matriz que define a orientação da câmera no espaço do mundo é: + +\unboldmath{} + +\[ +R_{cam} = +\begin{bmatrix} + u_1 & v_1 & n_1 & 0 \\ + u_2 & v_2 & n_2 & 0 \\ + u_3 & v_3 & n_3 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\] + +\noindent +Onde, os indices 1, 2 e 3 correspondem à respectiva entrada do vetor. + +\subsection{Posição da Câmera} + +Perceba que a matriz que encontramos acima nos dá a orientação da câmera em relação ao Mundo, mas ainda precisamos posicionar a câmera no Espaço do Mundo. A matriz que usamos aqui é a mesma que usamos para posicionar os Objetos. + +\[ +T_{cam} = +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\] + +\subsection{Transformação Final da Câmera} + +Compondo as transformações que encontramos acima temos o seguinte: + +\[ +M_{cam} = T_{cam} R_{cam} = +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\begin{bmatrix} + u_1 & v_1 & n_1 & 0 \\ + u_2 & v_2 & n_2 & 0 \\ + u_3 & v_3 & n_3 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\] + +\noindent +Isso nos dá a posição e orientação da câmera nas coordenadas do mundo, como mostrado na figura abaixo. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_lookat7.png} + \caption{Mudança do espaço da câmera para o espaço do mundo} +\end{figure} + +\section{Espaço do Mundo para Espaço da Câmera} + +No momento, temas a posição e orientação dos objetos em relação ao mundo, temos também a posição e orientação da câmera no mundo. O que gostaríamos é conseguir as coordenadas dos objetos da cena em relação à câmera. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/07_glspace7.png} + \caption{Espaço da câmera em relação ao espaço do mundo} +\end{figure} + +Como queremos as coordenadas dos objetos em relação à câmera, precisamos fazer uma mudança de base do Espaço do Mundo para o nosso Espaço da Câmera. Felizmente, a matriz que encontramos para posicionar e orientar a câmera é facilmente invertível. + +Como vimos anteriormente, a matriz que posiciona nossa câmera no mundo é dada por: +\[ +M_{cam} = T_{cam} R_{cam} = +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\begin{bmatrix} + u_1 & v_1 & n_1 & 0 \\ + u_2 & v_2 & n_2 & 0 \\ + u_3 & v_3 & n_3 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\] + +Uma vez que $R_{cam}$ nada mais é que uma matriz de rotação, sua inversa é igual a sua transposta. Portanto, temos o seguinte: + +\[ +M_{cam}^{-1} = R_{cam}^T T_{cam}^{-1} = +\begin{bmatrix} + u_1 & u_2 & u_3 & 0 \\ + v_1 & v_2 & v_3 & 0 \\ + n_1 & n_2 & n_3 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\begin{bmatrix} + 1 & 0 & 0 & -T_{x} \\ + 0 & 1 & 0 & -T_{y} \\ + 0 & 0 & 1 & -T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +\] + +\section{Projeção} + +Agora que já orientamos e posicionamos os objetos em nossa cena e agora que já temos as coordenadas dos objetos relativas à câmera, podemos começar a pensar sobre como exibir efetivamente nossos objetos na tela do computador, ou seja, pensar em como projetar nosso espaço tridimensional em um espaço bidimensional. Existem algumas formas de fazer isso, em principal existe a projeção ortográfica e a projeção perspectiva, focaremos na projeção perspectiva, uma vez que essa preserva a noção de profundidade. + + +\subsection{Projeção perspectiva} + +Neste tipo de projeção, queremos que quanto mais distantes do centro de visão os objetos estejam, menores eles fiquem quando projetados. Nossa projeção perspectiva será responsável por: ajustar as coordenadas x e y com base no tamanho da tela (corrigir o aspect ration), ajustar as coordenadas x e y com base no ângulo de visão que definirmos, e normalizar os valores de x, y e z para que eles fiquem entre -1 e 1, tal normalização é chamada de NDC (Normalized Device Coordinates). + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/08_projection7.png} + \caption{Volume de visão para a projeção perspectiva} +\end{figure} + +Os parâmetros que definem nossa pirâmide truncada são l (left), r (right), b (bottom), t (top), n (near) e f (far), sendo que l, r, b e t indicam as coordenadas da tela em relação a uma origem arbitrária (esses parâmetros normalmente estão em unidade de pixels), e n e f definem os planos de corte da visão (visão minima e máxima). + +\subsubsection{Contrução da Matriz de perspectiva} + +Para facilitar os cálculos, consideramos que o centro da projeção coincide com a origem do mundo, e o que o eixo onde a câmera alinhado com o eixo z do mundo. +Agora, definindo dois planos normais ao eixo $Z$, o mais próximo da origem representando a tela do computador e com posição $Z = -n$, e o mais distante representando o plano máximo de visão (até onde enxergamos), com $Z = -f$. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/projection02.png} + \caption{Volume de visão visto de cima} +\end{figure} + + +Após projeção do ponto $(X_e,Y_e,Z_e)$ o mesmo passa a ter coordenadas $(X_p, Y_p, -n)$. Através da razão de triângulos semelhantes temos: + +\[ +\frac{X_p}{-n} = \frac{X_e}{Z_e} \implies X_p = \frac{n \cdot X_e}{-Z_e} +\] + +O mesmo vale para $Y_p$: + +\[ +\frac{Y_p}{-n} = \frac{Y_e}{Z_e} \implies Y_p = \frac{n \cdot Y_e}{-Z_e} +\] + +Perceba que precisamos fazer uma divisão por $-Z_e$ para encontrar as coordenadas de $X_p$ e $Y_p$, o problema é não existe transformação linear que faça isso neste caso. Mas como estamos trabalhando com coordenadas homogêneas, podemos usar um pequeno truque: + +\[ +\begin{bmatrix} + x_c \\ + y_c \\ + z_c \\ + w_c +\end{bmatrix} += +\begin{bmatrix} + . & . & . & . \\ + . & . & . & . \\ + . & . & . & . \\ + 0 & 0 & -1 & 0 +\end{bmatrix} +\begin{bmatrix} + x_e \\ + y_e \\ + z_e \\ + 1 +\end{bmatrix} += +\begin{bmatrix} + x_c \\ + y_c \\ + z_c \\ + -z_e +\end{bmatrix} +\] + +Como quereremos normalizar nosso volume de visão em um cubo, temos o seguinte a seguinte mapeamento entre os intervalos: + +\begin{itemize} + \item Em x: [l,r], no espaço da câmera, para [-1,1] em NDC + \item Em y: [b,t], no espaço da câmera, para [-1,1] em NDC + \item Em z: [-n,-f], no espaço da câmera, para [-1,1] em NDC +\end{itemize} + +\begin{figure} + \centering + \includegraphics[height=0.3\linewidth]{imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png} + \includegraphics[height=0.3\linewidth]{imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png} + \caption{Objetos dentro do volume de visão antes e após a normalização.} +\end{figure} + +\noindent +Com isso + +\[ + x_{ndc} = a_x x_p + b_x +\] +\[ + y_{ndc} = a_y y_p + b_y +\] + +\noindent +Onde a e b são respectivamente fatores de escala e translação. + +\[ + a_x = \frac{2}{r-l}, \qquad b_x = -\frac{r+l}{r-l} +\] +\[ + a_y = \frac{2}{t-b}, \qquad b_y = -\frac{t+b}{t-b} +\] + +\noindent +Isso nos dá + +\[ + x_c = n \cdot a_x \cdot x_e - b_x \cdot z_e +\] +\[ + y_c = n \cdot a_y \cdot y_e - b_y \cdot z_e +\] + +Mudando os elementos da matriz de projeção: + +\[ +\begin{bmatrix} + x_c \\ + y_c \\ + z_c \\ + w_c +\end{bmatrix} += +\begin{bmatrix} + \frac{2n}{r-l} & 0 & \frac{r+l}{r-l} & 0 \\ + 0 & \frac{2n}{r-l} & \frac{t+b}{t-b} & 0 \\ + 0 & 0 & \alpha & \beta \\ + 0 & 0 & -1 & 0 +\end{bmatrix} +\begin{bmatrix} + x_e \\ + y_e \\ + z_e \\ + 1 +\end{bmatrix} +\] + +Sabendo que precisamos mapear o intervalo [-n, -f] para [-1,1], podemos forma um sistema de equações: + +\[ +\begin{cases} + \frac{-\alpha \cdot n + \beta}{n} = -1 \\ + \frac{-\alpha \cdot f + \beta}{f} = 1 +\end{cases} +\implies +-\alpha n + \beta = -n, \quad -\alpha f + \beta = -f +\] + +\noindent +Com isso: + +\[ +\begin{cases} + \alpha = -\frac{f+n}{f-n} \\ + \beta = -\frac{2fn}{f-n} +\end{cases} +\] + +\noindent +Com isso, nossa matriz de perspectiva é: + +\[ +M_{persp} = +\begin{bmatrix} + \frac{2n}{r-l} & 0 & \frac{r+l}{r-l} & 0 \\ + 0 & \frac{2n}{t-b} & \frac{t+b}{t-b} & 0 \\ + 0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n} \\ + 0 & 0 & -1 & 0 +\end{bmatrix} +\] + +\begin{figure}[H] + \centering + \includegraphics[height=0.4\linewidth]{imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png} + \caption{Objetos em NDC e correspondentes no espaço da tela.} +\end{figure} + +\noindent +Se o centro da nossa tela for a origem para a perspectiva, então $r = -l$ e $t = -b$, e a matriz é simplificada para: + +\[ +M_{persp} = +\begin{bmatrix} + \frac{n}{r} & 0 & 0 & 0 \\ + 0 & \frac{n}{t} & 0 & 0 \\ + 0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n} \\ + 0 & 0 & -1 & 0 +\end{bmatrix} +\] + + +Podemos também utilizar o ângulo de visão para definir a matriz, chamamos de $\theta$ a abertura do campo de visão (FOV). Chamamos de razão de espectro a = $\frac{width}{height}$, onde ``width'' é o comprimento da tela e ``height'' é a altura da tela, e n e f são os planos de recorte próximo (near) e distante (far). +\\~\\ +Então: + +\[ +\frac{t}{n} = \tan(\frac{\theta}{2}) +\] +\[ +t = n\tan(\frac{\theta}{2}) +\] + +E por simetria b = -t + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\linewidth]{imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png} + \caption{Ângulo de abertura do campo de visão vertical. } +\end{figure} + +\[ +r=t\frac{w}{h} = t \cdot a +\implies +M_{persp} = +\begin{bmatrix} + \frac{1}{a \cdot \tan(\frac{\theta}{2})} & 0 & 0 & 0 \\ + 0 & \frac{1}{\tan(\frac{\theta}{2})} & 0 & 0 \\ + 0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n} \\ + 0 & 0 & -1 & 0 +\end{bmatrix} +\] + +\noindent +No entanto, nossas coordenadas x e y agora se encontram no intervalo [-1,1], precisamos transformar esse intervalo no intervalo respectivo da nossa tela, ou seja, precisamos multiplicar as coordenadas x e y por metade da largura e metade altura da tela, respectivamente. Isso é feito facilmente com a matriz a seguir: + +\[ +M_{vport} = +\begin{bmatrix} + \frac{w}{2} & 0 & 0 & 0 \\ + 0 & \frac{h}{2} & 0 & 0 \\ + 0 & 0 & 1 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\] + +\section{Compondo as Transformações} + +Agora já temos todas transformações necessárias para rotacionar, escalar e posicionar qualquer objeto tridimensional em nossa cena, bem como escolher uma posição e orientação para nossa câmera, além de termos implementado uma projeção perspectiva para visualização mais fiel à realidade. Vamos ver agora como a composição das matrizes se parece agora. +\\~\\ +Recapitulando, primeiros encontramos as coordenadas dos objetos no mundo, aplicando as seguintes transformações: + +\boldmath{} +\[ +M_{obj} = T \cdot R \cdot S +\] +\unboldmath{} + +\noindent +Onde: +\\[\baselineskip] +$T = +\begin{bmatrix} + 1 & 0 & 0 & T_{x} \\ + 0 & 1 & 0 & T_{y} \\ + 0 & 0 & 1 & T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix}$ +\\[\baselineskip] +$R = +\begin{bmatrix} + \cos(\psi) & -\sin(\psi) & 0 & 0 \\ + \sin(\psi) & \cos(\psi) & 0 & 0 \\ + 0 & 0 & 1 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\begin{bmatrix} + \cos(\theta) & 0 & \sin(\theta) & 0 \\ + 0 & 1 & 0 & 0 \\ + -\sin(\theta) & 0 & \cos(\theta) & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +\begin{bmatrix} + 1 & 0 & 0 & 0 \\ + 0 & \cos(\phi) & \sin(\phi) & 0 \\ + 0 & -\sin(\phi) & \cos(\phi) & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +$ +\\[\baselineskip] +$ S = +\begin{bmatrix} + S_{x} & 0 & 0 & 0 \\ + 0 & S_{y} & 0 & 0 \\ + 0 & 0 & S{z} & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +$ +\\[\baselineskip] +A transformação que nos leva das coordenadas relativas ao mundo para as coordenadas relativas à câmera é dada por: + +\boldmath{} +\[ +M_{cam}^{-1} = R_{cam}^T T_{cam}^{-1} +\] +\unboldmath{} + +\noindent +Onde: +\\[\baselineskip] +$R_{cam}^T = +\begin{bmatrix} + u_1 & u_2 & u_3 & 0 \\ + v_1 & v_2 & v_3 & 0 \\ + n_1 & n_2 & n_3 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} +$ +\\[\baselineskip] +$T_{cam}^{-1} = +\begin{bmatrix} + 1 & 0 & 0 & -T_{x} \\ + 0 & 1 & 0 & -T_{y} \\ + 0 & 0 & 1 & -T_{z} \\ + 0 & 0 & 0 & 1 \\ +\end{bmatrix} +$ +\\[\baselineskip] +A transformação que cria a perspectiva e a ajusta o tamanho da tela é dada por: + +\boldmath{} +\[ +M_{view} = M_{vport} \cdot M_{persp} +\] +\unboldmath{} + +\noindent +Onde: +\\[\baselineskip] +$M_{vport} = +\begin{bmatrix} + \frac{w}{2} & 0 & 0 & 0 \\ + 0 & \frac{h}{2} & 0 & 0 \\ + 0 & 0 & 1 & 0 \\ + 0 & 0 & 0 & 1 +\end{bmatrix} $ +\\[\baselineskip] +$M_{persp} = +\begin{bmatrix} + \frac{1}{a \cdot \tan(\frac{\theta}{2})} & 0 & 0 & 0 \\ + 0 & \frac{1}{\tan(\frac{\theta}{2})} & 0 & 0 \\ + 0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n} \\ + 0 & 0 & -1 & 0 +\end{bmatrix}$ +\\[\baselineskip] +Nosso vetores agora são dados por: +\noindent +\boldmath{} +$ +\begin{bmatrix} +x_{view} \\ +y_{view} \\ +z_{view} \\ +w_{view} +\end{bmatrix} += +M_{view} \cdot M_{cam}^{-1} \cdot M_{obj} \cdot +\begin{bmatrix} +x_{obj} \\ +y_{obj} \\ +z_{obj} \\ +1 +\end{bmatrix} +$ +\unboldmath{} +\\[\baselineskip] +E por fim, para obter a posição X e Y no espaço da tela, fazemos a transformação não linear de dividir por W (perspective divide): +\\[\baselineskip] +$ +\begin{bmatrix} +x_{screen} \\ +y_{screen} \\ +z' \\ +1 +\end{bmatrix} += +\frac{1}{w_{view}} +\begin{bmatrix} + x_{view} \\ + y_{view} \\ + z_{view} \\ + w_{view} +\end{bmatrix} +$ +\\[\baselineskip] +Agora estamos prontos para exibir os nossos objetos tridimensionais na tela a partir das coordenadas $x_{screen}$ e $y_{screen}$, a coordenada $z'$ embora não seja utilizada neste trabalho, é importante para ordenar os polígonos de nossos objetos, por isso fizemos a projeção pensando em manter essa características da ordenação. + + +\phantomsection +\begin{thebibliography}{9} + + \bibitem{Lengyel2003} + Eric Lengyel, + \textit{Mathematics for 3D Game Programming and Computer Graphics}, + 2nd edition, + Cengage Learning, 2003. + + \bibitem{MCTA008-17} + Bruno Dorta, + \textit{Computação Gráfica}, + 2017, + \url{https://www.brunodorta.com.br/cg/}, + Accessed Nov. 2023. + + \bibitem{3DGraphicsPlaylist} + YouTube, + \textit{3D Graphics Playlist}, + \url{https://www.youtube.com/playlist?list=PLYnrabpSIM-97qGEeOWnxZBqvR_zwjWoo}, + Accessed Nov. 2023. + +\end{thebibliography} + + +\end{document} + + diff --git a/relatorio/tex-build/relatorio.aux b/relatorio/tex-build/relatorio.aux new file mode 100644 index 0000000..3739a3d --- /dev/null +++ b/relatorio/tex-build/relatorio.aux @@ -0,0 +1,61 @@ +\relax +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\catcode `"\active +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{portuguese}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introdução}{2}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Motivação}{2}{subsection.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Metodologia}{2}{subsection.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Espaço do Mundo (World Space)}{2}{subsection.1.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Espaço do Objeto (Local Space)}{3}{subsection.1.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Espaço da Câmera (View Space)}{3}{subsection.1.5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Transformações Gerais}{3}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Transformação de Escala}{4}{subsection.2.1}\protected@file@percent } +\newlabel{scale_transform}{{2.1}{4}{Transformação de Escala}{subsection.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Transformação de Rotação/Orientação}{4}{subsection.2.2}\protected@file@percent } +\newlabel{rotation_transform}{{2.2}{4}{Transformação de Rotação/Orientação}{subsection.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Transformação de Translação}{4}{subsection.2.3}\protected@file@percent } +\newlabel{translation_transform}{{2.3}{4}{Transformação de Translação}{subsection.2.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Objetos}{5}{section.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Escala no Objeto}{5}{subsection.3.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Exemplo de escala em um objeto}}{5}{figure.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Rotacionando o Objeto}{5}{subsection.3.2}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Exemplo de rotação em um objeto}}{5}{figure.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Transladando o Objeto}{6}{subsection.3.3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Exemplo de translação em um objeto}}{6}{figure.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Câmera}{6}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Orientação da Câmera}{6}{subsection.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Câmera LookAt}{6}{subsubsection.4.1.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Representação dos Espaços do Mundo e Câmera}}{7}{figure.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Posição da Câmera}{7}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Transformação Final da Câmera}{7}{subsection.4.3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Mudança do espaço da câmera para o espaço do mundo}}{8}{figure.5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Espaço do Mundo para Espaço da Câmera}{8}{section.5}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Espaço da câmera em relação ao espaço do mundo}}{8}{figure.6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Projeção}{9}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Projeção perspectiva}{9}{subsection.6.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Volume de visão para a projeção perspectiva}}{9}{figure.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.1}Contrução da Matriz de perspectiva}{9}{subsubsection.6.1.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Volume de visão visto de cima}}{10}{figure.8}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Objetos dentro do volume de visão antes e após a normalização.}}{11}{figure.9}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Objetos em NDC e correspondentes no espaço da tela.}}{12}{figure.10}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Ângulo de abertura do campo de visão vertical. }}{13}{figure.11}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Compondo as Transformações}{13}{section.7}\protected@file@percent } +\bibcite{Lengyel2003}{1} +\bibcite{MCTA008-17}{2} +\bibcite{3DGraphicsPlaylist}{3} +\gdef \@abspage@last{16} diff --git a/relatorio/tex-build/relatorio.fdb_latexmk b/relatorio/tex-build/relatorio.fdb_latexmk new file mode 100644 index 0000000..8559da9 --- /dev/null +++ b/relatorio/tex-build/relatorio.fdb_latexmk @@ -0,0 +1,146 @@ +# Fdb version 4 +["pdflatex"] 1700569192 "/home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio/relatorio.tex" "tex-build/relatorio.pdf" "relatorio" 1700569192 0 + "/home/vitor/.texlive/texmf-var/fonts/pk/ljfour/jknappen/ec/tcrm1200.600pk" 1700077181 14040 a63ad31fd48dca004722b09bed5af86b "" + "/home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio/relatorio.tex" 1700569191 28740 44382f109057d0b5ebf17c0acaa612ff "" + "/usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm" 1689853683 1536 74b7293ec3713bb7fdca8dd1bd1f469c "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy6.tfm" 1689853683 1124 14ccf5552bc7f77ca02a8a402bea8bfb "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy8.tfm" 1689853683 1120 200be8b775682cdf80acad4be5ef57e4 "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1689853683 1004 54797486969f23fa377b128694d548df "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1689853683 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib6.tfm" 1689853683 1516 a3bf6a5e7ec4401b1f52092dfaaed242 "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib8.tfm" 1689853683 1528 dab402b9d3774ca98baa037071cee7ae "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1689853683 916 f87d7c45f9c908e672703b83b72241a3 "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1689853683 928 2dc8d444221b7a635bb58038579b861a "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1689853683 908 2921f8a10601f252058503cc6570e581 "" + "/usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1689853683 940 228d6584342e91276bf566bcf9716b83 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm" 1689853683 1116 4e6ba9d7914baa6482fd69f67d126380 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm" 1689853683 1324 c910af8c371558dc20f2d7822f66fe64 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbx6.tfm" 1689853683 1344 8a0be4fe4d376203000810ad4dc81558 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbx8.tfm" 1689853683 1332 1fde11373e221473104d6cc5993f046e "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1689853683 992 662f679a0b3d2d53c1b94050fdaa3f50 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1689853683 1524 4414a8315f39513458b80dfc63bff03a "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1689853683 1512 f21f83efb36853c0b70002322c1ab3ad "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1689853683 1520 eccf95517727cb11801f4f1aee3a21b4 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm" 1689853683 1524 554068197b70979a55370e6c6495f441 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1689853683 1288 655e228510b4c2a1abe905c368440826 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1689853683 1292 296a67155bdbfc32aa9c636f21e91433 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1689853683 1300 b62933e007d01cfd073f79b963c01526 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1689853683 1292 21c1c5bfeaebccffdb478fd231a0997d "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1689853683 1124 6c73e740cf17375f03eec0ee63599741 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1689853683 1116 933a60c408fc0a863a92debe84b2d294 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1689853683 1120 8b7d695260f3cff42e636090a8002094 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmti12.tfm" 1689853683 1484 ed72f8f5cf654cda15ecc8e32bfcbee5 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmtt12.tfm" 1689853683 772 9a936b7f5e2ff0557fce0f62822f0bbf "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbsy10.pfb" 1689853683 34793 87a84b12f86dfd35a1cf1bb142b75602 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb" 1689853683 32080 340ef9bf63678554ee606688e7b5339d "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx8.pfb" 1689853683 32166 b0c356b15f19587482a9217ce1d8fa67 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb" 1689853683 30251 6afa5cb1d0204815a708a080681d4674 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb" 1689853683 36741 fa121aac0049305630cf160b86157ee4 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb" 1689853683 37166 8ab3487cbe3ab49ebce74c29ea2418db "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb" 1689853683 35469 70d41d2b9ea31d5d813066df7c99281c "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmib10.pfb" 1689853683 36912 b448ef9ad9d7228ec3c6e71005136d55 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb" 1689853683 32722 d7379af29a190c3f453aba36302ff5a9 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb" 1689853683 32734 69e00a6b65cedb993666e42eedb3d48f "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb" 1689853683 32726 0a1aea6fcd6468ee2cf64d891f5c43c8 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1689853683 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb" 1689853683 32626 4f5c1b83753b1dd3a97d1b399a005b4b "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb" 1689853683 36118 fad905eba93cff5bce1e185fe980a177 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb" 1689853683 24252 1e4e051947e12dfb50fee0b7f4e26e3a "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmbsy8.pfb" 1689853683 29407 8c6dfc0f2d83bfc4807c3b1dc90ef23e "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmmib6.pfb" 1689853683 38151 b99966dad75d57fae7995e2606557fa7 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmmib8.pfb" 1689853683 35479 892d27442ef9ef29ce1ee57aa0e8a665 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb" 1689853683 34694 ad62b13721ee8eda1dcc8993c8bd7041 "" + "/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1689853683 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1689853683 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf" 1689853683 6599 898431e984e4e8b6d8aa6cdcb036f8db "" + "/usr/share/texmf-dist/tex/generic/babel/babel.sty" 1689853683 151363 1f5971af3ef874d432e8fb43e0edb71d "" + "/usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex" 1689853683 336 8eaf7ae354112e82487b61928329a893 "" + "/usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini" 1689853683 4361 cc15ff77a7aa8e90af17577ad7ed45bf "" + "/usr/share/texmf-dist/tex/generic/babel/txtbabel.def" 1689853683 6927 64b53e78feab932ab94f892bb5a5facf "" + "/usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1689853683 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texmf-dist/tex/generic/bitset/bitset.sty" 1689853683 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1689853683 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1689853683 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texmf-dist/tex/generic/iftex/iftex.sty" 1689853683 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a "" + "/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty" 1689853683 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1689853683 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty" 1689853683 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1689853683 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1689853683 17859 4409f8f50cd365c68e684407e5350b1b "" + "/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1689853683 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1689853683 20089 80423eac55aa175305d35b49e04fe23b "" + "/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1689853683 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1689853683 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd" 1689853683 961 6518c6525a34feb5e8250ffa91731cff "" + "/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd" 1689853683 961 d02606146ba5601b5645f987c92e6193 "" + "/usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1689853683 2222 78b930a5a6e3dc2ac69b78c2057b94d7 "" + "/usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty" 1689853683 4173 c989ee3ced31418e3593916ab26c793a "" + "/usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty" 1689853683 88393 1adf6fa3f245270d06e3d4f8910f7fc5 "" + "/usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty" 1689853683 4474 f04cd1cc7bd76eb033e6fb12eb6a0d77 "" + "/usr/share/texmf-dist/tex/latex/amsmath/amstext.sty" 1689853683 2444 70065bddd85997dc1fd0bb7ae634e5fa "" + "/usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty" 1689853683 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty" 1689853683 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texmf-dist/tex/latex/base/article.cls" 1689853683 20144 d5ecf0a5140c8d8d8b72cbe86e320eff "" + "/usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1689853683 3052 30236f0cc243a8651b82240dfd2e8b9d "" + "/usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1689853683 2462 8ce5f9a9c63002f2c1af03c262cf29af "" + "/usr/share/texmf-dist/tex/latex/base/size12.clo" 1689853683 8449 c314623021fbddd0180c05345324933c "" + "/usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty" 1689853683 51697 f8f08183cd2080d9d18a41432d651dfb "" + "/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1689853683 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texmf-dist/tex/latex/float/float.sty" 1689853683 6749 16d2656a1984957e674b149555f1ea1d "" + "/usr/share/texmf-dist/tex/latex/geometry/geometry.sty" 1689853683 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1689853683 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1689853683 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def" 1689853683 19448 1e988b341dda20961a6b931bcde55519 "" + "/usr/share/texmf-dist/tex/latex/graphics/color.sty" 1689853683 7233 e46ce9241d2b2ca2a78155475fdd557a "" + "/usr/share/texmf-dist/tex/latex/graphics/graphics.sty" 1689853683 18387 8f900a490197ebaf93c02ae9476d4b09 "" + "/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty" 1689853683 8010 a8d949cbdbc5c983593827c9eec252e1 "" + "/usr/share/texmf-dist/tex/latex/graphics/keyval.sty" 1689853683 2671 7e67d78d9b88c845599a85b2d41f2e39 "" + "/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1689853683 2885 9c645d672ae17285bba324998918efd8 "" + "/usr/share/texmf-dist/tex/latex/graphics/trig.sty" 1689853683 4023 293ea1c16429fc0c4cf605f4da1791a9 "" + "/usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty" 1689853683 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def" 1689853683 48272 99ede602a8ace626d8ed02f058a4bf8e "" + "/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty" 1689853683 223129 4edf043af471f3251c66e432cfa22987 "" + "/usr/share/texmf-dist/tex/latex/hyperref/nameref.sty" 1689853683 12947 1ce831528e963a8568de1f4d67cfb982 "" + "/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def" 1689853683 14249 d947c5c09f3af04ae2f37fc11c7ac2f6 "" + "/usr/share/texmf-dist/tex/latex/hyperref/puenc.def" 1689853683 117125 aa115cac3914abcf3769f370e6325117 "" + "/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1689853683 22555 6d8e155cfef6d82c3d5c742fea7c992e "" + "/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1689853683 13815 760b0c02f691ea230f5359c4e1de23a7 "" + "/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1689853683 30429 213676d4c7327a21d91ddaed900e7b81 "" + "/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1689853683 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1689853683 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texmf-dist/tex/latex/listings/listings.cfg" 1689853683 1829 d8258b7d94f5f955e70c623e525f9f45 "" + "/usr/share/texmf-dist/tex/latex/listings/listings.sty" 1689853683 80947 75a96bb4c9f40ae31d54a01d924df2ff "" + "/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty" 1689853683 77021 d05e9115c67855816136d82929db8892 "" + "/usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty" 1689853683 9903 09f80fdf0b87d68a09f505be77f1e9d0 "" + "/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1689853683 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1689853683 9714 ba3194bd52c8499b3f1e3eb91d409670 "" + "/usr/share/texmf-dist/tex/latex/url/url.sty" 1689853683 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty" 1689853683 56148 51a9a8571c07b9921892ae11063ae853 "" + "/usr/share/texmf-dist/web2c/texmf.cnf" 1689853683 40684 9b9ec0b4288972636ff6a3b9c4238efc "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1693579779 29871 18e04762487e39c9af1b8df78fcf191a "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1695150051 6768047 fe569a4e8216e86ff916f2b6315ab73f "" + "imgs/07_glspace7.png" 1700534728 83337 4ae3c7beda79cca26633e19ba981d953 "" + "imgs/07_lookat1.png" 1700534728 54078 5b4cdc59d962346be940ed237c757457 "" + "imgs/07_lookat7.png" 1700534728 49140 ffd834a40ec02690b3010e7c3dfaad5b "" + "imgs/07_rotation5.png" 1700534728 86139 672d16f1c0407280e43698b649767dd9 "" + "imgs/07_scaling4.png" 1700534728 90830 39d34a0df77a4b6e0421ed8bccfe227d "" + "imgs/07_translation1.png" 1700534728 100046 697c44ab51d41a66995544b6723de8be "" + "imgs/08_projection7.png" 1700534728 30589 3661a2ba3ac9b89e269744d28c687e0c "" + "imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png" 1700534728 42174 b6096670d83a0c9fd980760016eb5ea8 "" + "imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png" 1700534728 15945 896896ae2f39dd4d5daeead86a46b449 "" + "imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png" 1700534728 29895 8e2f59a9023cb8e1c34d844c8a09fb8b "" + "imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png" 1700534728 50681 3fdc35f22000c9143f02b9d2cfaa48d9 "" + "imgs/emap.jpg" 1700534728 54857 22891805d591cf7ee4b3e7ad782fd4b8 "" + "imgs/projection02.png" 1700534728 16754 af5cfe098bbd4d62bfe0322f463ef79f "" + "importantstuff.sty" 1700534728 1250 8610b10fb50bc24af168cd1eb9ba5e7d "" + "relatorio.tex" 1700569191 28740 44382f109057d0b5ebf17c0acaa612ff "" + "tex-build/relatorio.aux" 1700569192 5801 293dce9c55c0dfac2fb30dc08c4ad90e "pdflatex" + "tex-build/relatorio.out" 1700569192 4088 148c490a1a72cb79749473a2f4bbfb5e "pdflatex" + "tex-build/relatorio.toc" 1700569192 2111 561053e2da58800da9d36e1f93d05986 "pdflatex" + (generated) + "tex-build/relatorio.aux" + "tex-build/relatorio.log" + "tex-build/relatorio.out" + "tex-build/relatorio.pdf" + "tex-build/relatorio.toc" + (rewritten before read) diff --git a/relatorio/tex-build/relatorio.fls b/relatorio/tex-build/relatorio.fls new file mode 100644 index 0000000..8d3d31b --- /dev/null +++ b/relatorio/tex-build/relatorio.fls @@ -0,0 +1,763 @@ +PWD /home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio +INPUT /usr/share/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT /home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio/relatorio.tex +OUTPUT tex-build/relatorio.log +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT ./importantstuff.sty +INPUT ./importantstuff.sty +INPUT importantstuff.sty +INPUT ./importantstuff.sty +INPUT ./importantstuff.sty +INPUT ./importantstuff.sty +INPUT ./importantstuff.sty +INPUT ./importantstuff.sty +INPUT importantstuff.sty +INPUT ./importantstuff.sty +INPUT importantstuff.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/txtbabel.def +INPUT /usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT tex-build/relatorio.aux +INPUT tex-build/relatorio.aux +INPUT tex-build/relatorio.aux +OUTPUT tex-build/relatorio.aux +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +OUTPUT tex-build/relatorio.pdf +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +OUTPUT tex-build/relatorio.out +INPUT ./imgs/emap.jpg +INPUT ./imgs/emap.jpg +INPUT imgs/emap.jpg +INPUT ./imgs/emap.jpg +INPUT ./imgs/emap.jpg +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT tex-build/relatorio.toc +INPUT tex-build/relatorio.toc +INPUT tex-build/relatorio.toc +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmex10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +OUTPUT tex-build/relatorio.toc +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT ./imgs/07_scaling4.png +INPUT ./imgs/07_scaling4.png +INPUT imgs/07_scaling4.png +INPUT ./imgs/07_scaling4.png +INPUT ./imgs/07_scaling4.png +INPUT ./imgs/07_rotation5.png +INPUT ./imgs/07_rotation5.png +INPUT imgs/07_rotation5.png +INPUT ./imgs/07_rotation5.png +INPUT ./imgs/07_rotation5.png +INPUT ./imgs/07_translation1.png +INPUT ./imgs/07_translation1.png +INPUT imgs/07_translation1.png +INPUT ./imgs/07_translation1.png +INPUT ./imgs/07_translation1.png +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy6.tfm +INPUT ./imgs/07_lookat1.png +INPUT ./imgs/07_lookat1.png +INPUT imgs/07_lookat1.png +INPUT ./imgs/07_lookat1.png +INPUT ./imgs/07_lookat1.png +INPUT ./imgs/07_lookat7.png +INPUT ./imgs/07_lookat7.png +INPUT imgs/07_lookat7.png +INPUT ./imgs/07_lookat7.png +INPUT ./imgs/07_lookat7.png +INPUT ./imgs/07_glspace7.png +INPUT ./imgs/07_glspace7.png +INPUT imgs/07_glspace7.png +INPUT ./imgs/07_glspace7.png +INPUT ./imgs/07_glspace7.png +INPUT ./imgs/08_projection7.png +INPUT ./imgs/08_projection7.png +INPUT imgs/08_projection7.png +INPUT ./imgs/08_projection7.png +INPUT ./imgs/08_projection7.png +INPUT ./imgs/projection02.png +INPUT ./imgs/projection02.png +INPUT imgs/projection02.png +INPUT ./imgs/projection02.png +INPUT ./imgs/projection02.png +INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm +INPUT ./imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT ./imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmti12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmtt12.tfm +INPUT tex-build/relatorio.aux +INPUT tex-build/relatorio.out +INPUT tex-build/relatorio.out +INPUT /home/vitor/.texlive/texmf-var/fonts/pk/ljfour/jknappen/ec/tcrm1200.600pk +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbsy10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmbsy8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmib10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmmib6.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmmib8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb diff --git a/relatorio/tex-build/relatorio.log b/relatorio/tex-build/relatorio.log new file mode 100644 index 0000000..8515bec --- /dev/null +++ b/relatorio/tex-build/relatorio.log @@ -0,0 +1,551 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Arch Linux) (preloaded format=pdflatex 2023.9.19) 21 NOV 2023 09:19 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**"/home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio/relatorio.tex" +(/home/vitor/Documents/Studies/FGV/Álgebra Linear/Trabalho/3D renderer/relatorio/relatorio.tex +LaTeX2e <2022-11-01> patch level 1 +L3 programming layer <2023-02-22> (/usr/share/texmf-dist/tex/latex/base/article.cls +Document Class: article 2022/07/02 v1.4n Standard LaTeX document class +(/usr/share/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2022/07/02 v1.4n Standard LaTeX file (size option) +) +\c@part=\count185 +\c@section=\count186 +\c@subsection=\count187 +\c@subsubsection=\count188 +\c@paragraph=\count189 +\c@subparagraph=\count190 +\c@figure=\count191 +\c@table=\count192 +\abovecaptionskip=\skip48 +\belowcaptionskip=\skip49 +\bibindent=\dimen140 +) (./importantstuff.sty +Package: importantstuff + (/usr/share/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + (/usr/share/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks16 +) (/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. + (/usr/share/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +)) +\Gm@cnth=\count193 +\Gm@cntv=\count194 +\c@Gm@tempcnt=\count195 +\Gm@bindingoffset=\dimen141 +\Gm@wd@mp=\dimen142 +\Gm@odd@mp=\dimen143 +\Gm@even@mp=\dimen144 +\Gm@layoutwidth=\dimen145 +\Gm@layoutheight=\dimen146 +\Gm@layouthoffset=\dimen147 +\Gm@layoutvoffset=\dimen148 +\Gm@dimlist=\toks17 +) (/usr/share/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2023/02/13 3.86 The Babel package +\babel@savecnt=\count196 +\U@D=\dimen149 +\l@unhyphenated=\language3 + (/usr/share/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count197 + (/usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +Language: portuges 2021/07/09 v1.2t Portuguese support from the babel system + + +Package babel Warning: No hyphenation patterns were preloaded for +(babel) the language 'Portuguese' into the format. +(babel) Please, configure your TeX system to add them and +(babel) rebuild the format. Now I will use the patterns +(babel) preloaded for \language=0 instead on input line 53. + +Package babel Info: Hyphen rules for 'portuges' set to \l@english +(babel) (\language0). Reported on input line 54. +Package babel Info: Making " an active character on input line 143. +)) (/usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +Package babel Info: Importing font and identification data for portuguese +(babel) from babel-pt.ini. Reported on input line 11. +) (/usr/share/texmf-dist/tex/latex/ragged2e/ragged2e.sty +Package: ragged2e 2023/02/25 v3.4 ragged2e Package +\CenteringLeftskip=\skip50 +\RaggedLeftLeftskip=\skip51 +\RaggedRightLeftskip=\skip52 +\CenteringRightskip=\skip53 +\RaggedLeftRightskip=\skip54 +\RaggedRightRightskip=\skip55 +\CenteringParfillskip=\skip56 +\RaggedLeftParfillskip=\skip57 +\RaggedRightParfillskip=\skip58 +\JustifyingParfillskip=\skip59 +\CenteringParindent=\skip60 +\RaggedLeftParindent=\skip61 +\RaggedRightParindent=\skip62 +\JustifyingParindent=\skip63 +) (/usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2019/06/20 v3.9 Customized lists +\labelindent=\skip64 +\enit@outerparindent=\dimen150 +\enit@toks=\toks18 +\enit@inbox=\box51 +\enit@count@id=\count198 +\enitdp@description=\count199 +) (/usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2022/04/08 v2.17n AMS math features +\@mathmargin=\skip65 + +For additional information on amsmath, use the `?' option. +(/usr/share/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text + (/usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks19 +\ex@=\dimen151 +)) (/usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen152 +) (/usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2022/04/08 v2.04 operator names +) +\inf@bad=\count266 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count267 +\leftroot@=\count268 +LaTeX Info: Redefining \overline on input line 399. +LaTeX Info: Redefining \colon on input line 410. +\classnum@=\count269 +\DOTSCASE@=\count270 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box52 +\strutbox@=\box53 +LaTeX Info: Redefining \big on input line 722. +LaTeX Info: Redefining \Big on input line 723. +LaTeX Info: Redefining \bigg on input line 724. +LaTeX Info: Redefining \Bigg on input line 725. +\big@size=\dimen153 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count271 +LaTeX Info: Redefining \bmod on input line 905. +LaTeX Info: Redefining \pmod on input line 910. +LaTeX Info: Redefining \smash on input line 940. +LaTeX Info: Redefining \relbar on input line 970. +LaTeX Info: Redefining \Relbar on input line 971. +\c@MaxMatrixCols=\count272 +\dotsspace@=\muskip16 +\c@parentequation=\count273 +\dspbrk@lvl=\count274 +\tag@help=\toks20 +\row@=\count275 +\column@=\count276 +\maxfields@=\count277 +\andhelp@=\toks21 +\eqnshift@=\dimen154 +\alignsep@=\dimen155 +\tagshift@=\dimen156 +\tagwidth@=\dimen157 +\totwidth@=\dimen158 +\lineht@=\dimen159 +\@envbody=\toks22 +\multlinegap=\skip66 +\multlinetaggap=\skip67 +\mathdisplay@stack=\toks23 +LaTeX Info: Redefining \[ on input line 2953. +LaTeX Info: Redefining \] on input line 2954. +) (/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) (/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. + (/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen160 +\Gin@req@width=\dimen161 +) (/usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +) (/usr/share/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count278 +\float@exts=\toks24 +\float@box=\box54 +\@float@everytoks=\toks25 +\@floatcapt=\box55 +) (/usr/share/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count279 +\lst@gtempboxa=\box56 +\lst@token=\toks26 +\lst@length=\count280 +\lst@currlwidth=\dimen162 +\lst@column=\count281 +\lst@pos=\count282 +\lst@lostspace=\dimen163 +\lst@width=\dimen164 +\lst@newlines=\count283 +\lst@lineno=\count284 +\lst@maxwidth=\dimen165 + (/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2023/02/27 1.9 (Carsten Heinz) +\c@lstnumber=\count285 +\lst@skipnumbers=\count286 +\lst@framebox=\box57 +) (/usr/share/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2023/02/27 1.9 listings configuration +)) +Package: listings 2023/02/27 1.9 (Carsten Heinz) + (/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2022/06/12 v2.14 LaTeX color extensions (UK) + (/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 227. + (/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1353. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1357. +Package xcolor Info: Model `RGB' extended on input line 1369. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1371. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1372. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1373. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1374. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1375. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1376. +) (/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2023-02-07 v7.00v Hypertext links for LaTeX + (/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) (/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) + (/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) (/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) +) (/usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) (/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) (/usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) (/usr/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) (/usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) (/usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2022-05-17 v2.50 Cross-referencing by name of section + (/usr/share/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) (/usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) + (/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) +)) +\c@section@level=\count287 +) +\@linkdim=\dimen166 +\Hy@linkcounter=\count288 +\Hy@pagecounter=\count289 + (/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2023-02-07 v7.00v Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) (/usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) (/usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count290 + (/usr/share/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2023-02-07 v7.00v Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Hyper figures OFF on input line 4177. +Package hyperref Info: Link nesting OFF on input line 4182. +Package hyperref Info: Hyper index ON on input line 4185. +Package hyperref Info: Plain pages OFF on input line 4192. +Package hyperref Info: Backreferencing OFF on input line 4197. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4425. +\c@Hy@tempcnt=\count291 + (/usr/share/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip17 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4763. +\XeTeXLinkMargin=\dimen167 + (/usr/share/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + (/usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) +)) +\Fld@menulength=\count292 +\Field@Width=\dimen168 +\Fld@charsize=\dimen169 +Package hyperref Info: Hyper figures OFF on input line 6042. +Package hyperref Info: Link nesting OFF on input line 6047. +Package hyperref Info: Hyper index ON on input line 6050. +Package hyperref Info: backreferencing OFF on input line 6057. +Package hyperref Info: Link coloring OFF on input line 6062. +Package hyperref Info: Link coloring with OCG OFF on input line 6067. +Package hyperref Info: PDF/A mode OFF on input line 6072. + (/usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count293 +\c@Item=\count294 +\c@Hfootnote=\count295 +) +Package hyperref Info: Driver (autodetected): hpdftex. + (/usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2023-02-07 v7.00v Hyperref driver for pdfTeX + (/usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package +with kernel methods +) +\Fld@listcount=\count296 +\c@bookmark@seq@number=\count297 + (/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) + (/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. +) +\Hy@SectionHShift=\skip68 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 46. +) (/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2023-01-16 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count298 +\l__pdf_internal_box=\box58 +) (tex-build/relatorio.aux) +\openout1 = `relatorio.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: letterpaper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(85.35826pt, 443.57848pt, 85.35826pt) +* v-part:(T,H,B)=(56.9055pt, 681.15898pt, 56.9055pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=443.57848pt +* \textheight=681.15898pt +* \oddsidemargin=13.08827pt +* \evensidemargin=13.08827pt +* \topmargin=-52.36449pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=12.0pt +* \footskip=30.0pt +* \marginparwidth=49.79231pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.8pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count299 +\scratchdimen=\dimen170 +\scratchbox=\box59 +\nofMPsegments=\count300 +\nofMParguments=\count301 +\everyMPshowfont=\toks27 +\MPscratchCnt=\count302 +\MPscratchDim=\dimen171 +\MPnumerator=\count303 +\makeMPintoPDFobject=\count304 +\everyMPtoPDFconversion=\toks28 +) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 485. + (/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live +)) +\c@lstlisting=\count305 +Package hyperref Info: Link coloring ON on input line 12. + (tex-build/relatorio.out) (tex-build/relatorio.out) +\@outlinefile=\write3 +\openout3 = `relatorio.out'. + + +File: imgs/emap.jpg Graphic file (type jpg) + +Package pdftex.def Info: imgs/emap.jpg used on input line 18. +(pdftex.def) Requested size: 256.0748pt x 83.76672pt. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./imgs/emap.jpg>] (tex-build/relatorio.toc +LaTeX Font Info: Trying to load font information for U+msa on input line 3. + (/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 3. + (/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +)) +\tf@toc=\write4 +\openout4 = `relatorio.toc'. + + +pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored + + \relax +l.40 + [1] [2] [3] [4] + +File: imgs/07_scaling4.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_scaling4.png used on input line 226. +(pdftex.def) Requested size: 266.14978pt x 111.42656pt. + +File: imgs/07_rotation5.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_rotation5.png used on input line 236. +(pdftex.def) Requested size: 266.14978pt x 111.42656pt. + +File: imgs/07_translation1.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_translation1.png used on input line 246. +(pdftex.def) Requested size: 266.14978pt x 111.55923pt. + [5 <./imgs/07_scaling4.png> <./imgs/07_rotation5.png>] + +File: imgs/07_lookat1.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_lookat1.png used on input line 282. +(pdftex.def) Requested size: 266.14978pt x 152.34875pt. + [6 <./imgs/07_translation1.png>] +Underfull \hbox (badness 10000) in paragraph at lines 286--291 + + [] + + +File: imgs/07_lookat7.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_lookat7.png used on input line 346. +(pdftex.def) Requested size: 266.14978pt x 152.35564pt. +[7 <./imgs/07_lookat1.png>] + +File: imgs/07_glspace7.png Graphic file (type png) + +Package pdftex.def Info: imgs/07_glspace7.png used on input line 356. +(pdftex.def) Requested size: 266.14978pt x 163.23944pt. + [8 <./imgs/07_lookat7.png> <./imgs/07_glspace7.png>] + +File: imgs/08_projection7.png Graphic file (type png) + +Package pdftex.def Info: imgs/08_projection7.png used on input line 408. +(pdftex.def) Requested size: 266.14978pt x 146.10088pt. + +File: imgs/projection02.png Graphic file (type png) + +Package pdftex.def Info: imgs/projection02.png used on input line 421. +(pdftex.def) Requested size: 266.14978pt x 213.28424pt. + [9 <./imgs/08_projection7.png>] + +File: imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png Graphic file (type png) + +Package pdftex.def Info: imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png used on input line 479. +(pdftex.def) Requested size: 200.14986pt x 133.07489pt. + +File: imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png Graphic file (type png) + +Package pdftex.def Info: imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png used on input line 480. +(pdftex.def) Requested size: 134.37651pt x 133.07489pt. + [10 <./imgs/projection02.png>] [11 <./imgs/Screenshot 2023-11-20 at 15-40-45 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png> <./imgs/Screenshot 2023-11-20 at 22-31-11 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png>] + +File: imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png Graphic file (type png) + +Package pdftex.def Info: imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png used on input line 574. +(pdftex.def) Requested size: 355.88866pt x 177.42868pt. + +Underfull \hbox (badness 10000) in paragraph at lines 592--595 + + [] + + +File: imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png Graphic file (type png) + +Package pdftex.def Info: imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png used on input line 607. +(pdftex.def) Requested size: 266.14978pt x 213.28424pt. +[12 <./imgs/Screenshot 2023-11-20 at 22-32-44 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png>] +Underfull \hbox (badness 10000) in paragraph at lines 638--641 + + [] + +[13 <./imgs/Screenshot 2023-11-20 at 18-58-22 8.2 Projeção perspectiva MCTA008-17 Computação Gráfica.png>] [14] +Underfull \hbox (badness 2111) in paragraph at lines 805--809 +[]\OT1/cmr/m/n/12 YouTube, \OT1/cmr/m/it/12 3D Graph-ics Playlist\OT1/cmr/m/n/12 , [][]$\OT1/cmtt/m/n/12 https : / / www . youtube . com / playlist ? list = + [] + +[15] (tex-build/relatorio.aux) +Package rerunfilecheck Info: File `relatorio.out' has not changed. +(rerunfilecheck) Checksum: 148C490A1A72CB79749473A2F4BBFB5E;4088. + ) +Here is how much of TeX's memory you used: + 12986 strings out of 477985 + 205844 string characters out of 5840058 + 1876388 words of memory out of 5000000 + 32926 multiletter control sequences out of 15000+600000 + 522371 words of font info for 68 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 90i,9n,90p,870b,478s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on tex-build/relatorio.pdf (16 pages, 735611 bytes). +PDF statistics: + 369 PDF objects out of 1000 (max. 8388607) + 284 compressed objects within 3 object streams + 66 named destinations out of 1000 (max. 500000) + 258 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/relatorio/tex-build/relatorio.out b/relatorio/tex-build/relatorio.out new file mode 100644 index 0000000..3edbfda --- /dev/null +++ b/relatorio/tex-build/relatorio.out @@ -0,0 +1,24 @@ +\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000\347\000\343\000o}{}% 1 +\BOOKMARK [2][-]{subsection.1.1}{\376\377\000M\000o\000t\000i\000v\000a\000\347\000\343\000o}{section.1}% 2 +\BOOKMARK [2][-]{subsection.1.2}{\376\377\000M\000e\000t\000o\000d\000o\000l\000o\000g\000i\000a}{section.1}% 3 +\BOOKMARK [2][-]{subsection.1.3}{\376\377\000E\000s\000p\000a\000\347\000o\000\040\000d\000o\000\040\000M\000u\000n\000d\000o\000\040\000\050\000W\000o\000r\000l\000d\000\040\000S\000p\000a\000c\000e\000\051}{section.1}% 4 +\BOOKMARK [2][-]{subsection.1.4}{\376\377\000E\000s\000p\000a\000\347\000o\000\040\000d\000o\000\040\000O\000b\000j\000e\000t\000o\000\040\000\050\000L\000o\000c\000a\000l\000\040\000S\000p\000a\000c\000e\000\051}{section.1}% 5 +\BOOKMARK [2][-]{subsection.1.5}{\376\377\000E\000s\000p\000a\000\347\000o\000\040\000d\000a\000\040\000C\000\342\000m\000e\000r\000a\000\040\000\050\000V\000i\000e\000w\000\040\000S\000p\000a\000c\000e\000\051}{section.1}% 6 +\BOOKMARK [1][-]{section.2}{\376\377\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\365\000e\000s\000\040\000G\000e\000r\000a\000i\000s}{}% 7 +\BOOKMARK [2][-]{subsection.2.1}{\376\377\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\343\000o\000\040\000d\000e\000\040\000E\000s\000c\000a\000l\000a}{section.2}% 8 +\BOOKMARK [2][-]{subsection.2.2}{\376\377\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\343\000o\000\040\000d\000e\000\040\000R\000o\000t\000a\000\347\000\343\000o\000/\000O\000r\000i\000e\000n\000t\000a\000\347\000\343\000o}{section.2}% 9 +\BOOKMARK [2][-]{subsection.2.3}{\376\377\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\343\000o\000\040\000d\000e\000\040\000T\000r\000a\000n\000s\000l\000a\000\347\000\343\000o}{section.2}% 10 +\BOOKMARK [1][-]{section.3}{\376\377\000O\000b\000j\000e\000t\000o\000s}{}% 11 +\BOOKMARK [2][-]{subsection.3.1}{\376\377\000E\000s\000c\000a\000l\000a\000\040\000n\000o\000\040\000O\000b\000j\000e\000t\000o}{section.3}% 12 +\BOOKMARK [2][-]{subsection.3.2}{\376\377\000R\000o\000t\000a\000c\000i\000o\000n\000a\000n\000d\000o\000\040\000o\000\040\000O\000b\000j\000e\000t\000o}{section.3}% 13 +\BOOKMARK [2][-]{subsection.3.3}{\376\377\000T\000r\000a\000n\000s\000l\000a\000d\000a\000n\000d\000o\000\040\000o\000\040\000O\000b\000j\000e\000t\000o}{section.3}% 14 +\BOOKMARK [1][-]{section.4}{\376\377\000C\000\342\000m\000e\000r\000a}{}% 15 +\BOOKMARK [2][-]{subsection.4.1}{\376\377\000O\000r\000i\000e\000n\000t\000a\000\347\000\343\000o\000\040\000d\000a\000\040\000C\000\342\000m\000e\000r\000a}{section.4}% 16 +\BOOKMARK [3][-]{subsubsection.4.1.1}{\376\377\000C\000\342\000m\000e\000r\000a\000\040\000L\000o\000o\000k\000A\000t}{subsection.4.1}% 17 +\BOOKMARK [2][-]{subsection.4.2}{\376\377\000P\000o\000s\000i\000\347\000\343\000o\000\040\000d\000a\000\040\000C\000\342\000m\000e\000r\000a}{section.4}% 18 +\BOOKMARK [2][-]{subsection.4.3}{\376\377\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\343\000o\000\040\000F\000i\000n\000a\000l\000\040\000d\000a\000\040\000C\000\342\000m\000e\000r\000a}{section.4}% 19 +\BOOKMARK [1][-]{section.5}{\376\377\000E\000s\000p\000a\000\347\000o\000\040\000d\000o\000\040\000M\000u\000n\000d\000o\000\040\000p\000a\000r\000a\000\040\000E\000s\000p\000a\000\347\000o\000\040\000d\000a\000\040\000C\000\342\000m\000e\000r\000a}{}% 20 +\BOOKMARK [1][-]{section.6}{\376\377\000P\000r\000o\000j\000e\000\347\000\343\000o}{}% 21 +\BOOKMARK [2][-]{subsection.6.1}{\376\377\000P\000r\000o\000j\000e\000\347\000\343\000o\000\040\000p\000e\000r\000s\000p\000e\000c\000t\000i\000v\000a}{section.6}% 22 +\BOOKMARK [3][-]{subsubsection.6.1.1}{\376\377\000C\000o\000n\000t\000r\000u\000\347\000\343\000o\000\040\000d\000a\000\040\000M\000a\000t\000r\000i\000z\000\040\000d\000e\000\040\000p\000e\000r\000s\000p\000e\000c\000t\000i\000v\000a}{subsection.6.1}% 23 +\BOOKMARK [1][-]{section.7}{\376\377\000C\000o\000m\000p\000o\000n\000d\000o\000\040\000a\000s\000\040\000T\000r\000a\000n\000s\000f\000o\000r\000m\000a\000\347\000\365\000e\000s}{}% 24 diff --git a/relatorio/tex-build/relatorio.pdf b/relatorio/tex-build/relatorio.pdf new file mode 100644 index 0000000..a9a6d6e Binary files /dev/null and b/relatorio/tex-build/relatorio.pdf differ diff --git a/relatorio/tex-build/relatorio.synctex.gz b/relatorio/tex-build/relatorio.synctex.gz new file mode 100644 index 0000000..245769c Binary files /dev/null and b/relatorio/tex-build/relatorio.synctex.gz differ diff --git a/relatorio/tex-build/relatorio.toc b/relatorio/tex-build/relatorio.toc new file mode 100644 index 0000000..46af146 --- /dev/null +++ b/relatorio/tex-build/relatorio.toc @@ -0,0 +1,25 @@ +\babel@toc {portuguese}{}\relax +\contentsline {section}{\numberline {1}Introdução}{2}{section.1}% +\contentsline {subsection}{\numberline {1.1}Motivação}{2}{subsection.1.1}% +\contentsline {subsection}{\numberline {1.2}Metodologia}{2}{subsection.1.2}% +\contentsline {subsection}{\numberline {1.3}Espaço do Mundo (World Space)}{2}{subsection.1.3}% +\contentsline {subsection}{\numberline {1.4}Espaço do Objeto (Local Space)}{3}{subsection.1.4}% +\contentsline {subsection}{\numberline {1.5}Espaço da Câmera (View Space)}{3}{subsection.1.5}% +\contentsline {section}{\numberline {2}Transformações Gerais}{3}{section.2}% +\contentsline {subsection}{\numberline {2.1}Transformação de Escala}{4}{subsection.2.1}% +\contentsline {subsection}{\numberline {2.2}Transformação de Rotação/Orientação}{4}{subsection.2.2}% +\contentsline {subsection}{\numberline {2.3}Transformação de Translação}{4}{subsection.2.3}% +\contentsline {section}{\numberline {3}Objetos}{5}{section.3}% +\contentsline {subsection}{\numberline {3.1}Escala no Objeto}{5}{subsection.3.1}% +\contentsline {subsection}{\numberline {3.2}Rotacionando o Objeto}{5}{subsection.3.2}% +\contentsline {subsection}{\numberline {3.3}Transladando o Objeto}{6}{subsection.3.3}% +\contentsline {section}{\numberline {4}Câmera}{6}{section.4}% +\contentsline {subsection}{\numberline {4.1}Orientação da Câmera}{6}{subsection.4.1}% +\contentsline {subsubsection}{\numberline {4.1.1}Câmera LookAt}{6}{subsubsection.4.1.1}% +\contentsline {subsection}{\numberline {4.2}Posição da Câmera}{7}{subsection.4.2}% +\contentsline {subsection}{\numberline {4.3}Transformação Final da Câmera}{7}{subsection.4.3}% +\contentsline {section}{\numberline {5}Espaço do Mundo para Espaço da Câmera}{8}{section.5}% +\contentsline {section}{\numberline {6}Projeção}{9}{section.6}% +\contentsline {subsection}{\numberline {6.1}Projeção perspectiva}{9}{subsection.6.1}% +\contentsline {subsubsection}{\numberline {6.1.1}Contrução da Matriz de perspectiva}{9}{subsubsection.6.1.1}% +\contentsline {section}{\numberline {7}Compondo as Transformações}{13}{section.7}% diff --git a/transforms.py b/transforms.py index 62d2c65..0da7eee 100644 --- a/transforms.py +++ b/transforms.py @@ -3,10 +3,6 @@ def rotation_x(theta): - """ - Returns a rotation matriz around the x axis - according to the specified theta - """ r_x = np.matrix(([1, 0, 0, 0], [0, cos(theta),-sin(theta), 0], [0, sin(theta), cos(theta), 0], @@ -15,10 +11,6 @@ def rotation_x(theta): return r_x def rotation_y(theta): - """ - Returns a rotation matriz around the x axis - according to the specified theta - """ r_x = np.matrix(([cos(theta), 0, -sin(theta), 0], [ 0, 1, 0, 0], [sin(theta), 0, cos(theta), 0], @@ -27,10 +19,6 @@ def rotation_y(theta): return r_x def rotation_z(theta): - """ - Returns a rotation matriz around the x axis - according to the specified theta - """ r_x = np.matrix(([cos(theta),-sin(theta), 0, 0], [sin(theta), cos(theta), 0, 0], [ 0, 0, 1, 0], @@ -39,10 +27,7 @@ def rotation_z(theta): return r_x def translation(tx, ty, tz): - """ - Receives the coordinates of the nearest face of an object. - Returns the translation matrix for said object. - """ + t_matrix = np.identity(4) t_matrix[0,3] = tx @@ -52,13 +37,7 @@ def translation(tx, ty, tz): return t_matrix def perspective(fov:float, aspect:float, znear:float, zfar:float): - """ - Receives the angle of the field of view, - the aspect ratio of the plane (normally the screen) - znear and zfar, which are the distances between the nearest face and the furthest one - Returns the perspective projection matrix - """ m = np.zeros((4,4)) e = 1 / tan(radians(fov/2)) @@ -76,10 +55,6 @@ def perspective(fov:float, aspect:float, znear:float, zfar:float): return test def camera_translation(pos): - """ ? - Receives the coordinates of the nearest face of an object. - Returns the translation matrix for said object. - """ camera_matrix = np.matrix([[1,0,0,-pos[0]], [0,1,0,-pos[1]], [0,0,1,-pos[2]], @@ -89,14 +64,7 @@ def camera_translation(pos): return camera_matrix def camera_orientation(u,v,n): - """ - Receives three vectors, representing: - the direction the viewer is facing - their horizontal - their vertical - - Returns the orientation_matrix - """ + orientation_matrix = np.matrix(([u[0,0], u[0,1], u[0,2], 0], [v[0,0], v[0,1], v[0,2], 0], [n[0,0], n[0,1], n[0,2], 0], @@ -105,8 +73,7 @@ def camera_orientation(u,v,n): return orientation_matrix def viewport(width, height): - """ ? - """ + view = np.matrix(([width//2, 0,0,0], [0,height//2,0,0], [0,0,1/2,1/2],