01:44.48 |
brlcad |
yeah, the two should be decoupled, but even at
a low framerate, that penetration shouldn't happen -- implies
something is amiss |
01:44.55 |
brlcad |
still, that is fantastic |
01:45.17 |
brlcad |
haven't seen a proper brl-cad animation since
the old joint days, probably 8 years ago |
03:59.59 |
*** part/#brlcad n_reed
(~nreed1@c-68-55-142-136.hsd1.md.comcast.net) |
04:28.20 |
*** join/#brlcad kunigami
(~kunigami@201.53.206.27) |
05:42.02 |
abhi2011 |
Thanks everyone :) |
05:42.45 |
abhi2011 |
brlcad: Yes the view seems to change to
accomodate all objects with the 1024 by 1024 image size |
05:43.03 |
abhi2011 |
I ll play around with the rtcheck parameters
to see whats up |
05:43.49 |
abhi2011 |
I mean rt |
05:45.12 |
abhi2011 |
Yeah I think the penetration will no happen if
I specify a plane as the ground plane |
05:46.15 |
abhi2011 |
currently I make a box shape with the same
parameters as a arb8 shape in mged (the command looks for a gp.s
arb8 shape and uses its bb for the ground plane) |
05:46.39 |
abhi2011 |
but yeah that cant be an excuse, penetration
shouldnt happen either way |
09:12.51 |
*** join/#brlcad archivist
(~archivist@host81-149-189-98.in-addr.btopenworld.com) |
09:52.50 |
*** join/#brlcad archivist
(~archivist@host81-149-189-98.in-addr.btopenworld.com) |
12:27.38 |
*** join/#brlcad abhi2011
(~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl) |
12:56.30 |
*** join/#brlcad abhi2011
(~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl) |
12:58.13 |
brlcad |
abhi2011: the "what's up" is that a view isn't
specified, so it just autosizes the view based on what is being
drawn |
12:58.50 |
brlcad |
the view merely needs to be specified (if you
run "saveview" within mged, you'll get a view script that you could
re-use to render each frame consistently) |
12:59.02 |
abhi2011 |
oh ok, I ll try that |
12:59.23 |
abhi2011 |
I have 1 more question |
12:59.30 |
abhi2011 |
so I have been trying to draw a stack of
cubes |
12:59.34 |
abhi2011 |
upon each other |
12:59.36 |
abhi2011 |
in mged |
12:59.44 |
abhi2011 |
so I run a tcl loop |
12:59.54 |
brlcad |
I suspect the penetration is because you're
using AABBs |
13:00.25 |
brlcad |
you're passing the aabb's to bullet as simple
cubes .. bullet applies rotations to them which causes them to
tumble |
13:00.38 |
brlcad |
you correctly apply the tumble transformation
to them |
13:01.15 |
brlcad |
but don't feed bullet new aabbs (as they get
bigger when the arb8 tumbles), so it's allowed to get too close to
the surface |
13:02.22 |
brlcad |
I suspect if you changed the arb8s to all
spheres, it wouldn't penetrate (but then the spheres would bounce
off each other before they actually touch) |
13:02.36 |
brlcad |
at least until you get the custom collision
handler implemented |
13:02.37 |
abhi2011 |
yes, but bullet maintains it own aabbs
too |
13:02.55 |
abhi2011 |
thats how it eliminates a large number of
objects in broadphase collison detection |
13:02.55 |
brlcad |
so sounds like three things todo |
13:03.54 |
brlcad |
1) you need some means to update the bb to
bullet each timestep if that's not happening already, not just
reusing the original bb |
13:05.13 |
brlcad |
2) you'll need to register a custom collision
detection callback for bullet to call, this will be a callback you
write that shoots a simple small grid of rays |
13:05.33 |
brlcad |
3) render with a view set ;) |
13:13.24 |
abhi2011 |
ok |
13:13.48 |
abhi2011 |
yes, actually I dont set the aabb at all in
bullet |
13:14.08 |
abhi2011 |
I just make a box with the same dimensions as
the aabb |
13:14.29 |
abhi2011 |
I suspect bullet updates the aabb, but maybe
not |
13:15.11 |
abhi2011 |
so I was thinking about the sphere dropping on
a plane scenario |
13:15.35 |
abhi2011 |
what I would do now is create a cube aligned
to the aabb of the sphere |
13:15.39 |
abhi2011 |
and start the sim |
13:16.08 |
abhi2011 |
when the cube touches the ground plane, then
bullet would generate a bunch of contact points all along the
bottom face of the aabb |
13:16.27 |
abhi2011 |
however at this point I am arranging for a
callback to my code |
13:17.42 |
abhi2011 |
in this callback function, I ll use rtcheck or
something similar to check the regions which overlap, which in this
case would be a sphere region and a ground plane region |
13:18.25 |
abhi2011 |
and I ll modify the contact point list to the
1 single point at the bottom of the sphere which actually makes
contact from the region perspective |
13:19.10 |
abhi2011 |
consequently the sphere region aabb may roll
over as its contact points have been modified |
13:19.32 |
abhi2011 |
note I am not talking about geometry here at
all as discussed before |
13:20.34 |
abhi2011 |
I am dealing simply with regions and their
aabbs :) |
13:21.14 |
abhi2011 |
all this is based on the fact that a tool does
exist in brl-cad which can give me a list of contact points when 2
regions overlap in 3d space |
13:37.40 |
brlcad |
so a tool exists, but I think you'll find it
even easier to shoot the rays yourself (where you can easily
control the resolution) |
13:38.12 |
abhi2011 |
ok |
13:39.18 |
brlcad |
as for the aabbs, that was my point -- you
pass the aabb (which you feed to bullet as a box), bullet treats it
as a box and begins to tumble and apply rotations |
13:39.57 |
brlcad |
once you apply that rotation which came back
from bullet, the bb needs to be recalculated and set AGAIN in
bullet |
13:40.22 |
brlcad |
if you do that, then there will be no object
bounding box penetration |
13:40.50 |
brlcad |
then you can write the collision detection
callback that will more accurately report the contact points when
bb's overlap |
13:41.44 |
abhi2011 |
ok yeah I can do that for sure, it would
require calculating the aabb every simulation tick but that should
be ok |
13:42.01 |
brlcad |
yeah, should be instantaneous until the
objects get into the thousands |
13:42.39 |
brlcad |
the collision detection callback is going to
be what slows things down a little |
13:43.18 |
brlcad |
but what I suggest is starting with the bare
minimum, shooting two 3x3 grids of rays |
13:44.22 |
abhi2011 |
ok, but 3 by 3 grid means, if the rays are far
apart then they may miss many cubes |
13:44.25 |
brlcad |
er, 3x3x3 grid of rays, a 3x3 for each axis,
giving you 27 rays |
13:44.35 |
abhi2011 |
ok |
13:44.51 |
brlcad |
that's just a starting point to make sure
things are working |
13:44.55 |
abhi2011 |
ok |
13:45.47 |
brlcad |
that number can EASILY be increased for better
detection, but it will slow things down at a cubic rate |
13:46.02 |
abhi2011 |
yes true |
13:46.21 |
abhi2011 |
no point in resetting the contatc manifold
multiple times in the same frame |
13:48.06 |
abhi2011 |
though different rays would pass through the
overlap region in different places, so new points would be
generated by every ray within the overlap region |
13:50.11 |
brlcad |
yes, and the points generated would be precise
including the contact point and hit point normal |
14:42.53 |
abhi2011 |
by the way I came across a strange issue while
moving objects into position in mged |
14:43.07 |
abhi2011 |
so I generally use
rt_matrix_transform() |
14:43.43 |
abhi2011 |
seems if i directly pass it a matrix in the
opengl format (after transposing it as brlcad is row major while
opengl is column major) |
14:43.56 |
abhi2011 |
then the rotations are applied first and then
the translation |
14:44.10 |
abhi2011 |
so the object ends up in a wierd
place |
14:44.44 |
abhi2011 |
currently i translate to the origin , do the
rotation and then translate again wrt orgin to get to the final
position |
17:22.31 |
*** join/#brlcad juanman
(~quassel@unaffiliated/juanman) |
17:26.43 |
*** join/#brlcad abhi2011_
(~chatzilla@x033197.its-s.tudelft.nl) |
17:30.23 |
*** join/#brlcad abhi2011
(~chatzilla@x033197.its-s.tudelft.nl) |
18:19.57 |
*** join/#brlcad abhi2011_
(~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl) |
19:14.18 |
*** join/#brlcad merzo
(~merzo@170-171-133-95.pool.ukrtel.net) |
19:33.52 |
*** join/#brlcad abhi2011
(~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl) |
20:56.07 |
CIA-62 |
BRL-CAD: 03jordisayol * r46563
10/brlcad/trunk/misc/debian/control: Change building dependencies
from make to cmake for debian sources |
21:04.40 |
*** join/#brlcad jordisayol
(~jordisayo@unaffiliated/jordisayol) |