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 !
Applying texture on a sphere [raytracing]
Started by Frénésie, May 31 2012 07:35 AM
5 replies to this topic
Sponsor:
#2 Members - Reputation: 703
Posted 31 May 2012 - 08:19 AM
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
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
#4 Members - Reputation: 287
Posted 31 May 2012 - 05:07 PM
This should be of some help...
http://www.flipcode.com/archives/Raytracing_Topics_Techniques-Part_6_Textures_Cameras_and_Speed.shtml
http://www.flipcode.com/archives/Raytracing_Topics_Techniques-Part_6_Textures_Cameras_and_Speed.shtml
#5 Members - Reputation: 703
Posted 04 June 2012 - 05:16 AM
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...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 ?






