Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

View: New views
7 Messages — Rating Filter:   Alert me  

Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Ricardo Mayor :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This patch solves the error id 2827244.  I've attached the patch an a rib file with an example.  The problem was related with dicing of the ripoints primitive. When the number of points is greater than 256, a CqPoints instance is diceable. The CqPoints.split function spilts the instance into two diferents cqpoints but it doesn't set maximum size of each new instance.
This patch fix the problem.

[my_changes.patch]

379a380,382
>   pA->InitialiseMaxWidth();
>   pB->InitialiseMaxWidth();
>



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

points_256_bug2827244.rib (2K) Download Attachment

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Ricardo Mayor :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


The patch sended was senseless because it hasn't got any reference to the modified file . I've attached a new one. I hope this is the correct one.

Best regards

On Sun, Aug 16, 2009 at 9:54 PM, Ricardo Mayor <ricardo.mayor@...> wrote:
This patch solves the error id 2827244.  I've attached the patch an a rib file with an example.  The problem was related with dicing of the ripoints primitive. When the number of points is greater than 256, a CqPoints instance is diceable. The CqPoints.split function spilts the instance into two diferents cqpoints but it doesn't set maximum size of each new instance.
This patch fix the problem.


[my_changes.patch]

--- ../notas_personales/error/points.cpp.old 2009-08-16 21:38:19.144692012 +0100
+++ libs/core/geometry/points.cpp 2009-08-16 21:39:02.084694408 +0100
@@ -377,6 +377,9 @@
  pA->SetSurfaceParameters( *this );
  pB->SetSurfaceParameters( *this );
 
+ pA->InitialiseMaxWidth();
+ pB->InitialiseMaxWidth();
+
  KDTree().Subdivide( pA->KDTree(), pB->KDTree() );
 
  aSplits.push_back( pA );


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Paul Gregory-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ricardo,

Thanks for the patch, we noticed that the original was incomplete, but managed to work out the intent. We were just reviewing the patch before committing. Thanks for sending an update, I'll respond to this mail when it is committed.


Paul

2009/8/17 Ricardo Mayor <ricardo.mayor@...>

The patch sended was senseless because it hasn't got any reference to the modified file . I've attached a new one. I hope this is the correct one.

Best regards

On Sun, Aug 16, 2009 at 9:54 PM, Ricardo Mayor <ricardo.mayor@...> wrote:
This patch solves the error id 2827244.  I've attached the patch an a rib file with an example.  The problem was related with dicing of the ripoints primitive. When the number of points is greater than 256, a CqPoints instance is diceable. The CqPoints.split function spilts the instance into two diferents cqpoints but it doesn't set maximum size of each new instance.
This patch fix the problem.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Chris Foster-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Aug 18, 2009 at 3:39 AM, Ricardo Mayor<ricardo.mayor@...> wrote:
>
> The patch sended was senseless because it hasn't got any reference to the
> modified file . I've attached a new one. I hope this is the correct one.

Thanks!

However when I apply this patch, I get a segfault when trying to render
Matthias' nebula scene which I'm using for testing.

I suspect the InitialiseMaxWidth() calls need to come *after* the
KDTree().Subdivide() call.

Another issue: Should really bother re-calculating the maximum width every
time we subdivide a point set?  Using the max-width of the full cloud for all
the sub-clouds would give correct results but would potentially be inefficient
if a point set had a very large range of widths.

I expect that a given call to RiPoints() would usually contain points of much
the same diameter.  Thoughts?

~Chris.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Ricardo Mayor :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I tested the patch using the regression tests without problems. But I think it's better to use a more specific test. Where can I find the nebula scene?



On Tue, Aug 18, 2009 at 6:15 AM, Chris Foster <chris42f@...> wrote:
On Tue, Aug 18, 2009 at 3:39 AM, Ricardo Mayor<ricardo.mayor@...> wrote:
>
> The patch sended was senseless because it hasn't got any reference to the
> modified file . I've attached a new one. I hope this is the correct one.

Thanks!

However when I apply this patch, I get a segfault when trying to render
Matthias' nebula scene which I'm using for testing.

I suspect the InitialiseMaxWidth() calls need to come *after* the
KDTree().Subdivide() call.

Another issue: Should really bother re-calculating the maximum width every
time we subdivide a point set?  Using the max-width of the full cloud for all
the sub-clouds would give correct results but would potentially be inefficient
if a point set had a very large range of widths.

I expect that a given call to RiPoints() would usually contain points of much
the same diameter.  Thoughts?

~Chris.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Chris Foster-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Aug 18, 2009 at 8:25 PM, Ricardo Mayor<ricardo.mayor@...> wrote:
> I tested the patch using the regression tests without problems. But I think
> it's better to use a more specific test. Where can I find the nebula scene?

It's rather large I'm afraid (50Mb).  For simplicity I've reproduced
the segfault in a small test scene by using the "width" parameter to
RiPoints rather than "constantwidth" (see the attached RIB).

In any case, I know how to fix this...  The main issue to decide on is
whether we want to recalculate the max width every time we split the
point cloud in two, or whether we just want to pass m_MaxWidth to the
new child clouds without recalculating.  I'm not sure what's best;
either would work but relative efficiency would depend on the scene.

~Chris.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development

large_points.rib (4K) Download Attachment

Re: Patch for error ID 2827244, large numbers of RiPoints incorrectly bound

by Chris Foster-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Aug 18, 2009 at 10:15 PM, Chris Foster<chris42f@...> wrote:
> In any case, I know how to fix this...  The main issue to decide on is
> whether we want to recalculate the max width every time we split the
> point cloud in two, or whether we just want to pass m_MaxWidth to the
> new child clouds without recalculating.  I'm not sure what's best;
> either would work but relative efficiency would depend on the scene.

Well, I've settled on duplicating m_MaxWidth for the child surfaces
rather than recalculating it on each call to Split().  The changes are
pushed into the trunk now.

Cheers,
~Chris.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Aqsis-development mailing list
Aqsis-development@...
https://lists.sourceforge.net/lists/listinfo/aqsis-development