Just wondering what happens if the projection `square’ is smaller than the triangle\quad you are projecting on to. How is it possible for the projected image NOT to fill the entire primitive (alternatively, I’ve totally misunderstood projected texturing).
For example, I project a TV screen image onto a wall, only a small square on the wall should be rendered with the image covering it, but projected texture algols’ seem to just generate texture coords for the wall, based on the position\direction of the projector. How does this work?
for every fragment you get the linear interpolated texcoords. they get divided through z (or w?) at every fragment. so you get your texcoords. these are then clamped, if clamping is set, or repeated, if repeat is set.
clamping:
any value bigger than 1 will be set to 1
any value smaller than 0 will be set to 0
Hardware support for border texels is going to be turned on “pretty soon” for GeForce3 and GeForce4 Ti. You can already use border color with GL_CLAMP_TO_BORDER, which should be sufficient for this purpose.
GeForce 1, 2, and 4 MX do not have hardware support for borders or border color.