Megosztás a következőn keresztül:


Csúcsmintázatok vs_3_0 (DirectX HLSL)

A csúcspont-árnyékoló 3.0 modell támogatja a csúcsárnyékolóban a textúrakeresést a texldl használatával – szemben textúrabetöltési utasítással. A csúcsmotor négy, D3DVERTEXTEXTURESAMPLER0, D3DVERTEXTEXTURESAMPLER1, D3DVERTEXTEXTURESAMPLER2 és D3DVERTEXTEXTURESAMPLER3 nevű anyagmintát tartalmaz. Ezek különböznek a képpontmotor elmozdulástérkép-mintavevőitől és anyagmintázóitól.

A négy fázisban beállított mintázatmintákhoz használhatja a csúcsmotort, és a fázisokat a CheckDeviceFormat metódussal programozhatja. Állítsa be a textúrákat ezeken a szakaszokon SetTexturehasználatával, és a szakaszindex D3DVERTEXTEXTURESAMPLER0 keresztül D3DVERTEXTEXTURESAMPLER3. Új regiszter lett bevezetve a csúcsárnyékolóban, a mintavevői regiszterben (mint a ps_2_0), amely a csúcsmintát jelöli. Ezt a nyilvántartást a használat előtt definiálni kell az árnyékolóban.

Az alkalmazások a CheckDeviceFormat D3DUSAGE_QUERY_VERTEXTEXTUREmeghívásával lekérdezhetik, hogy a formátumok csúcsmintaként támogatottak-e.

Jegyzet

Ez egy lekérdezésjelző, ezért nem fogadható el semmilyen Createxxx függvényben. Az alapértelmezett készletben létrehozott csúcsok textúrája képpontos textúraként állítható be, és fordítva. A szoftveres csúcsok feldolgozásához azonban létre kell hozni a csúcsmintát a karckészletben (függetlenül attól, hogy vegyes módú eszközről vagy szoftveres csúcsfeldolgozó eszközről van-e szó).

 

A funkció megegyezik a képpontok textúráival, kivéve az alábbiakat:

  • Az anizotróp textúra szűrése nem támogatott, ezért a D3DSAMP_MAXANISOTROPY figyelmen kívül hagyja, és D3DTEXF_ANISOTROPIC nem állítható be nagyítóhoz vagy minifyhez ezekhez a szakaszokhoz.
  • A változási adatok sebessége nem érhető el, ezért az alkalmazásnak ki kell számítania a részletességi szintet, és paraméterként kell megadnia ezt az információt a texldl - és.

A korlátozások a következők:

  • A képpontárnyékolókhoz hasonlóan, ha a többelosztásos textúrák támogatottak, D3DSAMP_ELEMENTINDEX segítségével állapítható meg, hogy melyik elemből szeretne mintát venni.
  • Ezeknél a szakaszoknál a rendszer figyelmen kívül hagyja az állapot D3DSAMP_DMAPOFFSET.
  • A CheckDeviceFormat és D3DUSAGE_QUERY_VERTEXTEXTURE" használatával lekérdezheti az anyagmintát, és ellenőrizheti, hogy használható-e csúcsmintázatként.
  • A VertexTextureFilterCaps azt jelzi, hogy milyen típusú szűrők engedélyezettek a csúcsmintázatok mintáinál. D3DPTFILTERCAPS_MINFANISOTROPIC és D3DPTFILTERCAPS_MAGFANISOTROPIC nem engedélyezettek.

Mintavételezési szakaszregisztrálások

A mintavételezési szakaszregisztrálás egy olyan mintavételezési egységet azonosít, amely felhasználható a textúrabetöltési utasításokban. A mintavételezési egység megfelel a mintázat mintavételezési szakaszának, amely magában foglalja a SetSamplerState.

Minden mintavevő egyedileg azonosítja a megfelelő mintavevőre beállított egyetlen felületi felületet a SetTexturehasználatával. Ugyanaz a felület azonban több mintavevőnél is beállítható.

Rajzoláskor az anyagminta nem állítható be egyszerre renderelési célként és anyagmintaként egy adott fázisban.

Mivel vs_3_0 négy mintavevőt támogat, legfeljebb négy felület olvasható egyetlen árnyékoló passzából. A mintavevőregisztráció csak argumentumként jelenhet meg a textúrabetöltési utasításban: texldl – vs.

Ha vs_3_0 egy mintavevőt használ, azt a shader program elején kell deklarálni a dcl_samplerType (sm3 - vs asm) (mint a ps_2_0).

Szoftverfeldolgozás

Ez a funkció támogatott lesz a szoftver csúcspontjainak feldolgozásában. A támogatott szűrőtípusok a GetDeviceCaps hívásával és a VertexTextureFilterCaps ellenőrzésével ellenőrizhetők. A szoftveres csúcspontok feldolgozásában minden közzétett textúraformátum támogatott csúcsmintázatként.

Az alkalmazások a CheckDeviceFormat meghívásával és használatként (D3DVERTEXTEXTURESAMPLER | D3DUSAGE_SOFTWAREPROCESSING) való megadásával ellenőrizhetik, hogy egy adott textúraformátum támogatott-e a szoftver csúcsfeldolgozási módban. A szoftver csúcsainak feldolgozása minden formátumot támogat. A szoftver csúcsának feldolgozásához szükség van a kaparókészletre.

API-módosítások

   
// New define
#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
    

#define D3DVERTEXTEXTURESAMPLER  (0x00100000L)

// New caps field in D3DCAPS9
DWORD VertexTextureFilterCaps;

Csúcsfolyamat