tylermorganwall / rayrender

A pathtracer for R. Build and render complex scenes and 3D data visualizations directly from R
http://www.rayrender.net
622 stars 42 forks source link

Documentation and/or Handling of nested group_objects calls #8

Closed brodieG closed 3 years ago

brodieG commented 4 years ago

Currently it seems that rayrender will ignore all but the last group_objects call that applies to a particular object or group of objects. My prior based on past experience with other grouped object transforms is that transformations will be applied sequentially, and at first I was confused by what was actually happening (I was trying to rotate and position a group of objects, and then make a bigger group with that group and other objects that would then get rotated again).

Given how group_objects is currently implemented it seems like it would be more work than it's worth to implement this behavior (although obviously conceptually it isn't that difficult), and maybe not even desirable to anyone other than me. But would it make sense to explicitly document this is how group_objects behaves? I would go so far as to suggest a warning if one attempts to set group_objects on object collections that already have specified group parameters.

If this makes sense to you I'm happy to submit a PR that does the docs (and warning if desired). If it doesn't no big deal, I now know the semantics and can work around them.

tylermorganwall commented 4 years ago

Added a clarifying statement in c22937970536f58e5839357f5d51f14620f3e698.

Not closing this, because I'm going to support multiple levels of grouping in the future. It just doesn't work that well with my current implementation for transformations.

tylermorganwall commented 3 years ago

Nested grouping has been implemented in 2627546b1381a50e6f861a27eae440900a62ad60

brodieG commented 3 years ago

Nice. Looks like you've got a lot of great things in the pipeline. I haven't had a chance to play with rayrender and friends in ages, hopefully I'll get back to it soon. Being able to group at multiple levels will definitely make it easier to assemble complex scenes.