struktur D3DRECTPATCH_INFO
Menjelaskan patch pesanan tinggi persegi panjang.
Sintaks
typedef struct D3DRECTPATCH_INFO {
UINT StartVertexOffsetWidth;
UINT StartVertexOffsetHeight;
UINT Width;
UINT Height;
UINT Stride;
D3DBASISTYPE Basis;
D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;
Anggota
-
StartVertexOffsetWidth
-
Jenis: UINT
-
Memulai lebar offset puncak, dalam jumlah simpul.
-
StartVertexOffsetHeight
-
Jenis: UINT
-
Memulai tinggi offset puncak, dalam jumlah simpul.
-
Lebar
-
Jenis: UINT
-
Lebar setiap puncak, dalam jumlah simpul.
-
Tinggi
-
Jenis: UINT
-
Tinggi setiap puncak, dalam jumlah simpul.
-
Langkahnya
-
Jenis: UINT
-
Lebar array verteks dua dimensi imajiner, yang menempati ruang yang sama dengan buffer vertex. Misalnya, lihat diagram di bawah ini.
-
Dasar
-
Jenis: D3DBASISTYPE
-
Anggota jenis enumerasi D3DBASISTYPE , menentukan jenis dasar untuk patch pesanan tinggi persegi panjang.
Nilai Pesanan didukung Lebar dan tinggi D3DBASIS_BEZIER Linear, kubik, dan kuintik Lebar = tinggi = (DWORD)urutan + 1 D3DBASIS_BSPLINE Linear, kubik, dan kuintik Lebar = tinggi > (DWORD)urutan D3DBASIS_INTERPOLATE Kubik Lebar = tinggi > (DWORD)urutan -
Gelar
-
Jenis: D3DDEGREETYPE
-
Anggota D3DDEGREETYPE jenis enumerasi, mendefinisikan derajat untuk patch persegi panjang.
Keterangan
Diagram berikut mengidentifikasi parameter yang menentukan patch persegi panjang.
Masing-masing simpul dalam buffer vertex ditampilkan sebagai titik hitam. Dalam hal ini, buffer vertex memiliki 20 simpul di dalamnya, 16 di antaranya berada di patch persegi panjang. Langkahnya adalah jumlah simpul dalam lebar buffer puncak, dalam hal ini lima. Offset x ke vertex pertama disebut StartIndexVertexWidth dan dalam hal ini 1. Offset y ke puncak patch pertama disebut StartIndexVertexHeight dan dalam hal ini 0.
Untuk merender aliran patch persegi panjang individu (non-mosaik), Anda harus menafsirkan geometri Anda sebagai patch persegi panjang sempit (1 x N). Struktur D3DRECTPATCH_INFO untuk strip seperti itu (Bézier kubik) akan diatur dengan cara berikut.
D3DRECTPATCH_INFO RectInfo;
RectInfo.Width = 4;
RectInfo.Height = 4;
RectInfo.Stride = 4;
RectInfo.Basis = D3DBASIS_BEZIER;
RectInfo.Order = D3DORDER_CUBIC;
RectInfo.StartVertexOffsetWidth = 0;
RectInfo.StartVertexOffsetHeight = 4*i; // The variable i is the index of the
// patch you want to render.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Lihat juga