Wish: viewport proxies for blocks

@stevebaer - just so this gets on your radar…

-Pascal

@Pitti
I know of the vray proxies, before I switched from vray to octane, I used them to occasionally. This option also exists in octane.
However there are some serious drawbacks involved, I will name a few…

  1. Changing something within a proxy is cumbersome. You have to have the original geometries in your scene, change it ,resave it as a proxy…
  2. You have external files, which can cause all kind of problems themself e.g. Brocken links. …
  3. Before rendering these files need to be loaded…
    This causes usually a lot of extra time needed for scene preparation -> slower workflow, longer render times especially while tweaking things …
  4. In Octane the material of the proxies is not access able / tweak able, so it has to be done again in the original geometry setup (see 1.)

    Andreas
1 Like

I guess from a low level programming point of view we would need optional “imposter” geometry for any instance (block) definition and a display mode setting that said to use the imposter. This all seems reasonable, but I also wouldn’t consider it a trivial project. At first glance this would require:

  • a change to instance definition code along with support for I/O
  • new UI work for defining the imposter
  • new UI work for setting this in a display more
  • making things like zoom extents, bounding box, snapping, and picking know they are working with imposter geometry

Definitely an easier option would be to have a script like Jarek’s or some built in command that toggles back and forth on what geometry an instance definition represents.

Pascal, I’m going to be out of the office for the next two weeks. You might want to chat with Dale Lear and Mary about this topic since they have been doing work in the “block” area lately. It just might be something for them to keep on their radar and help for writing up a good youtrack feature request.

Additional to the “imposter” way I would prefer an option that a few percent of the polygons in automatic shown only. This could be the easiest way for the user, no extra geometry needs to be defined. Not so nice looking, but helpful for working with heavy scenes. Vray proxies are shown so reduced. Maybe at a general Rhino option the percentage could be set for blocks (for example 10%). Maybe it could be coded a graphic card level.

3 Likes

Interesting approach, so only every N-th face would be rendered.

-Willem

I guess more something of an automatic mesh decimator

If I remember correctly you can define the number of -n so 20 means every 20 surface…
This is how it looks

I guess the reduce mesh command could also produce something usable

Andreas

What I do when I need this is to use linked files, so the tree is a separate .3dm containing two layers, one named “Render” containing the high res object and one named “Fastdraw” containing a low res placeholder or a wireframe boundingbox. And then I just turn on and off the layer I need in the linked in file.

[People are still posing about imposters with quotes : )

While they may be newish to the CAD/Design world, imposters are prevalent in the gaming world.

2D Imposters: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch21.html
http://www.gamasutra.com/view/feature/130911/dynamic_2d_imposters_a_simple_.php?page=3
http://www.calcifer.org/kenneth-christiansen/ComputerScience/imposters.pdf

Also, level of detail for 3D objects, which is not really adoptive degradation, but predefined degradation has been in id’s games for years in character models. The splined objects fall off dynamically:
https://icculus.org/gtkradiant/documentation/Model_Manual/model_manual.htm]

…though, nowadays everyone is clamping everything.]

Well, almost 2 years passed… but I think I will give it another try, because it is still a problem!

Maybe it could be a nice Idea to implement a new display mode into R7 (not much hope for R6 I guess…) .
The Displaymode would only display every n-th number (user defined…) of the polygons of an object… so e.g. an user defined number of 40 for this display mode would result in rhino displaying only every 40th polygon…
this way we could simply use the SetObjectDisplayMode command to get a decent performance while still having an optical representation of our geometry.

Any McNeel feedback would be very appreciated!

best

Andreas

2 Likes

I’ve added this thread to the feature request here - RH-43635

Any news here?

1 Like

No, this YouTrack item is unchanged and still on the Future list.
-wim

Jarek,
Thank you for the script. I also wish Rhino would provide an imposter block by default. A user doesn’t have to create an imopster version. Rhino already has ReduceMesh. An imposter could be generated automatically, perhaps using something similar as ReduceMesh, only to indicate outer dimension with the simplest form possible.

In the meantime, this script will come in handy.

Considering that this feature is still desirable, I would like to reiterate the need to have a fast regenerating block representation/proxy by default when you insert a block in Rhino (linked or unlinked). This should be a simple checkbox to toggle on or off. A few rendering engines for Rhino already have this implementation so it clearly makes no sense that after all these years, this simple feature has yet to be implemented natively.

1 Like