Oh I get it! I thought that the parameter names that appear in the list of possible shader inputs where the only ones that could be used, since I tried something like this:
void fshader(uniform sampler3D texture)
And I got an error telling me that my parameter name was not valid. So is there any kind of convention for shader parameter names?
Why is it that in your example, in the shader you use “k_skybox”, but in python you only use “skybox”?
Yes, that should be correct, if they are valid Cg variables. Not 100% sure about underscores, but I think they should work.
Note that shader inputs passed from your program always have the k_ prefix. By convention, l_ inputs are the ones passed from the vertex shader to the fragment shader, and o_ variables the output from a fragment shader, but in practice you can mix the two.
Note that you can’t use k_ variables without assigning a shader input to them.