00:41.15 |
*** join/#brlcad
aodzalkgykrzrriw
(~armin@dslb-088-066-131-231.088.066.pools.vodafone-ip.de) |
03:00.17 |
*** join/#brlcad asad_
(~asad00@host10-2.natpool.mwn.de) |
03:58.39 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.218.19) |
04:10.36 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.218.19) |
04:37.44 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.218.19) |
04:53.21 |
*** join/#brlcad merzo
(~merzo@62-51-133-95.pool.ukrtel.net) |
05:09.03 |
Notify |
03BRL-CAD Wiki:Mandeeps708 * 9829
/wiki/User:Mandeeps708/GSoC16/logs: /* logs*/ |
05:19.16 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.218.19) |
05:33.05 |
Notify |
03BRL-CAD Wiki:Mandeeps708 * 9830
/wiki/User:Mandeeps708/GSoC16/logs: /* Project Details */ |
05:34.24 |
nmz787_ |
brlcad: hmm, well I don't think the slicing is
terribly slow... I mean, for the speed and ease of Python coding,
the speed was fine for slicing. NIRT seems like it doesn't benefit
from parallel jobs, at least on my machine. I thought about whether
it was some kind of file lock... but I haven't tried copying the
g-file a few times and running a job on each file in
parallel. |
05:37.15 |
nmz787_ |
brlcad: what is more interesting and
concerning from your response is actually "or at least 0.0005mm for
computational stability"... why is 5 microns the limit for
computational stability??? I mean, have I been mislead by
front-page advertising i.e. last sentence here: http://brlcad.org/wiki/Overview#What_is_BRL-CAD.3F |
05:37.57 |
nmz787_ |
brlcad: I have been banking on "BRL-CAD users
can accurately model objects on scales ranging from the subatomic
through the galactic and get "all the details, all the time."" for
a few years |
06:42.00 |
*** join/#brlcad teepee_
(~teepee@unaffiliated/teepee) |
07:06.55 |
*** join/#brlcad maths22
(~maths22@unaffiliated/maths22) |
07:15.18 |
*** join/#brlcad tandoorichick
(b64b2de1@gateway/web/freenode/ip.182.75.45.225) |
07:38.53 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
07:56.03 |
*** join/#brlcad teepee]
(bc5c2134@gateway/web/freenode/ip.188.92.33.52) |
08:25.55 |
*** join/#brlcad Caterpillar
(~caterpill@unaffiliated/caterpillar) |
08:27.08 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
08:32.06 |
*** join/#brlcad merzo
(~merzo@user-94-45-58-141.skif.com.ua) |
08:49.12 |
*** join/#brlcad d_rossberg
(~rossberg@104.225.5.10) |
09:12.30 |
tandoorichick |
d_rossberg: could you please give suggestions
on my final work product? |
10:27.08 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
10:35.19 |
d_rossberg |
tandoorichick: okay, i assumed that you
already completed your evaluation for Google |
10:37.00 |
tandoorichick |
d_rossberg: i've made a blog post here:
https://tandoorichickblog.wordpress.com/2016/08/23/gsoc16workproduct/ |
10:40.02 |
d_rossberg |
is this essentially the same as the google doc
from your e-mail? |
10:40.11 |
tandoorichick |
Yes it is |
10:40.33 |
tandoorichick |
Since they had mentioned it needed to be at a
stable location, i published it in a blog.. |
10:42.16 |
tandoorichick |
also, could you advise me on the intersection
of lines issue i had mailed you about? |
10:43.35 |
tandoorichick |
when there are thin triangles, no feature
pairs are identified sometimes because wrong intersection of lines
is detected |
10:49.28 |
d_rossberg |
regarding your blog post: the only thing i
would recommend to add is to emphasize your final patch (with a
direkt link to it) |
10:52.46 |
d_rossberg |
regarding the thin triables: the first thing
which came into my mind when you talked about triangles with a
thickness on the edge of the precision was: remove them! |
10:53.16 |
d_rossberg |
is this feasible? |
10:55.37 |
tandoorichick |
i will add a direct link to my patch, maybe
put it up on g drive? |
10:55.46 |
tandoorichick |
i dont understand your comment about the thin
triangles.. |
10:57.16 |
d_rossberg |
you get numerical/precision issues with the
thin triangles, right? |
10:58.40 |
tandoorichick |
yeah.. |
10:59.41 |
d_rossberg |
so, they must be very thin, with a thickness
close to the numerical precision? |
11:00.14 |
tandoorichick |
yeah |
11:01.15 |
d_rossberg |
with almost no area => remove
them? |
11:02.08 |
d_rossberg |
maybe with moving its point in the middle on
the long edge |
11:02.29 |
tandoorichick |
yes i am doing that.. |
11:03.05 |
tandoorichick |
when it is a quadrilateral, or has more
vertices what do we do then? |
11:03.43 |
tandoorichick |
essentially all the vertices in the gap need
to be healed in one go, because they wont be visited
again. |
11:04.13 |
tandoorichick |
so with gaps with more number of vertices itm
ight tricky |
11:04.36 |
tandoorichick |
because we wouldnt know which vertex to choose
to heal first such that the whole mesh gets healed |
11:05.23 |
tandoorichick |
is what i am saying true? |
11:06.00 |
tandoorichick |
(also, i have included my final patch in the
blog) |
11:15.40 |
d_rossberg |
what i once did in a (maybe?) similar case was
a kind of preprocessing: i unified nearby vertices; this could be
extended by a test for vertices on (or near) edges |
11:16.02 |
d_rossberg |
this should give us a mesh with "wide open"
holes |
11:16.13 |
tandoorichick |
oh okay.. |
11:16.19 |
tandoorichick |
yes that seems fair enough |
11:16.57 |
tandoorichick |
but then again until when would be unify the
vertices? |
11:17.07 |
tandoorichick |
until it is a thin triangle or until it is a
whide hole? |
11:17.15 |
tandoorichick |
wide* |
11:17.34 |
tandoorichick |
because both are possible right? |
11:19.58 |
d_rossberg |
there shouldn't be any thin triangle any more
after this procedure: there are no two vertices closer to each
othes as <precision> and no vertex is closer to any edge than
<precision> |
11:21.22 |
tandoorichick |
so essentially one unification would be
enough? |
11:25.03 |
*** join/#brlcad merzo
(~merzo@92.60.189.225) |
11:28.48 |
d_rossberg |
one unification of vertices, one moving of
vertices onto nearby edges, and maybe an additional unification of
vertices (plus fixing affected edges and faces) |
11:34.12 |
tandoorichick |
the thing is then, the heal command might have
to be called multiple times as the algo does not revisit
vertices.. |
11:36.09 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
11:36.38 |
d_rossberg |
the filtering i described here is something
which would be done before the creation of the DCEL |
11:37.52 |
tandoorichick |
oh.. |
11:38.24 |
tandoorichick |
but the thin triangles that i described arise
after one round of healing.. |
11:42.09 |
d_rossberg |
but in this case: don't create thin triangles?
if the triangle you would create is thin something is
wrong |
11:42.59 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
11:45.46 |
tandoorichick |
the thing is, with the broken sphere: say a
vertex contraction happens. after this, for the vertex next to the
vertex just healed, the feature edge becomes the edge that has been
newly added, whose dist measure is just slightly lesser than that
of the previous feature (which was a vertex). this is what results
in thin triangles.. |
12:26.20 |
*** join/#brlcad asad_
(~asad00@host10-2.natpool.mwn.de) |
12:37.36 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
12:39.03 |
d_rossberg |
when do you know that the triangle is
thin? |
12:56.23 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
13:19.34 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
13:22.23 |
tandoorichick |
d_rossberg: algorithmically i'm not sure, i
just saw from the return value of the orientation function, and
from the visualization |
13:29.32 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
13:29.37 |
d_rossberg |
maybe there is a (small) consistency check
necesary after each healing step to make it watertight |
13:30.35 |
tandoorichick |
okay, yeah that seems plausible.. |
13:32.34 |
tandoorichick |
this step would involve the unification of the
close vertices? |
13:33.20 |
tandoorichick |
and what do i take as the tolerance for
that |
13:36.57 |
d_rossberg |
i would recommend a machine or double
dependent value |
13:37.20 |
d_rossberg |
i'm using 5.3e-11 for 3d points |
13:37.34 |
tandoorichick |
hmmm okay cool.. |
13:37.42 |
tandoorichick |
i will try to finish this.. |
13:38.02 |
d_rossberg |
this is (3. *
std::numeric_limits<double>::epsilon()^2)^1/3 |
13:38.44 |
tandoorichick |
ok cool |
13:39.08 |
d_rossberg |
and with absMax =
std::max(std::max(fabs(value1), fabs(value2)), 1.) |
13:39.37 |
d_rossberg |
test for fabs(value1 - value2) < (absMax *
tolerance) |
13:43.05 |
*** join/#brlcad kintel
(~kintel@unaffiliated/kintel) |
13:50.19 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
13:51.21 |
tandoorichick |
d_rossberg: actually the vertices of the
triangular hole are v1: (-12.976259378703389, 1.4414630845285288,
995.78376342420256), v2: (587.78601884841919, 65.293997526168823,
809.01700258255005) and v3: (0, 0, 1000) |
13:51.39 |
tandoorichick |
v3 is to be projected onto the edge
v1v2 |
13:51.49 |
tandoorichick |
the vertices are not that close enough
right? |
13:54.09 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
13:58.48 |
tandoorichick |
also what are value1 and value2 wrt the 3d
points? |
14:03.43 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.244.81) |
14:15.09 |
*** join/#brlcad yorik
(~yorik@187.35.8.25) |
14:16.06 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.212.162) |
14:17.49 |
d_rossberg |
replace fabs(value1 - value2) with the
distance of the two points |
14:19.15 |
d_rossberg |
your points really aren't so close
... |
14:19.33 |
tandoorichick |
yeah... |
14:19.53 |
tandoorichick |
basically the error pops up in the orientation
function |
14:20.32 |
tandoorichick |
when the the two points v1, v2 and the
orthogonal projection of v3 onto v1v2 are passed for orientation
check, |
14:20.37 |
tandoorichick |
collinearity isnot returned |
14:20.41 |
tandoorichick |
im not sure why.. |
14:21.08 |
tandoorichick |
this is the basis of all error pertaining to
thin triangles.. |
14:21.24 |
tandoorichick |
any opinions as to why this might be
happening? |
14:27.20 |
*** join/#brlcad amarjeet_
(~Amarjeet@101.211.233.74) |
14:42.01 |
tandoorichick |
d_rossberg: alternatively, i could try this.
im currently ignoreing edges that are incident on a vertex for the
candidate of closest edge. if this were not the case, with thin
triangles, the two closest vertices would be unified. this could
work. but im not sure i can complete it before the gsoc deadline.
but definitely before the showcase.. |
14:43.57 |
d_rossberg |
your tolerance is very low |
14:44.15 |
d_rossberg |
try 5.3e-11 ? |
14:45.22 |
d_rossberg |
keep in mind what
std::numeric_limits<double>::epsilon() means |
14:47.04 |
d_rossberg |
i.e. "< absMax * tolerance" |
14:49.39 |
tandoorichick |
i dont exactly get what absMax is |
14:53.27 |
tandoorichick |
i set my tolerance to the value you
suggested |
14:53.30 |
d_rossberg |
okay, you can ignore this if one value is
0 |
14:54.12 |
d_rossberg |
i.e. if you test for "value = 0?" |
14:54.58 |
tandoorichick |
i set it to 5.3e-11 and tried.. the issue
persists.. |
15:01.32 |
d_rossberg |
there seams to be a more general issue with
the orientation function: if the 3 points are in the x=0 plane it
returns collinear ... |
15:03.02 |
tandoorichick |
right... |
15:04.49 |
tandoorichick |
id been very confused as to how to implement
the orientation function, guess i didn't think it
through.. |
15:04.58 |
tandoorichick |
what may be the right implementation of
it? |
15:05.02 |
d_rossberg |
so: two points define a vector, when is the
third one clockwise and when counterclockwise? |
15:05.47 |
tandoorichick |
clockwise if the point is to the "right" of it
and CCw if left? |
15:06.48 |
d_rossberg |
you mean in the projection to the xy
plane? |
15:07.29 |
tandoorichick |
not quite |
15:08.22 |
tandoorichick |
i mean to say if i was at point 1, and im
looking towards point 2, if to the right of my line of sight, then
CW, if left ccw |
15:08.50 |
tandoorichick |
if point 3 is to the right of my line of
sight* |
15:10.57 |
tandoorichick |
how about finding the cross product of the
vectors AB, AC when the three points in order are A, B,
C? |
15:11.36 |
d_rossberg |
"right" and "left" devide the space in two
parts, the partition plane is described by the vector from 1 to 2
and a third point: which? |
15:13.10 |
tandoorichick |
ok yeah it is the projection in the xy
plane.. |
15:14.18 |
d_rossberg |
the cross product gives you a vector
orthogonal to your triangle |
15:15.11 |
tandoorichick |
hmmmm |
15:15.23 |
d_rossberg |
i'll rethink it when i review your
code |
15:15.32 |
tandoorichick |
how do we determine the orientation? |
15:15.40 |
tandoorichick |
okay.. |
15:15.52 |
tandoorichick |
so do i submit off this code? |
15:16.41 |
tandoorichick |
i would like to finish fixing the orientation
code.. |
15:16.47 |
tandoorichick |
any suggestions? |
15:20.01 |
d_rossberg |
with your understanding of orientation you
will likely go into trouble if you go around something, the right
and left will flip, e.g. with a sphere |
15:20.37 |
tandoorichick |
hmmmm |
15:21.08 |
tandoorichick |
what could i do then? |
15:22.56 |
d_rossberg |
the question is: for what do you need it? only
for checkIfIntersectsInterior() and checkIfCollinear()? |
15:24.42 |
tandoorichick |
as of now, the init functions also use
it.. |
15:26.41 |
tandoorichick |
setting the start edge for a face, and the
incident face ref for an edge.. |
15:27.34 |
tandoorichick |
and also at one point if the square is a hole,
to check if it is indeed a hole and not the external
boundary |
15:27.41 |
*** join/#brlcad amarjeet
(~Amarjeet@101.211.249.120) |
15:30.19 |
d_rossberg |
as i already mentioned: determine the
orientation from the nearby triangles |
15:31.20 |
d_rossberg |
what is really inside and outside isn't
important, but it has to be consistent for the whole mesh |
15:31.32 |
tandoorichick |
yeah i got that.. |
15:32.05 |
tandoorichick |
thought i will look into this more pressing
issue of line intersections before i looked into that bigger
issue.. |
15:34.20 |
d_rossberg |
okay :) |
15:53.10 |
*** join/#brlcad asad_
(~asad00@host10-2.natpool.mwn.de) |
15:54.20 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
16:13.07 |
*** join/#brlcad ickby
(~stefan@x5d847777.dyn.telefonica.de) |
16:36.16 |
*** join/#brlcad ickby
(~stefan@x5d847777.dyn.telefonica.de) |
16:37.10 |
*** join/#brlcad sniok
(~sniok@89.252.2.135) |
17:16.26 |
*** join/#brlcad kintel
(~kintel@unaffiliated/kintel) |
18:02.49 |
*** join/#brlcad amarjeet_
(~Amarjeet@101.211.209.239) |
18:31.10 |
*** join/#brlcad ickby_
(~stefan@x5d847777.dyn.telefonica.de) |
18:39.27 |
*** join/#brlcad tandoorichick
(b64b2de1@gateway/web/freenode/ip.182.75.45.225) |
19:47.29 |
*** join/#brlcad merzo
(~merzo@80-118-132-95.pool.ukrtel.net) |
19:47.43 |
Notify |
03BRL-CAD:starseeker * 68743
brlcad/trunk/src/librt/primitives/bot/g_bot_include.c: Revert
commits 61337 and r61598. The former broke some BoT raytracing
situations, and the latter is causing more subtle issues with an
isolated bot region reporting one raytracing result and the same
region below another comb reporting a different result. |
20:51.29 |
*** join/#brlcad ickby
(~stefan@x5d847777.dyn.telefonica.de) |
20:54.48 |
*** join/#brlcad ickby
(~stefan@x5d847777.dyn.telefonica.de) |
21:21.53 |
*** join/#brlcad asad_
(~asad00@host10-2.natpool.mwn.de) |
21:58.47 |
*** join/#brlcad teepee_
(~teepee@unaffiliated/teepee) |
22:14.33 |
*** join/#brlcad merzo
(~merzo@80-118-132-95.pool.ukrtel.net) |