Instancing
-
I have been thinking about a "dummy component" tool for SketchUp to replace high-poly component instances with low-poly versions while modelling, and then restore the high-poly versions for final rendering.
Basically, the idea is this:
-
You would place one or more high-poly instances of a component into your model.
-
The "dummy component" tool would create a low-poly, dummy version of the component by creating a new component with a alpha transparency, raster image of the original component in it instead of all the geometry and replace all but the first instance with the dummy component, and then let you place additional copies of the dummy component into the model.
-
The "dummy components" would probably look dumb, but would lower the number of faces which had to be handled by the OpenGL viewer. This should make it much faster to work with the complex model.
-
When you were ready for a high-quality rendering, the tool would replace the dummy component with a copy of the high-poly version (by including the high-poly version as a sub-component) (This could also be easily done with layers - "low poly" for the image, and "high-poly" for the sub-component)
-
Rendering engines could be "smart enough" to read the high-poly layer even though it was turned off, or you could turn on the high-poly layer just long enough to create the rendering.
Is this a good idea?
Does Didier's "component spray tool" already do this. (If not, it could still be used to spray paint with the low-poly version of the component)
Is there another script out there which does this already?
-
-
Al, this would be wicked. Especially for all those rendering engines that don't have an instancing system. Now i tihnk aobut it, it sounds better than the instancing in skindigo which ive always found ot be a little clumsy and not very intuitive.
Good luck if you decide to go ahead with this.
-
A simple version of this really already exists.
If you create a simple dummy compoment that is no more than block shapes and occupies the same height, and width as your real complex component, you can place the dummy in all the appropriate places in your model.
When you have completed your model and have selected all of your scene views you are ready to replace the dummies with the real hi poly component. Simply right click on any one of the dummies and from the context menu select "reload". This will open a window where you can navigate to the place where you have stored your real componnent and you click on it and all of your dummies are replaced with the real thing. -
We are going to try this today.
We will put two layers in the component:
"Low Poly" will contain the image of the component, or a "block shape" as suggested by sorgesu, (probably a user option) and
"High Poly" which will contain the original geometry.
We will either: a.) create a new component with a new name so the high-poly layer can contain an an instance of the original component. or b.) keep the original component name, but place the existing geometry in a group so we can give it a layer. - Both of these have advantages, so we may make it a user option.
This should just work. (It will be easy to test it by creating the same two layers by hand)
The current plan is to add this to RpTools and IRender. People who don't want to purchase either product would be able to use it for free in the IRender Trial version (even after the trial period expired) and perhaps would want to try the "Instancing" in the IRender engine to see how well it works. (In IRender you can still test renderings after the trial version - but you get a watermark which gets worse and worse as time goes on.)
-
Sketchup exporter to Indigo from Whaat does a great job with instancing.
Below is an example made by Kwistenbiebel at Indigo SketchUp Forum
http://www.indigorenderer.com/joomla/forum/viewtopic.php?t=2451&postdays=0&postorder=asc&start=120 -
@gksl4 said:
Sketchup exporter to Indigo from Whaat does a great job with instancing.
This thread isn't really about instancing in external renderers, but about applying a similar concept - (perhaps I should have called it "Dummy Instancing") - for SketchUp - to use low poly instances while modeling and the converting them to high-poly instances when ready for final rendering within SketchUp.
If the idea makes sense (to make SketchUp faster), then external renderers could take advantage of the layering concept by turning on the High-Poly layer and turning off or ignoring the "Low Poly" layer when extracting geometry from the SketchUp model.
-
hi Al,
all your ideas are already possible in sketchup:
model your high-poly model, group it and put it in a layer called "high_poly" (what else ).
then you model a simple version in the same place, group it and put it in a layer called "low_poly".
now you switch off the "high_poly" layer and save the file.
if you now are working on another model in SketchUp and insert the just created component, you will automatically get the two layers with the "high_poly" layer set to invisible. - isnt that what you wanted?
or did you mean to automate the process of creating the low_poly version? if yes, that will be quite difficult. because how are you going to choose the level of simplification. just using the bounding box will be too imprecise sometimes (look at the red shape). perhaps you should be able to choose the simplification grade (edges shorter than 10cm will be simplified for example - like in the green shape)
however, I think that is a wonderful idea - for you can structure your model with as many layers as you want (moving the components into the different layers) and still be able to swith from low_poly to high_poly, changing the level of tetail within all the components. -
and what Vlado gets from ChaosGroup for his Vray - http://www.spot3d.com/vray/help/150SP1/vrayproxy_params.htm
-
Al,
Whaat wrote a tutorial SU file which explains the proxy/instancing method for Skindigo.
See the zipped SU file in attachment: the scene tabs 'instancing' and 'proxy' explains it.
In my experience, that proxy/instancing method works superbly.
The only thing I think could be improved is that the low poly variant would be automated, meaning that when one imports a high poly component, a dummy component would be generated automatically. I usually model a stick when I proxy a tree etc...Cheers,
Kwistenbiebel
-
Thanks,
These previous three comments are quite helpful.
What we are working on is a way to automate the process.
The user will:
-
right click on an existing component instance and select "Create Lo-res Proxy"
-
The user will select options from a dialog box:
2a. Alter existing component definition or create new component definition with "_proxy" added to the name.
- There are good reasons for both choices - for instance if the components are being counted by component name, then you would want to retain the current name.
- The user will choose one of several low-res options
3a. simple box using component extrema
3b. Always face camera image of component thumbnail (will not loof perfect, but will at lest use an alpha transparent image of the thumbnail so you can tell which component is which)
3c. Cris-cross images of thumbnail
3d. Thumbnail places on all sides of box
-
The new component will have old geometry in a group in layer "RPS HI-RES", and new, proxy geometry in a layer "RPS LOW-RES", so it will be easy to flip flop between the display.
-
External renderers can automatically extract the HI-RES geometry without having to turn on the layer within SketchUp.
In the next day or so we should have a "timing test" for SketchUp models and some complex components. (we are going to time a single operation - like "Zoom Extents" to make sure the approach works, and to see what the differences between options 3a-3d are.
-
-
about "5" point...will be need to develop external modules-scripts or assigning with authors of renders-exporters for supporting...or make api-sections for devs....near cad-skipy future
great features are....
Advertisement