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.

diagram patch pesanan tinggi persegi panjang dan parameter yang menentukannya

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
D3D9Types.h

Lihat juga

Struktur Direct3D

DrawRectPatch

D3DXTessellateRectPatch