![]()
![]()
Graphing Calculator generates GPU fragment programs on the fly
which act as a generalization of OpenGL clip planes. The first
equation draws a plane and uses the following fragment program to
clip it to the boundary of the equation.
!!ARBfp1.0
TEMP R0;
TEMP R1;
PARAM U0 = program.local[0];
PARAM C0 = {
0.500000000000000000000000000000,
2.000000000000000000000000000000,
4.000000000000000000000000000000,
1.000000000000000000000000000000
};
MUL R0.x, fragment.texcoord[0].x, fragment.texcoord[0].x;
MUL R0.y, fragment.texcoord[0].y, fragment.texcoord[0].y;
MUL R0.z, fragment.texcoord[0].z, fragment.texcoord[0].z;
MUL R0.w, C0.z, fragment.texcoord[0].x;
SIN R1.x, R0.w;
MUL R0.w, C0.z, fragment.texcoord[0].y;
SIN R1.y, R0.w;
ADD R0.w, R0.y, R0.z;
ADD R0.y, R0.x, R0.w;
ADD R0.x, R1.y, U0.x;
ADD R0.z, R1.x, R0.x;
ADD R0.x, R0.y, R0.z;
SLT R0.y, R0.x, C0.w;
SLT R0.x, R0.y, C0.x;
KIL -R0.x;
MOV_SAT R0.x, C0.w;
MUL result.color.x, fragment.color.primary.x, R0.x;
MUL result.color.y, fragment.color.primary.y, R0.x;
MUL result.color.z, fragment.color.primary.z, R0.x;
END