Skip to main content
GameDev.net gamedev.net
🔒 Locked

Applying texture on a sphere [raytracing]

Started by J May 31, 2012 at 1:35 PM 4 replies 5.5k views
Original Post
J
J
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 !
cignox1
cignox1
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
J
J
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 ?
cignox1
cignox1

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...
Bacterius
Bacterius
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.”

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.