49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| // Test tesselation factor output as PCF arg
 | |
| 
 | |
| struct VSOutput
 | |
| {
 | |
|     float4 f4Position : SV_Position;
 | |
|     float3 f3Color	  : COLOR;
 | |
| };
 | |
| 
 | |
| struct HS_CONSTANT_DATA_OUTPUT
 | |
| {
 | |
|     float Edges[4]  : SV_TessFactor;
 | |
| };
 | |
| 
 | |
| HS_CONSTANT_DATA_OUTPUT ConstantHS(InputPatch<VSOutput, 1> p, 
 | |
|                                    uint BlockID        : SV_PrimitiveID,
 | |
|                                    out float Inside[2] : SV_InsideTessFactor)
 | |
| {
 | |
|     HS_CONSTANT_DATA_OUTPUT Factors;
 | |
|     Factors.Edges[0] = 2.5;
 | |
|     Factors.Edges[1] = 4.25;
 | |
|     Factors.Edges[2] = 5.75;
 | |
|     Factors.Edges[3] = 7.5;
 | |
| 
 | |
|     Inside[0] = 6.75;
 | |
|     Inside[1] = 7.25;
 | |
| 
 | |
|     return Factors;
 | |
| }
 | |
| 
 | |
| struct HSOutput
 | |
| {
 | |
|     float4 Position : POS;
 | |
|     float3 Color    : COL;
 | |
| };
 | |
| 
 | |
| [domain("quad")]
 | |
| [partitioning("fractional_even")]
 | |
| [outputtopology("triangle_ccw")]
 | |
| [outputcontrolpoints(1)]
 | |
| [patchconstantfunc("ConstantHS")]
 | |
| HSOutput main(InputPatch<VSOutput, 1> inputPatch, uint uCPID : SV_OutputControlPointID)
 | |
| {
 | |
|     HSOutput Out;
 | |
|     Out.Position = inputPatch[uCPID].f4Position;
 | |
|     Out.Color    = inputPatch[uCPID].f3Color;
 | |
|     return Out;
 | |
| }
 | |
| 
 | 
