[csu540-f05-rpf] [csu540-f05] SP3 question
Philip Lee
kulguy82 at ccs.neu.edu
Wed Dec 7 01:13:55 EST 2005
Robert Futrelle wrote:
> If you get a hit on a triangle and N dot L is positive, then your shadow
> ray, from e', will be directed away from the surface, which is fine. As
> I mentioned in class, there's a slight chance that due to roundoff, it
> will hit the surface it is supposedly directed *away* from - the reason
> I suggested adjusting e' to be slightly away from the surface by adding
> a few pixels in the N direction.
>
> I'm not absolutely sure why Matt's strategy worked - have to look at his
> code. But if it worked and shadows appeared, great!
>
> In my TinyRayTrace, I made d so large that if t < 1.0, the hit was
> inside the basic volume containing the scene. You could also make |d| =
> 1.0, a unit
> vector and test for t being less than some value such as 2,000, again
> meaning that the hit was inside your basic volume. The nice thing about
> making |d| = 1.0 is that t then becomes a measure of how far along the
> ray from the eyepoint your hit is, measured in pixels.
>
> The gamma and beta tests are unchanged by your choice of |d| and the t
> limit test.
>
> -- RPF
>
>
>
>> Philip,
>>
>> I had the same problem you did. The way I was able to get around it
>> was by adding a check on the T-value in the same function that checks
>> the alpha, beta, and gamma values. Make sure that it is between 0 and
>> 1. As soon as I did this it worked. I THINK what was happening is
>> that the same triangle was getting hit, and generating a negative
>> t-value. Hope that helps.
>>
>> - Matt
>>
>> On 12/6/05, Robert Futrelle
>> <<mailto:futrelle at ccs.neu.edu>futrelle at ccs.neu.edu> wrote:
>>
>> Here's the answer to the question a number of you have asked me.
>>
>> Q. How do you get the coordinates of the point where the first ray
>> hits a triangle? (Needed because that's the new eyepoint for
>> launching a ray in the direction of the light source.)
>>
>> A. At the top of pg. 205, you see that the ray you start with has the
>> form:
>> p = e + td, where p, e, and d are all points/vectors in 3-space. You
>> know the values of p, e, and d.
>>
>> When you hit a triangle, you can figure out the value of t. You
>> simply use that value in the equation for p and that gives you the
>> point in 3-space where the ray hits the triangle. So if T is the
>> value of t where the first hit occurs, then that point is p = e + Td.
>> That point becomes the new eyepoint, e', for launching the ray in the
>> direction of the light, so e' = e + Td.
>>
>> If L is a unit vector toward the light source, you can write your new
>> ray as
>>
>> p = e' + wL
>>
>> using w instead of t, and L instead of d.
>>
>> Hope this helps.
>>
>> - Prof. Futrelle
>>
>>
>>
>>> I'll answer you in about an hour, soon as I get home.
>>>
>>> rpf
>>>
>>>> I have a quick question. When you do the ray trace and your ray
>>>> hits a point in a triangle, how do you get the z-coordinate of that
>>>> point? I am having difficulties trying to ray trace back to the
>>>> light source from a point on a triangle.
>>>>
>>>> Thanks.
>>>>
>>>> _______________________________________________
>>>> csu540-f05-rpf mailing list
>>>> <mailto:csu540-f05-rpf at lists.ccs.neu.edu>csu540-f05-rpf at lists.ccs.neu.edu
>>>>
>>>> <https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf>https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> csu540-f05-rpf mailing list
>>> <mailto:csu540-f05-rpf at lists.ccs.neu.edu>csu540-f05-rpf at lists.ccs.neu.edu
>>>
>>> <https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf>
>>> https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf
>>
>>
>>
>> _______________________________________________
>> csu540-f05-rpf mailing list
>> <mailto:csu540-f05-rpf at lists.ccs.neu.edu>csu540-f05-rpf at lists.ccs.neu.edu
>> <https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf>https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf
>>
>>
>>
>>
>>
>> --
>> Matthew Rancourt
>> <mailto:MRancourt at gmail.com> MRancourt at gmail.com
>> <mailto:rancourt at ccs.neu.edu>rancourt at ccs.neu.edu
>>
>> _______________________________________________
>> csu540-f05-rpf mailing list
>> csu540-f05-rpf at lists.ccs.neu.edu
>> https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf
>
>
>
> _______________________________________________
> csu540-f05-rpf mailing list
> csu540-f05-rpf at lists.ccs.neu.edu
> https://lists.ccs.neu.edu/bin/listinfo/csu540-f05-rpf
It seems like I can't find a way to fix this problem. I don't know maybe
I should just send as it is? and explain what is going on in my readme
file? I will give it a try tomorrow again, I've been trying to solve it
for hours now and it is too late now 1:12.
Philip
More information about the csu540-f05-rpf
mailing list