struct DS_OUTPUT { float4 vPosition : SV_POSITION; // TODO: Weitere Sachen ändern/hinzufügen }; // Ausgabekontrollpunkt struct HS_CONTROL_POINT_OUTPUT { float3 vPosition : WORLDPOS; }; // Ausgabe von Patch Constant-Daten. struct HS_CONSTANT_DATA_OUTPUT { float EdgeTessFactor[3] : SV_TessFactor; // wäre z. B. [4] für eine Quad-Domäne float InsideTessFactor : SV_InsideTessFactor; // wäre z. B. Inside[2] für eine Quad-Domäne // TODO: Weitere Sachen ändern/hinzufügen }; #define NUM_CONTROL_POINTS 3 [domain("tri")] DS_OUTPUT main( HS_CONSTANT_DATA_OUTPUT input, float3 domain : SV_DomainLocation, const OutputPatch patch) { DS_OUTPUT Output; Output.vPosition = float4( patch[0].vPosition*domain.x+patch[1].vPosition*domain.y+patch[2].vPosition*domain.z,1); return Output; }