|
![](/i/fill.gif) |
Jim Kress <nos### [at] kressworks com> wrote:
> Got any suggestions how I would do this? I've looked through the Internet
> and have not been able to find an algorithum (or code) that would show me
> how this is done.
I have never read or thought about the details of raytracing a triangle,
but the basic algorithm is:
1. Calculate the intersection point of the ray and the plane (eg. the
value t for P*t+D, where P is the starting point of the ray and D is
the direction of the ray).
2. See if the intersection point is inside the boundaries defined by the
triangle (the first fast test is if t<0, then the ray did not hit the
triangle).
3. You'll have to perform the test with *each* triangle in the mesh
(except the current one), unless you implement some space subdivision
algorithm, eg. an octree (but that would make the algorithm a lot more
complicated, though faster).
I can't say right now how step 2 is implemented.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |