Hey fellows... once again I search you for guidance...
Here's the deal: I have to solve a problem for a raytracer, but I seem to be stuck...
So.. I have the sphere info. Lets suppose:
SphereCenter[3, 4, 5], and SphereRadius: 6.
How do I represent that through a quadric??
Next comes the ray/quadric collision calculation, but I believe it won`t be a problem.
*apologize if thats old subject
Thank you.
Ray - Quadric sphere
Quote:SphereCenter[3, 4, 5], and SphereRadius: 6.
How do I represent that through a quadric??
(x-3)^2 + (y-4)^2 + (z-5)^2 = 36
Hey there. Tx for the reply...
Well.. I dunno if I have not made myself clear... or if I'm just wrong.. but I meant, the quadric surface definition...
That is: F(x, y, z) = Ax^2 + By^2 + Cz^2 + Dxy+ Exz + Fyz + Gx + Hy + Iz + J = 0
If I have, for the sphere:
x2 + (y-5) 2 + (z+20)2 = 252
I know it shows up in the general quadric surface like:
a=1,b=1,c=1,d=0,e=0,f=0,g=0,h=-5,j=10,k=-200
but how do I get to those values? I`m having a hard time to understand that...
anyone knows how to do that?
Well.. I dunno if I have not made myself clear... or if I'm just wrong.. but I meant, the quadric surface definition...
That is: F(x, y, z) = Ax^2 + By^2 + Cz^2 + Dxy+ Exz + Fyz + Gx + Hy + Iz + J = 0
If I have, for the sphere:
x2 + (y-5) 2 + (z+20)2 = 252
I know it shows up in the general quadric surface like:
a=1,b=1,c=1,d=0,e=0,f=0,g=0,h=-5,j=10,k=-200
but how do I get to those values? I`m having a hard time to understand that...
anyone knows how to do that?
(x-Cx)^2 + (y-Cy)^2 + (z-Cz)^2 = r^2
x^2 - 2Cx*x + Cx^2 + y^2 - 2Cy*y + Cy^2 + z^2 - 2Cz*z + Cz^2 - r^2 = 0
if F(x, y, z) = Ax^2 + By^2 + Cz^2 + Dxy+ Exz + Fyz + Gx + Hy + Iz + J = 0
A = 1
B = 1
C = 1
D = 0
E = 0
F = 0
G = -2Cx
H = -2Cy
I = -2Cz
J = Cx^2 + Cy^2 + Cz^2 - r^2
It's pretty straight forward, but I did it quick so you may want to check my math.
x^2 - 2Cx*x + Cx^2 + y^2 - 2Cy*y + Cy^2 + z^2 - 2Cz*z + Cz^2 - r^2 = 0
if F(x, y, z) = Ax^2 + By^2 + Cz^2 + Dxy+ Exz + Fyz + Gx + Hy + Iz + J = 0
A = 1
B = 1
C = 1
D = 0
E = 0
F = 0
G = -2Cx
H = -2Cy
I = -2Cz
J = Cx^2 + Cy^2 + Cz^2 - r^2
It's pretty straight forward, but I did it quick so you may want to check my math.
Quote:Original post by kfboelter
but how do I get to those values? I`m having a hard time to understand that...
anyone knows how to do that?
This is 7-th grade Math:
(a+b)^2 = a^2 + 2ab + b^2
Apply that formula and add the terms that go together. You can do it.
theeeere you go Mr. Alvaro! just what I needed...
Guess my math is sucking pretty bad huh... hehe
anyway,, thank you so much! :D
Guess my math is sucking pretty bad huh... hehe
anyway,, thank you so much! :D
hey my friends... so there's more coming up...
well... my collision test is working fine with a sphere,, but I'm having problems with a plane... (just for the record.. i want to represent the shapes as quadric surfaces.. I know it might be better to treat them separetely)..
I have he plain
a=0.0 b=0.0 c=0.0 d=0.0 e=0.0 f=0.0 g=0.0 h=1.0 j=0.0 k=5.0
im doing the same as it's supposed, in order to check ray/quadric intersection..
*finding out t in t = b^2+or-sqrt(b*b-4*a*c)/2a
if you guys want I can show how to get a b and c coefficients....
anyway.. if I got that working with a sphere, should`n it be working ok with planes? it`s detecting collisions where it`s not supposed to.. so I really don`t know...
any help is welcome^^
thanks in advance...
well... my collision test is working fine with a sphere,, but I'm having problems with a plane... (just for the record.. i want to represent the shapes as quadric surfaces.. I know it might be better to treat them separetely)..
I have he plain
a=0.0 b=0.0 c=0.0 d=0.0 e=0.0 f=0.0 g=0.0 h=1.0 j=0.0 k=5.0
im doing the same as it's supposed, in order to check ray/quadric intersection..
*finding out t in t = b^2+or-sqrt(b*b-4*a*c)/2a
if you guys want I can show how to get a b and c coefficients....
anyway.. if I got that working with a sphere, should`n it be working ok with planes? it`s detecting collisions where it`s not supposed to.. so I really don`t know...
any help is welcome^^
thanks in advance...
Quote:Original post by kfboelter
*finding out t in t = b^2+or-sqrt(b*b-4*a*c)/2a
That should be t = (-b+or-sqrt(b*b-4*a*c))/(2*a)
Quote:if you guys want I can show how to get a b and c coefficients....
No, I can figure it out myself.
Quote:anyway.. if I got that working with a sphere, should`n it be working ok with planes?
No, you can't divide by 0.
hey there alvaro^^
thks again..
so, you were right bout the "t" formula... I miss typed...
howevere,, there is no division by 0...
here's how I get a, b and c coefs...
acoef = 2 * f * dx * dz + 2 * e * dy * dz + c * dz * dz + b * dy * dy +
a * dx * dx + 2 * d * dx * dy ;
bcoef = 2 * b * y0 * dy + 2 * a * x0 * dx + 2 * c * z0 * dz +
2 * h * dy + 2 * g * dx + 2 * j * dz + 2 * d * x0 * dy +
2 * e * y0 * dz + 2 * e * z0 * dy + 2 * d * y0 * dx +
2 * f * x0 * dz + 2 * f * z0 * dx;
ccoef = a * x0 * x0 + 2 * g * x0 + 2 * f * x0 * z0 + b * y0 * y0 +
2 * e * y0 * z0 + 2 * d * x0 * y0 + c * z0 * z0 + 2 * h * y0 +
2 * j * z0 + k ;
and also important to mention..
<code>
if (acoef == 0)
{
if (bcoef == 0)
{
return -1;
}
t = -ccoef/bcoef;
return t;
}
</code>
so no division by 0 there...
I thought a quadric representation of a surface is a generic way of dealing with the object.. really don't know whatsgoing on
thks again..
so, you were right bout the "t" formula... I miss typed...
howevere,, there is no division by 0...
here's how I get a, b and c coefs...
acoef = 2 * f * dx * dz + 2 * e * dy * dz + c * dz * dz + b * dy * dy +
a * dx * dx + 2 * d * dx * dy ;
bcoef = 2 * b * y0 * dy + 2 * a * x0 * dx + 2 * c * z0 * dz +
2 * h * dy + 2 * g * dx + 2 * j * dz + 2 * d * x0 * dy +
2 * e * y0 * dz + 2 * e * z0 * dy + 2 * d * y0 * dx +
2 * f * x0 * dz + 2 * f * z0 * dx;
ccoef = a * x0 * x0 + 2 * g * x0 + 2 * f * x0 * z0 + b * y0 * y0 +
2 * e * y0 * z0 + 2 * d * x0 * y0 + c * z0 * z0 + 2 * h * y0 +
2 * j * z0 + k ;
and also important to mention..
<code>
if (acoef == 0)
{
if (bcoef == 0)
{
return -1;
}
t = -ccoef/bcoef;
return t;
}
</code>
so no division by 0 there...
I thought a quadric representation of a surface is a generic way of dealing with the object.. really don't know whatsgoing on
Quote:Original post by kfboelter
I have he plain
a=0.0 b=0.0 c=0.0 d=0.0 e=0.0 f=0.0 g=0.0 h=1.0 j=0.0 k=5.0
Quote:Original post by kfboelter
howevere,, there is no division by 0...
So a is 0.0, and you are dividing by 2*a. How is that not dividing by zero?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement