Generic Polyhedron Primitives

View: New views
15 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 - 3 | Next >

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Jun 23, 2009 at 5:23 PM, Bart Janssens
<bart.janssens@...> wrote:
> > > I had thought of this as a base class, as is done with the bitmap
> > > modifiers in the SDK. But we can re-evaluate this once the list of
> > > hints is updated. The advantage is that individual cache writers don't
> > > need to worry about the hint-mapping in the constructors.
>
> I've added a list

OK, so somehow I accidentally hit the "send" shortcut in GMail... I've
added a list of hints at http://www.k-3d.org/wiki/Painter_Cache#Hints
I think that for non-textured polyhedron painters, which has been the
main emphasis of the caching painters so far, the hints that were
there suffice. The cached_data class should be good as a base class
for data related to polyhedra, so I've renamed it to
''cached_polyhedron_data''.

> > Looks reasonable.  You might make it clear that the tweaks are an
> > ordered list of point values, not vectors - i.e. tweaks are not
> > cumulative.  That makes life much, much easier for a tool.

That makes me wonder: could the tweaks array actually be replaced with
a k3d::mesh::points_t, shared with the points array of the output_mesh
of TweakPoints?

Cheers,

--
Bart

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> That makes me wonder: could the tweaks array actually be replaced with
> a k3d::mesh::points_t, shared with the points array of the output_mesh
> of TweakPoints?

I'm going to say "possibly" ... you would have to create a highly
specialized property implementation to work with it, since the set of
tweaks needs to be a property for undo/redo purposes.

There are several tradeoffs here - making tweaks a combination of
index+point means that the storage / computation cost is O(number of
points tweaked) instead of O(total number of points in the mesh).  That
doesn't seem like a big difference, particularly if you could share the
array as you suggest, but keep in mind that this cost affects undo/redo
as-well.

Cheers,
Tim

