Bump mapping

Hi again,
I wrote:

(I'm posting each question separately, to avoid either getting lost)

So heres the other one:

My snake sprites are currently smooth brown plasticky tubes, and they
look a bit rubbish. I plan to add patterns to the skin, to make them
look better, but I think then they'd still look plasticky, so more
than that, I'd like to add bump maps (yeah, I know you call them
textures in Radiance, but that just gets a bit confusing) to make the
skin material look more like scales.

Unfortunately, even with the big Radiance book, the bump mapping stuff
seems to be a bit obscure. I know there's texfunc and texdata, and I saw
the thing about the patch for a texpict type (but I didn't really want
that here, and I don't want to muck about with my working source tree).

But it gets fairly confusing: the texturing is in terms of actual
displacement of the surface normals, rather than the height of ridges
or depth of grooves, right?? In which case, those modifications of
surface normals could be as vectors, or as angles (2 angles?), or
maybe something else I haven't thought of.
And then for example, a groove would presumably have to be represented
by having the normals on the left of the groove point right across it,
the normals on the right of it pointing left across it (and the normals
everywhere else unmodified); so if I've got this right, the texfunc or
texdata would have to describe the exact direction the normals are
perturbed in, not just an angle from 0 to 90 degrees.

So I'm already bewildered there. Next, there's the actual structure of
the 3d bump map: I'm not sure I could come up with a function that could
produce such a structure, but I suspect I might be able to produce
something using texdata. But I have little idea how the numbers in
texdata are grouped and organised- especially if there might be numerous
values required for each point. And the number of figures I'd have to
enter for texdata might be too high to be practical (I'd like to finish
this project in the next day or 2!).
If I went the texfunc route, I feel as though the sort of function
I'd want would be something like (sin(x))*(sin(y))*(sin(z)), but I
think not only would that give the wrong sort of overall structure,
but I don't think it'd give all the directional details for surface
normals. It seems extremely hard to visualise.

So overall, I scarcely even know where to start; the best I have here
is a firm idea of the final result I want :stuck_out_tongue: So explanations, suggestions,
whatever, are more than welcome!!

Thanks again,
Tom Barnes-Lawrence