Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El sistema puede usar la posición transformada del espacio de la cámara o la normal de un vértice como coordenadas de textura, o bien puede calcular los tres vectores de elementos usados para abordar un mapa de entorno cúbico. Al igual que las coordenadas de textura que se especifican explícitamente en un vértice, puede usar coordenadas de textura generadas automáticamente como entrada para las transformaciones de coordenadas de textura.
Las coordenadas de textura generadas automáticamente pueden reducir significativamente el ancho de banda necesario para los datos de geometría eliminando la necesidad de coordenadas de textura explícitas en el formato de vértice. En muchos casos, las coordenadas de textura que genera el sistema se pueden usar con transformaciones para producir efectos especiales. Por supuesto, esta es una característica de propósito especial y usará coordenadas de textura explícitas para muchas ocasiones.
Configuración de coordenadas de textura generadas automáticamente
En C++, el estado D3DTSS_TEXCOORDINDEX fase de textura (del tipo enumerado D3DTEXTURESTAGESTATETYPE) controla cómo el sistema genera coordenadas de textura.
Normalmente, este estado indica al sistema que use un conjunto determinado de coordenadas de textura codificadas en el formato de vértice. Al incluir las marcas D3DTSS_TCI_CAMERASPACENORMAL, D3DTSS_TCI_CAMERASPACEPOSITION o D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR en el valor asignado a este estado, el comportamiento del sistema es bastante diferente. Si hay alguna de estas marcas, la fase de textura omite las coordenadas de textura dentro del formato de vértice en favor de las coordenadas que genera el sistema. Los significados de cada marca se muestran en la lista siguiente.
D3DTSS_TCI_CAMERASPACENORMAL
Use el vértice normal, transformado en el espacio de la cámara, como coordenadas de textura de entrada.
D3DTSS_TCI_CAMERASPACEPOSITION
Use la posición del vértice, transformada en el espacio de la cámara, como coordenadas de textura de entrada.
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
Use el vector de reflexión, transformado en espacio de cámara, como coordenadas de textura de entrada. El vector de reflexión se calcula a partir de la posición del vértice de entrada y del vector normal.
Las marcas de índice de coordenadas de textura son mutuamente excluyentes. En este ejemplo se usa:
- Posición del vértice (en el espacio de la cámara) como coordenadas de textura de entrada para esta fase de textura
- El modo de ajuste establecido en el estado de representación del D3DRENDERSTATE_WRAP1
// Assume d3dDevice is a valid pointer to an IDirect3DDevice9 interface
d3dDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX,
D3DTSS_TCI_CAMERASPACEPOSITION | 1);
Las coordenadas de textura generadas automáticamente son más útiles como valores de entrada para una transformación de coordenadas de textura, o para eliminar la necesidad de que la aplicación calcule vectores de tres elementos para mapas de entorno cúbicos.
La asignación de esferas usa un mapa de textura precomputado (en el tiempo del modelo) que contiene todo el entorno tal como lo refleja una esfera de cromo. Direct3D tiene una característica de generación de coordenadas de textura mediante el estado de representación D3DTSS_TCI_CAMERASPACENORMAL, que toma la normalidad del vértice en el espacio de la cámara y la coloca a través de una transformación de textura para generar coordenadas de textura.
Temas relacionados