Graphics Reference
In-Depth Information
// b(120)
case 4:
output.position = ComputeEdgePosition(ip, 1, 0);
break;
// Edge between vl and v2
// b(021)
case 5:
output.position = ComputeEdgePosition(ip, 1 , 2);
break;
// b(012)
case 6:
output.position = ComputeEdgePosition(ip, 2, 1);
break;
// Edge between v2 and v0
// b(102)
case 7:
output.position = ComputeEdgePosition(ip, 2, 0);
break;
// b(201)
case 8:
output.position = ComputeEdgePosition(ip, 0 , 2);
break;
// Middle of triangle
// b(lll)
case 9:
float3 E =
(
ComputeEdgePosition(ip, 0, 1) +
ComputeEdgePosition(ip, 1, 0)
+
ComputeEdgePosition(ipj 1, 2) +
ComputeEdgePosition(ipj 2, 1)
+
ComputeEdgePosition(ip, 2, 0) +
ComputeEdgePosition(ip, 0 , 2)
) / 6.0f;
float3 V = (ip[0] .position + ip[1] .position + ip[2] .position)
/ 3.0f;
output.position = E + ( (E - V) / 2.0f );
break;
// Normals
// n(110) - between v0 and v1
case 10:
output.normal = ComputeEdgeNormal(ip, 0, 1);
break;
Search WWH ::




Custom Search