Gráficos por computadora III: Rasterización
Después de la transformación, ya sea proyección ortogonal o proyección en perspectiva, se transforma en un cubo. El siguiente paso es dibujarlo en la pantalla, lo que se llama rasterización.
1. Cámara Superficie visible, ancho y alto, puede obtener la relación de aspecto
2.FOV (campo de visión), de acuerdo con el ángulo de visión vertical fovY y la relación de aspecto, puede obtener el ángulo de visión horizontal fovX
1. El lado derecho es el plano cercano de la vértebra óptica. El ángulo entre el punto (1, t, n) y el eje z es fovY/2
2. t es el valor de z y b es -t, la altura del plano cercano es 2t, r es el valor de x, l es -r y el ancho del plano cercano es 2r
3. Entonces podemos obtener las dos ecuaciones de la derecha
1. La esquina inferior izquierda es el origen y cada píxel está representado por un número entero (x, y). El píxel azul en la imagen es. (2, 1)
2. El ancho y alto del píxel es 1, y el centro del píxel es (x 0,5, y 0,5)
3. El rango de la pantalla es de (0, 0) a (ancho, alto)
1. Ignore z, es esencialmente una traducción y suma Un zoom
2. Debido a que MVP obtiene el centro en el origen, primero debe traducirse para que la esquina inferior izquierda esté en el origen, y luego x e y se estiran al tamaño de la pantalla
No importa si son dos dimensionales o tridimensionales, los gráficos se pueden descomponer en un cierto número de triángulos
1. La esencia es determinar si el punto está dentro del triángulo
2. Definir una función dentro (tri, x, y) para generar si está dentro del triángulo y luego recorrer los píxeles en toda la pantalla
1. Utilice el producto cruzado del vector, si los tres resultados de p2p0 x p2q , p0p1 x p0q y p1p2 x p1q tienen el mismo signo, entonces está dentro del triángulo, de lo contrario está fuera del triángulo
Los puntos en el borde pueden o no contarse en diferentes circunstancias.
1. El rectángulo que rodea el triángulo se llama cuadro delimitador
2. Tome maxX y maxY de p1, p2 y p3 para obtener un cuadro delimitador optimizado, que puede mejorar la eficiencia. Además, existen muchas soluciones de optimización
Después de la rasterización del triángulo, debido al tamaño de los píxeles, se producirá un alias.
El motivo del alias es el problema de la frecuencia de muestreo. El muestreo es común en imágenes, vídeos y audios. Una frecuencia de muestreo baja puede reducir la calidad y acelerar el procesamiento, pero producirá artefactos, y el alias es uno de ellos.
La pantalla se actualizará cada dos líneas. al actualizar, por ejemplo, el primer cuadro actualizará las líneas impares. El segundo cuadro actualizará las líneas pares para mejorar la eficiencia, pero causará alias hasta cierto punto o defectos.
La imagen de arriba es. llamado moiré, que es la eliminación de líneas impares para reducir la calidad durante el muestreo o generado por filas pares de píxeles.
La señal cambia tan rápido que la velocidad de muestreo es muy lenta. lo que resulta en artefactos
Primero desenfoque (filtre) la escena o señal, el procesamiento y luego el muestreo puede revertir el alias hasta cierto punto
Tenga en cuenta que muestrear primero y luego desenfocar no logrará el efecto
En la Figura 2:
Para la misma frecuencia de muestreo, cuanto más rápida sea la frecuencia de la señal, más distorsionada estará. La función de señal anterior se puede restaurar aproximadamente en función del muestreo, pero. la función de señal a continuación no se puede restaurar en absoluto
En la Figura 3:
Muestreo en la función azul y luego restauración después del muestreo, la función restaurada es obviamente solo una función negra, que está demasiado lejos del azul original; también se puede entender que usa la misma frecuencia de muestreo Muestreando señales de dos frecuencias, los resultados son exactamente los mismos
La transformada de Fourier puede convertir el dominio del tiempo en el dominio de la frecuencia:
1. Izquierda
La imagen de la derecha se llama dominio del tiempo y la imagen de la derecha se llama dominio de la frecuencia. Se genera mediante la transformada de Fourier de la imagen de la izquierda
2. La información de la imagen. a la derecha está representado por el brillo en diferentes posiciones, y los periféricos son de alta frecuencia, el centro es de baja frecuencia
3. Los resaltados cruzados horizontales y numéricos se deben a que la imagen no es una señal repetida y tiene No hay información de tiempo, por lo que las imágenes se colocarán en mosaico una tras otra durante el procesamiento. Zhang, cuando la imagen cambie de límite, se producirán cambios drásticos, de alta frecuencia a baja frecuencia, y aparecerán reflejos cruzados.
Eliminar baja. -información de frecuencia:
1. Borre la información de baja frecuencia en el centro a la derecha, realice la transformada de Fourier inversa y regenere la imagen de derecha a izquierda. Esto se llama filtrado de paso alto, es decir. , solo puede pasar información de alta frecuencia
2. Se puede observar que, solo quedan bordes, o límites, que es cuando detalles como el color y la textura cambian drásticamente, correspondiente a la información de alta frecuencia. .
Eliminar información de alta frecuencia:
1 .Filtrado de paso bajo, los límites de la imagen ya no son visibles, dejando solo la información de baja frecuencia representada por bloques de color
Elimina selectivamente diferentes regiones de frecuencia:
1. Genera diferentes efectos. La Figura 1 elimina los bloques de color de frecuencia más baja y los bordes de alta frecuencia. La Figura 2 elimina una gran cantidad de colores de baja frecuencia. bloques e información de alta frecuencia A través de este control, se pueden obtener diferentes niveles de información detallada
Convolución Convolución:
1. La primera es una señal unidimensional, que es fácil de analizar. comprender
2. Luego hay un filtro, que se mueve de izquierda a derecha, cada vez que mueve una unidad, calcula el valor de la señal correspondiente al centro del filtro después del movimiento, calcula el promedio ponderado y luego escribe la muestra y finalmente obtener un resultado de muestreo
3. La convolución es una operación difusa
1. Convoluciona la señal (imagen) con un filtro (la imagen se convierte en otra imagen) p>
2. El paso anterior equivale a pasar la imagen por la transformada de Fourier para generar el dominio de frecuencia, y luego la transformada de Fourier el filtro, multiplicar los dos y finalmente la transformada de Fourier inversa, y obtendrás otra imagen que es lo mismo que 1
Filtro de paso bajo:
1. Multiplica los ocho píxeles alrededor de cada píxel por 1, súmalos y luego divídelos por 9
2. Cuanto más grande es el cuadro, más borrosa será la imagen. Si es el cuadro más pequeño, equivale a Sin filtrar, la imagen permanece sin cambios
3. Los dos cuadros en la imagen de arriba son en el dominio del tiempo. imágenes, es decir, bloques en blanco y negro, y la imagen en el dominio de frecuencia a la derecha
Anti-aliasing MSAA:
Subdivida un píxel en 4 o incluso 16 puntos y tome una porcentaje del número de puntos cubiertos por el triángulo. Tres de ellos son 75, uno es 25
FXAA: después del muestreo para generar la imagen, el alias se reemplaza mediante el procesamiento de imágenes, lo cual es muy eficiente. p>
TAA: distribuye las muestras de MSAA en el tiempo y reutiliza el procesamiento del fotograma anterior
DLSS: supermuestreo de aprendizaje profundo (superresolución) para poner una imagen de 50x50 en 200x200 se requieren píxeles adicionales. entonces la función es ampliar la imagen
Las cosas dibujadas más tarde sobrescribirán las dibujadas primero. La representación por computadora sigue el algoritmo del pintor. Esto también se hace cuando se usa, la relación de distancia u oclusión se llama relación de profundidad.
p>
Una situación de oclusión mutua, el algoritmo del pintor no puede resolver esta escena.
Algoritmo de caché de profundidad:
1. Como se mencionó anteriormente, la relación de profundidad entre tres triángulos que Los bloques entre sí no se pueden determinar, por lo que cambiamos el ángulo para determinar la profundidad de cada píxel. Mientras generamos la imagen renderizada, también generamos una imagen para guardar la información de profundidad de cada píxel. La izquierda es la imagen renderizada
2. La derecha es el mapa de profundidad Cuanto más cerca está el punto de la cámara, más oscuro es el color.
3. Suponga que hay. solo el piso primero, y el mapa de profundidad del piso es casi negro y lejano en blanco. Ahora agregue un cubo hueco en la imagen. El piso mostrado originalmente por el punto de píxel a tiene una profundidad x.
Ahora el punto a también está en el cubo al mismo tiempo. El cubo da otra profundidad y. Con base en xey, se puede determinar la relación de oclusión entre el piso y el cubo.
1. Primero descomponga. la escena en un cierto número de triángulos
2. Rasteriza todos los triángulos
3. Al principio, todos los valores del búfer de profundidad de píxeles son infinitos, es decir, los más lejanos, atraviesan todos los píxeles de todos los triángulos y luego sume la profundidad. Al comparar todos los píxeles de la imagen, si la profundidad es menor que la profundidad almacenada en el píxel, significa que el píxel original debe sobrescribirse y la profundidad debe reescribirse en este píxel. .
4. Este algoritmo no tiene nada que ver con el orden. No hay clasificación, solo registra un valor mínimo y los valores grandes no se procesan de ninguna manera, por lo que la complejidad es solo. O(n)
1. R significa infinito
2.5 Si es más pequeño que R, reescríbelo
3. Agrega un segundo triángulo. R y 5, si es mayor que R y 5, será bloqueado por el triángulo original, y si es menor que 5, bloqueará el triángulo original
4. Se insertan los dos triángulos. juntos y tapados parcialmente