[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
url:www.k-3d.org
version:2.1
end:vcard



------------------------------------------------------------------------------

_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Jun 24, 2009 at 6:32 AM, Timothy M. Shead<tshead@...> wrote:
> There are several tradeoffs here - making tweaks a combination of
> index+point means that the storage / computation cost is O(number of
> points tweaked) instead of O(total number of points in the mesh).  That
> doesn't seem like a big difference, particularly if you could share the
> array as you suggest, but keep in mind that this cost affects undo/redo
> as-well.

OK, a first test is in my repository. I chose the index + position
approach, because I think I would have to copy the entire points array
each time it changes for undo/redo. One possible further optimization
is to implement start/end drag using the icommand_node interface, so
we can record undo/redo only after a drag motion. But for now I have
no plans to implement that, until it is shown to be necessary.

One flaw that remains is document loading: an update function is
needed in serialization_xml to make the change from vector to point
tweaks.

Next up is proper hint passing: I want to pass a geometry_changed_hint
when the tweaks are updated, containing the indices of the tweaked
points. I think in the end mesh_modifier.h will have to be modified
for this (i.e. use pointer_demand_storage)?

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Aug 11, 2009 at 12:39 AM, Bart
Janssens<bart.janssens@...> wrote:
> Next up is proper hint passing: I want to pass a geometry_changed_hint
> when the tweaks are updated, containing the indices of the tweaked
> points. I think in the end mesh_modifier.h will have to be modified
> for this (i.e. use pointer_demand_storage)?

I've pushed a new version of TweakPoints, using hint mapping, based on
a copy of mesh_modifier.h that uses pointer_demand_storage. I'm having
trouble generating the mesh_geometry_changed hint, though: as it
stands, the hint mapping makes sure this hint is emitted whenever the
tweaks change, but I see no way to add the list of changed points to
the hint.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Aug 26, 2009 at 11:16 PM, Bart
Janssens<bart.janssens@...> wrote:
> I've pushed a new version of TweakPoints, using hint mapping, based on
> a copy of mesh_modifier.h that uses pointer_demand_storage. I'm having
> trouble generating the mesh_geometry_changed hint, though: as it
> stands, the hint mapping makes sure this hint is emitted whenever the
> tweaks change, but I see no way to add the list of changed points to
> the hint.

The painter_cache has been converted to the new proposal in my branch,
and the VBO painter is making use of the new system. If there are no
problems, I'll continue converting the other painters. Note that these
changes are not ready to be merged to the main repo yet.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> On Wed, Aug 26, 2009 at 11:16 PM, Bart
> Janssens<bart.janssens@...> wrote:
>> I've pushed a new version of TweakPoints, using hint mapping, based on
>> a copy of mesh_modifier.h that uses pointer_demand_storage. I'm having
>> trouble generating the mesh_geometry_changed hint, though: as it
>> stands, the hint mapping makes sure this hint is emitted whenever the
>> tweaks change, but I see no way to add the list of changed points to
>> the hint.
>
> The painter_cache has been converted to the new proposal in my branch,
> and the VBO painter is making use of the new system. If there are no
> problems, I'll continue converting the other painters. Note that these
> changes are not ready to be merged to the main repo yet.
Since these are performance-related changes instead of features, can
they wait until after 0.8?  I'd like to give them my full attention, but
I'm also pretty darned anxious to get 0.8 out the door ...

Cheers,
Tim


[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
version:2.1
end:vcard



------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
> Since these are performance-related changes instead of features, can they
> wait until after 0.8?  I'd like to give them my full attention, but I'm also
> pretty darned anxious to get 0.8 out the door ...

Well, the SDS painter needs to be restored, and I much prefer using
the new cache system for that. It's working for the point painter now,
which I wanted to use as a simple test case. See

http://code.google.com/p/k3d-bart/source/diff?spec=svn7f208d297154b43e27939f9d697295c89196d915&old=d1c90cf9692379b88337cc0a0143df791884b76d&r=7f208d297154b43e27939f9d697295c89196d915&format=side&path=%2Fmodules%2Fadvanced_opengl_painters%2Fvbo_point_painter.cpp

for the simplification so far. Most notably (aside from what's on the
wiki), I got rid of the selection cache, which always was something I
disliked. I will use this as the basis for the restored SDS painter,
any further optimizations of the system (both performance-wise and
from a design standpoint) can be done after 0.8.

I'm now working on getting CatmullClark running again, the painter
should be relatively easy after that.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
>> Since these are performance-related changes instead of features, can they
>> wait until after 0.8?  I'd like to give them my full attention, but I'm also
>> pretty darned anxious to get 0.8 out the door ...
>
> Well, the SDS painter needs to be restored, and I much prefer using
> the new cache system for that. It's working for the point painter now,
> which I wanted to use as a simple test case. See
>
> http://code.google.com/p/k3d-bart/source/diff?spec=svn7f208d297154b43e27939f9d697295c89196d915&old=d1c90cf9692379b88337cc0a0143df791884b76d&r=7f208d297154b43e27939f9d697295c89196d915&format=side&path=%2Fmodules%2Fadvanced_opengl_painters%2Fvbo_point_painter.cpp
>
> for the simplification so far. Most notably (aside from what's on the
> wiki), I got rid of the selection cache, which always was something I
> disliked. I will use this as the basis for the restored SDS painter,
> any further optimizations of the system (both performance-wise and
> from a design standpoint) can be done after 0.8.
>
> I'm now working on getting CatmullClark running again, the painter
> should be relatively easy after that.
>
> Cheers,
>
Fair enough.

Cheers,
Tim


[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
version:2.1
end:vcard



------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Sep 1, 2009 at 4:33 PM, Timothy M. Shead<tshead@...> wrote:
> Bart Janssens wrote:
>> I'm now working on getting CatmullClark running again, the painter
>> should be relatively easy after that.
>
> Fair enough.

OK, CatmullClark and the basic SDS painters are now restored in my
repository. Things went pretty smoothly using the new cache system,
except that for some reason I couldn't use pipeline_data as key, but
using the raw pointer works. Not sure why, since the pipeline_data
compare operators also refer to the raw pointer. Using pipeline_data,
the key was always found, even if the pointer had changed. See the
diff between the last two changesets to compare both approches.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
> Bart Janssens wrote:
>>
>> On Wed, Aug 26, 2009 at 11:16 PM, Bart
>> Janssens<bart.janssens@...> wrote:
>>> I'm having
>>> trouble generating the mesh_geometry_changed hint, though: as it
>>> stands, the hint mapping makes sure this hint is emitted whenever the
>>> tweaks change, but I see no way to add the list of changed points to
>>> the hint.

> Since these are performance-related changes instead of features, can they
> wait until after 0.8?  I'd like to give them my full attention, but I'm also
> pretty darned anxious to get 0.8 out the door ...

The above problem became more visible with the SDS painters. If anyone
wants to try the latest version from my repository, the interactive
SDS preview works again, but it is slower than before because all
points are updated all the time. It's usable on one of my machines (7
fps), but too slow (< 3fps) on another. I use Joe's Wilbert model for
testing, using release builds.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
>> Bart Janssens wrote:
>>> On Wed, Aug 26, 2009 at 11:16 PM, Bart
>>> Janssens<bart.janssens@...> wrote:
>>>> I'm having
>>>> trouble generating the mesh_geometry_changed hint, though: as it
>>>> stands, the hint mapping makes sure this hint is emitted whenever the
>>>> tweaks change, but I see no way to add the list of changed points to
>>>> the hint.
>
>> Since these are performance-related changes instead of features, can they
>> wait until after 0.8?  I'd like to give them my full attention, but I'm also
>> pretty darned anxious to get 0.8 out the door ...
>
> The above problem became more visible with the SDS painters. If anyone
> wants to try the latest version from my repository, the interactive
> SDS preview works again, but it is slower than before because all
> points are updated all the time. It's usable on one of my machines (7
> fps), but too slow (< 3fps) on another. I use Joe's Wilbert model for
> testing, using release builds.
Are you saying that I should pull this?  As a general observation, I'd
like to have a little more clarity / formality around when you (or
anyone else) has something to pull - preferably something unambiguous
like "Tim: pull revision foo." :)

