Get it now!
Skatter is a powerfull scattering extension for SketchUp.
Render hundreds of thousands of objects without overloading SketchUp. Scatter them parametrically or paint them by hand, while keeping control over collisions, camera clipping, rotation, scale, translation, randomness and density based on altitude, slope, falloffs and more.
Learn all about it : http://getskatter.com
--------------
Hello Fletch and Chris,
I'm curently developping a scattering plugin for Sketchup, called "Skatter". I'd like to know if you're interested to make it work with Twilight.
It is not released yet, it'll come out in a few weeks/months. One of its main features is a "Render Only" option. It allows to scatter components that will be rendered but not displayed in the viewport. That way, we can generate hundreds of thousands of instances while keeping a very lightweight model. (Because even a large number of proxies can be heavy)
Of course we can choose to disable this feature and generate regular component instances.
The way it works is pretty simple. Skatter stores the position/rotation/scale informations in a hash/array that any render engine can read and use.
The hash is in a shared namespace called "Common", and its name is "render_instances".
Its structure is as is :
Code: Select all
{
Sketchup.active_model.definitions.entityID => {
"plugin" => {
comp_def => [
{"uuid" => "uuid1", "transformation" => trans1},
{"uuid" => "uuid2", "transformation" => trans2},
...
]
}
}
}
"plugin" is the plugin name. This level is necessary so we don't overwrite each other's infos. But as you read only, it's irrelevant to you.
comp_def is the component definition object.
"uuid1" is a unique id. Some render engines require it, maybe you too?
trans1 is a transformation object.
To read it is pretty simple in ruby :
Code: Select all
modelID = Sketchup.active_model.definitions.entityID
if defined?(Common.render_instances) && Common.render_instances[modelID]
for plugin_name, comp_defs in Common.render_instances[modelID]
for comp_def, insts in comp_defs
for inst in insts
uuid = inst["uuid"]
transform = inst["transformation"]
#Then do your stuff using comp_def, transform, and uuid if needed...
end#for
end#for
end#for
end#if
This is kind of an exchange standard between plugins and render engines.
Please tell me if you're interested, so I can send you a copy.
Thanks,
jbb