Delen via


Automatisch gegenereerde patrooncoördinaten (Direct3D 9)

Het systeem kan de getransformeerde cameraruimtepositie of het normale van een hoekpunt gebruiken als patrooncoördinaten, of het kan de drie elementvectoren berekenen die worden gebruikt om een kubieke omgevingskaart aan te pakken. Net als patrooncoördinaten die u expliciet opgeeft in een hoekpunt, kunt u automatisch gegenereerde patrooncoördinaten gebruiken als invoer voor transformaties van bitmapcoördinaten.

Automatisch gegenereerde patrooncoördinaten kunnen de bandbreedte die nodig is voor geometriegegevens aanzienlijk verminderen door de noodzaak van expliciete patrooncoördinaten in de hoekpuntindeling te elimineren. In veel gevallen kunnen de patrooncoördinaten die het systeem genereert, worden gebruikt met transformaties om speciale effecten te produceren. Dit is natuurlijk een speciale functie en u gebruikt expliciete patrooncoördinaten voor veel gelegenheden.

Automatisch gegenereerde patrooncoördinaten configureren

In C++bepaalt de D3DTSS_TEXCOORDINDEX status van de structuurfase (van het D3DTEXTURESTAGESTATETYPE geïnventariseerd type) hoe het systeem patrooncoördinaten genereert.

Normaal gesproken geeft deze status het systeem opdracht om een bepaalde set patrooncoördinaten te gebruiken die zijn gecodeerd in de hoekpuntindeling. Wanneer u de D3DTSS_TCI_CAMERASPACENORMAL, D3DTSS_TCI_CAMERASPACEPOSITION of D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR vlaggen opneemt in de waarde die u aan deze status toewijst, is het systeemgedrag heel anders. Als een van deze vlaggen aanwezig is, negeert de patroonfase de patrooncoördinaten in de hoekpuntindeling ten gunste van coördinaten die door het systeem worden gegenereerd. De betekenissen voor elke vlag worden weergegeven in de volgende lijst.

  • D3DTSS_TCI_CAMERASPACENORMAL

    Gebruik het hoekpunt normaal, getransformeerd naar cameraruimte, als coördinaten van invoerpatroon.

  • D3DTSS_TCI_CAMERASPACEPOSITION

    Gebruik de hoekpuntpositie, getransformeerd naar cameraruimte, als coördinaten van invoerpatroon.

  • D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR

    Gebruik de reflectievector, getransformeerd naar cameraruimte, als coördinaten van invoerpatroon. De reflectievector wordt berekend op basis van de positie van het invoerpunt en de normale vector.

De patrooncoördinaatindexvlagmen sluiten elkaar wederzijds uit. In dit voorbeeld wordt het volgende gebruikt:

  • De hoekpuntpositie (in cameraruimte) als de coördinaten van het invoerpatroon voor deze patroonfase
  • De terugloopmodus ingesteld in de D3DRENDERSTATE_WRAP1 weergavestatus
// Assume d3dDevice is a valid pointer to an IDirect3DDevice9 interface
d3dDevice->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 
                                   D3DTSS_TCI_CAMERASPACEPOSITION | 1);

Automatisch gegenereerde patrooncoördinaten zijn het handigst als invoerwaarden voor een transformatie van een patrooncoördinaat of om de noodzaak voor uw toepassing om vectoren van drie elementen te berekenen voor kubieke-omgevingstoewijzingen.

Sphere-toewijzing maakt gebruik van een vooraf samengestelde patroonkaart (in modeltijd) die de volledige omgeving bevat, zoals wordt weerspiegeld door een chrome sphere. Direct3D heeft een functie voor het genereren van patronencoördinaat met behulp van renderstatus D3DTSS_TCI_CAMERASPACENORMAL, waarbij het normale hoekpunt in de cameraruimte wordt gebruikt en door een textuurtransformatie wordt geplaatst om patrooncoördinaten te genereren.

patroon coördinaatverwerking

bitmaptransformaties (Direct3D 9)

kubieke omgevingstoewijzing (Direct3D 9)