Applying texture on a sphere [raytracing]

Started by
4 comments, last by Bacterius 11 years, 10 months ago
Hi guys !

I'm doing a raytracer in C. I have to apply textures on a sphere. I have the coordinates x, y,z where my ray hits the sphere, the radius of the sphere and a function that returns the color of the pixel of the texture for a given x and y.

Do you have a formula to get the x,y of the texture from the x,y,z of the sphere and the radius r ?

Ty !
Advertisement
I don't have my code at the moment, but I remember that there is a simple addition to the intersection formula that gives u,v parameters of the intersection point. You just have to specify a couple of vectors defining the orientation of te sphere.

Those uv can then be scaled/translated/rotated/clipped any way you want and in the end you do a get(u,v) on the texture (where u and v are presumably normalized so that 0 is completely left and 1 is completely right - same thing for top and bottom).

Hope this helps
I have to specify a couple of vector to define the sphere ? On the 0.x axe and 0.y axe ? And is it on a cartesian reference ?
This should be of some help...

http://www.flipcode.com/archives/Raytracing_Topics_Techniques-Part_6_Textures_Cameras_and_Speed.shtml

I have to specify a couple of vector to define the sphere ? On the 0.x axe and 0.y axe ? And is it on a cartesian reference ?

I think that you need to define at least the north (and perhaps even the west) vectors, so that rotations applied to the sphere reflect on the texture orientation...
Two words: spherical coordinates.
One link: sphere texture mapping.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

This topic is closed to new replies.

Advertisement