-!!ARBvp1.0\r
-\r
-#input\r
-ATTRIB InPos = vertex.position;\r
-ATTRIB InColor = vertex.color;\r
-ATTRIB InNormal = vertex.normal;\r
-ATTRIB InTexCoord = vertex.texcoord;\r
-\r
-#output\r
-OUTPUT OutPos = result.position;\r
-OUTPUT OutColor = result.color;\r
-OUTPUT OutTexCoord = result.texcoord;\r
-\r
-PARAM MVP[4] = { state.matrix.mvp }; # modelViewProjection matrix.\r
-TEMP Temp;\r
-TEMP TempColor;\r
-TEMP TempCompare;\r
-\r
-#transform position to clip space \r
-DP4 Temp.x, MVP[0], InPos;\r
-DP4 Temp.y, MVP[1], InPos;\r
-DP4 Temp.z, MVP[2], InPos;\r
-DP4 Temp.w, MVP[3], InPos;\r
-\r
-# check if normal.y > 0.5\r
-SLT TempCompare, InNormal, {0.5,0.5,0.5,0.5};\r
-MUL TempCompare.z, TempCompare.y, 0.5;\r
-SUB TempCompare.x, 1.0, TempCompare.z;\r
-MOV TempCompare.y, TempCompare.x;\r
-MOV TempCompare.z, TempCompare.x;\r
-\r
-# calculate light color\r
-MUL OutColor, InColor, TempCompare;\r
-MOV OutColor.w, 1.0; # we want alpha to be always 1\r
-MOV OutTexCoord, InTexCoord; # store texture coordinate\r
-MOV OutPos, Temp;\r
-\r
-END\r