NewRGBTensorPatchMesh

Gölgelendirme, Grafikler

Açıklama

Bir tensör çarpım yama ağı gölgelendirmesi (PDF 7. gölgelendirme türü) oluşturur ve onu ShaderName adıyla DeviceRGB renginde kaydeder. Her yama, P1..P16 sırasıyla dört yama köşesi, sekiz kenar kontrol noktası ve dört iç kontrol noktası olan on altı kontrol noktası ve köşe başına bir renk taşır. Yamalar kenar paylaşımı olmadan bağımsız olarak yazılır

Sözdizimi

Delphi

Function TPDFlib.NewRGBTensorPatchMesh(Const ShaderName: WideString;
  Const Patches: Array Of TPLMeshPatchCorners;
  BitsPerCoordinate, BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Parametreler

ShaderNameGölgelendiricinin kaydedildiği ad; ağla boyamak için onu SetFillShader veya SetLineShader'a geçin
PatchesTPLMeshPatchCorners kayıtlarından oluşan dizi; PX/PY kontrol noktası koordinatlarını P1..P16 yuvaları olan 0..15 konumlarında tutar — iç kontrol noktaları P13..P16, 12..15 konumlarındadır — ve CR/CG/CB dört köşe rengini 0 ile 1 aralığında tutar
BitsPerCoordinateKontrol noktası koordinatları için nicemleme bitleri, 1 ile 32 arasında
BitsPerComponentRenk bileşeni başına nicemleme bitleri, 1 ile 16 arasında
BoundsX0, BoundsY0, BoundsX1, BoundsY1Paketlenmiş kontrol noktası koordinatlarını gölgelendirme koordinat uzayına eşleyen kod çözme dikdörtgeni

Dönüş değerleri

0Ağ oluşturulamadı; çünkü hiçbir belge seçili değil, yama dizisi boş veya bir bit parametresi aralık dışında
1Ağ ShaderName adıyla kaydedildi

Açıklamalar

Koordinatlar kitaplığın sol üst kökenli sistemini izler ve içeride çevrilir (ISO 32000-1 §8.7.4.5.8). İç kontrol noktaları, bir yamanın içindeki renk akışı üzerinde NewRGBCoonsPatchMesh'in çift kübik sınır eğrilerinden daha ince denetim sağlar

Örnek

Patch:= Default(TPLMeshPatchCorners);
Patch.PX[0]:= 100;   Patch.PY[0]:= 100;   // P1 corner
Patch.PX[3]:= 300;   Patch.PY[3]:= 100;   // P4 corner
Patch.PX[6]:= 300;   Patch.PY[6]:= 250;   // P7 corner
Patch.PX[9]:= 100;   Patch.PY[9]:= 250;   // P10 corner
// Inner control points P13..P16 in slots 12..15
Patch.PX[12]:= 166;  Patch.PY[12]:= 150;
Patch.PX[13]:= 233;  Patch.PY[13]:= 150;
Patch.PX[14]:= 233;  Patch.PY[14]:= 200;
Patch.PX[15]:= 166;  Patch.PY[15]:= 200;
Patch.CR[0]:= 1; Patch.CG[0]:= 0; Patch.CB[0]:= 0;
Patch.CR[1]:= 0; Patch.CG[1]:= 0; Patch.CB[1]:= 1;
Patch.CR[2]:= 0; Patch.CG[2]:= 1; Patch.CB[2]:= 0;
Patch.CR[3]:= 1; Patch.CG[3]:= 1; Patch.CB[3]:= 0;
SetLength(Patches, 1);
Patches[0]:= Patch;
PDF.NewRGBTensorPatchMesh('tensor', Patches, 16, 8,
  100, 100, 300, 250);
PDF.SetFillShader('tensor');