Cheers,
Tim

[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
version:2.1
end:vcard



------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Sep 7, 2009 at 4:02 AM, Timothy M. Shead<tshead@...> wrote:
> Bart Janssens wrote:
>> On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
> Are you saying that I should pull this?  As a general observation, I'd like
> to have a little more clarity / formality around when you (or anyone else)
> has something to pull - preferably something unambiguous like "Tim: pull
> revision foo." :)

OK, Tim and anyone else wanting to test SDS preview: pull revision
d9f1da344738702b586283bfbd6219e4e0160c9a from
https://k3d-bart.googlecode.com/hg/ and let me know if it's fast
enough to be usable.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> On Mon, Sep 7, 2009 at 4:02 AM, Timothy M. Shead<tshead@...> wrote:
>> Bart Janssens wrote:
>>> On Mon, Aug 31, 2009 at 3:58 AM, Timothy M. Shead<tshead@...> wrote:
>> Are you saying that I should pull this?  As a general observation, I'd like
>> to have a little more clarity / formality around when you (or anyone else)
>> has something to pull - preferably something unambiguous like "Tim: pull
>> revision foo." :)
>
> OK, Tim and anyone else wanting to test SDS preview: pull revision
> d9f1da344738702b586283bfbd6219e4e0160c9a from
> https://k3d-bart.googlecode.com/hg/ and let me know if it's fast
> enough to be usable.
>
> Cheers,
>
Seems to be working fine here ...

Cheers,
Tim


[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
version:2.1
end:vcard



------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Sep 9, 2009 at 5:47 AM, Timothy M. Shead <tshead@...> wrote:
> Seems to be working fine here ...

OK, what sort of geometry did you use for testing?

BTW, regarding hg, I think this should have been a merge with sf.net,
since it appears you rebased and now I get my last change twice, as I
can't alter the history on the k3d-bart repo.

Cheers,

--
Bart

------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: Painter Cache [was:] Generic Polyhedron Primitives

by Timothy M. Shead :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:
> On Wed, Sep 9, 2009 at 5:47 AM, Timothy M. Shead <tshead@...> wrote:
>> Seems to be working fine here ...
>
> OK, what sort of geometry did you use for testing?

Nothing fancy, I started with a segmented cube and moved points around
with the MoveTool.  I wasn't able to use ExtrudeFaces, which is how I
normally play around with SDS's, but that is a problem with
ExtrudeFaces, not the painter.

Cheers,
Tim


[tshead.vcf]

begin:vcard
fn:Timothy Shead
n:Shead;Timothy
org:www.k-3d.org
email;internet:tshead@...
title:Founder
x-mozilla-html:FALSE
version:2.1
end:vcard



------------------------------------------------------------------------------
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
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development
< Prev | 1 - 2 - 3 | Next >