SU Podium Forum
Register  |   |   |  Calendar  |  Latest Topics
 
 
 


Reply
  Author   Comment   Page 1 of 2      1   2   Next
jiminybillybob

Registered:
Posts: 7
Reply with quote  #1 

Hello bigstick,

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 Podium.

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.

Here is a preview video of the current alpha version (with Thea Render) :


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:
{ 
    Sketchup.active_model.definitions.entityID => {
        "plugin" => {
            comp_def => [
                {"uuid" => "uuid1", "transformation" => trans1},
                {"uuid" => "uuid2", "transformation" => trans2},
                ...
            ]
        }
    }
}

Sketchup.active_model.definitions.entityID is used to differentiate models on OSX, as we can have multiple models opened in one Sketchup instance.
"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:
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

The Hash is in a "Common" namespace so that everybody can add their stuff to it. This means that if you add support for it, you will automatically support Skatter, but also every future plugin from other developpers that want to use this system.
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

bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #2 
That's cool, and it's something we have been discussing internally. Certainly proxy objects.

You are right that using too many components slows SU to a crawl. I do think you need an option to show proxies simply so you can assess how your scene will render.

Podium doesn't support instances - yet. Our render engine does, but for reasons I can't go into, they aren't implemented.

It's something worth looking into certainly.

One worry I would have, is that without render instances, using something like Skatter might overload the render engine with thousands of components you can't see. The scene would likely stall, and make customers think that there is a problem with Podium or the render, when the problem would be with the scene.

We have a lot of issues where people do silly things in their model (using pdf textures is a favourite one) and the scene won't render. We have to make sure that Podium Tools picks up these things, and even then, many people font think to use Tools for diagnosing problems.

So, yes this is a cool idea, but we would need to test it to see if it would create more problems that it solves. One of the things that people might use it for, is rugs and grass, a bit like MakeFur, these can create issues.

But - yes, definitely worth testing [smile]


__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

jiminybillybob

Registered:
Posts: 7
Reply with quote  #3 
Hi bigstick,

Thanks for your interest.

The "Render only" feature is optional. This means that if Podium doesn't support it, people will still be able to generate regular groups/components and render them with Podium. But then I think it will be much heavier.
That's why I think even though you don't support instancing, it would be better if all this geometry is created only at render time by Podium (so we cut parsing time, etc)

Do you have a SketchUcation account so I can give you access to the alpha?
bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #4 
Okay, I'll try it out. I am a registered Sketchucation user, if that's what you mean.
__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

Southsea2015

Registered:
Posts: 37
Reply with quote  #5 
Hi

Curious to hear if this has been tried out with the 'Render Only' option, and what the render time and usability was like?

Also what is the likeliness Podium will become integrated with Skatter?

bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #6 
Podium won't be integrated with Skatter, nor vice versa. The most that one could expect, is full compatibility and support for all features.

This means instancing support, which is something the team has been talking about for a long time.

It's an interesting subject that could be either straightforward, or complicated and time-consuming depending on how we approach it [smile]

__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

elgabbu

Registered:
Posts: 45
Reply with quote  #7 
Sad to see this post [frown] .... I tried skatter plugin and I must say its awesome, but being unable to use the render only feature with podium makes me sad
jlo

Registered:
Posts: 14
Reply with quote  #8 
I agree. I'm sad to see that they wont be compatible in a workable way. I'm currently researching a rendering program to purchase and I really like su podium so far but the lack of ability to do realistic vegetation directly in sketchup/podium is a real problem. I would prefer to not have to use photoshop as much as possible and the make fur plugin only works for small areas. I'm going to post a render I rendered recently into the gallery for comments but I'm personally not happy with how the grass and asphalt turned out.
bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #9 
It's just grass that you're referring to. Podium renders vegetation just fine, it's just that rendering lots of it is slow.

Other render engines are a lot slower.

It depends what you want.

Skatter will work just fine, it's just an issue of speed for grass and lots of vegetation. I've rendered 3d grass on my MacBook Air, but not massive areas of it. It depends on your scene and your hardware.

Asphalt is just a matter of using the right texture.

__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

HughRansom

Registered:
Posts: 4
Reply with quote  #10 

I really hope Podium does move to support the use of instancing.  While I can understand the argument that an in-experienced user could overuse components in a sketch up model to the point that Podium would struggle to render, I hope the Podium developers realise they can trust the users.  In my 7 years of using podium I've always felt that the developers respond to what the users understood, and can and will use, and this is something that sets Podium apart from others. 

Previously you've released xml files so the community could meddle with presents - therefore what's wrong with included a disclaimed option to enable instancing?  You've trusted us with breaking it before ( and trust me I have), so why not trust the community now?


Personally I see great scope in this, and I'm sorry to say if Podium doesn't support this, then this loyal user would see this as a reason to move on to other render providers.

Looking forward to instance support [smile]

H
bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #11 
Hi, it's planned for the next major release. It has been complicated because it was tied into bigger issues which have now been resolved. It's not a case of if, but when [smile]
Because it will come in the next major release, I can't give you a timescale, but I would suggest that it won't be sooner than 6 months.

Depending on how things go, because there are some big (and very cool) changes coming, it could be a lot longer.

__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

Nibelungs

Shodan Master
Registered:
Posts: 354
Reply with quote  #12 
des changements cool ? [tongue] j'ai hâte de voir ca, je suis même impatient de voir les nouveautés [biggrin]
__________________
Nib
https://www.facebook.com/IDAstudioInc
HughRansom

Registered:
Posts: 4
Reply with quote  #13 
Great news, looking forward to the next release....
mpio

Registered:
Posts: 4
Reply with quote  #14 
Any news on this subject? Really curious to use scatter but will it be worth it until instances is supported, and when will it be?
bigstick

Avatar / Picture

Moderator
Registered:
Posts: 10,201
Reply with quote  #15 
I've used Skatter without render instances. It works fine, but there is a hit in terms of render time. It's not too bad if you only want to render a small area of grass.

Instancing is coming in the next major Podium build. We are looking at it now. I have no date for this. If it comes in 2017, it will be towards the end of the year, but that's no more than a rough guess.

__________________

That which does not kill us makes us stronger
-Friedrich Nietzsche

Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.