GPU Shader Requisitos de hardware Pregunta

0

Tengo una pregunta que espero no estar fuera del alcance de esta rama de la red de intercambio y es una pregunta justa (para ser justos, proporcioné un diagrama de bloques sobre lo que tengo hasta ahora) sobre los "conceptos básicos" de cómo implementar un bloque de sombreado por píxel en un FPGA provisto con los tres componentes a continuación. He podido crear el núcleo con los bloques en la caja principal, pero en este momento es un diseño alámbrico.

¿Se puede proporcionar una guía sobre lo que entra en un sombreado desde un punto de vista conceptual y es posible tratar de crear un sombreado a partir de los recursos en la pizarra que se proporciona a continuación? ¿La coloración procede a sombrear?

Por favor avise.

Diagrama de bloques

Detallesdelbloque

Simulacióndecomportamiento

    
pregunta Vahe

1 respuesta

1

Esta canalización no asigna triángulos, sino que mira cada vértice de forma aislada, por lo que no puede hacer más que dibujar una estructura alámbrica.

Probablemente pueda colorear estos píxeles de manera diferente al insertar un bloque entre el generador de líneas y el búfer de cuadros que, para cada par de coordenadas recibidas, ejecuta una pequeña máquina de programa / estado que decide qué valor escribir en el framebuffer.

En este punto, sin embargo, toda la información 3D ya está perdida (el generador de línea no interpola los valores Z, aunque probablemente podría extenderse para hacerlo con un costo adicional).

Para sombreadores útiles, es probable que también desee invertir la rotación (para que el sombreador tenga acceso a las coordenadas mundiales), lo que requiere otro bloque de multiplicación de matrices o un estado separado.

Para la iluminación, necesitamos correr triángulos en lugar de vértices a través de la tubería para poder determinar el vector normal (que de lo contrario no estaría especificado), lo que es un cambio considerable, pero aún debería ser posible con el marco existente.

La otra cosa que falta en la tubería actual es un búfer Z.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas