10 - Aliasing e Visibilidade¶
Para essa atividade vamos usar o Numpy e Matplotlib. Assim vamos carregar as bibliotecas.
In [97]:
Copied!
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
Desenhando como o Z-buffer evolui em função do Near e Far
In [98]:
Copied!
# Define valores de Near e Far
near = 10
far = 1000
# Prepara base para gráfico
fig = plt.figure()
ax = plt.axes()
plt.grid()
plt.gca().invert_xaxis()
# Desenha onde começa o near e acaba o far
ax.axvline(-near, color='red')
plt.text(-near,1.14,'near',horizontalalignment='center')
ax.axvline(-far, color='red')
plt.text(-far,1.14,'far',horizontalalignment='center')
# Coloca os labels dos eixos
ax.set(xlabel='z_camera', ylabel='z_ndc')
fig.tight_layout()
# Faz a plotagem do gráfico
z_camera = np.linspace(-near,-far,100)
z_ndc = ((-z_camera*((far+near)/(far-near)))-((2*far*near)/(far-near)))/(-z_camera)
plt.plot(z_camera, z_ndc, 'blue')
# Desenha gráfico
plt.show()
# Define valores de Near e Far
near = 10
far = 1000
# Prepara base para gráfico
fig = plt.figure()
ax = plt.axes()
plt.grid()
plt.gca().invert_xaxis()
# Desenha onde começa o near e acaba o far
ax.axvline(-near, color='red')
plt.text(-near,1.14,'near',horizontalalignment='center')
ax.axvline(-far, color='red')
plt.text(-far,1.14,'far',horizontalalignment='center')
# Coloca os labels dos eixos
ax.set(xlabel='z_camera', ylabel='z_ndc')
fig.tight_layout()
# Faz a plotagem do gráfico
z_camera = np.linspace(-near,-far,100)
z_ndc = ((-z_camera*((far+near)/(far-near)))-((2*far*near)/(far-near)))/(-z_camera)
plt.plot(z_camera, z_ndc, 'blue')
# Desenha gráfico
plt.show()
Crie agora uma representação do Z normalizado e depois em ponto fixo de inteiros sem sinais de 32 bits.
In [ ]:
Copied!
In [ ]:
Copied!