Graphics Card & Speed better internal algorithms

I appreciate that SketchUp relies on a huge amount of 3D graphics card processing, however, you can now buy laptops with Asus / Nvidea / i7 / 16Gbyte / 1TB SSD and it needs to run on powerful laptops so that professionals can offer presentations.

SketchUp is brilliant for ‘dolls house modelling’ and doing lovely 3D presentations. However, start adding components such as tress, grass, bushes,roof tiles (ie all the things which are no longer a texture they are a 3D textured object) and SketchUp reaches a point where it suddenly stops, keeps saying ‘Unresponsive’ for maybe 30 seconds and is unusable. The solution is not a better laptop because I have the most expensive, fastest laptop money can currently buy! What is needed:

  1. If you split your model into layers, layers that are unchecked seem to be hidden from the display algorithms and the model speeds up, just like it should. However, if you are highly organized like myself with Groups and Components, the groups in your model that are set as ‘Hide’ are still processed in the display algorithm and bring your PC to a halt, WHY!

  2. Back in the old days of 1024x768 we used ‘Greeking’. This is where the software would look at its processing power and before it did anything it would spend a few mS working out how long it was going to take to display what you had asked it to display. If it was being asked to do unreasonable things it would take insignificant complex objects in the background and ‘Greek’ them ie convert them to simple squiggles. The algorithm would repeat this process until it had usable drawing that could be displayed in say a second. Nobody was aware of what was going on internally! As you zoomed in of course the info was cached in a fairly complex video database library and the Greeked objects were redrawn to be less Greeked. This had a curious effect that as you zoomed into a complicated tree in the background it would start to get clearer and clearer. If you zoomed in quickly, the zoom would be done with the graphics card and you would in fact see the Greeked tree but if you took your hand off the mouse and just sat back for a second, the tree would be miraculously redrawn with all the branches, leaves, twigs and berrys! What SketchUp is doing is spending all its time trying to draw 20 trees in minute details that are 1cm high on your screen and not drawing the giant house in the foreground that you are trying to move the door in!

  3. SketchUp needs to analyse what components/groups are off the display and not bother processing them AT ALL. Once rendered and awaiting keyboard/mouse event, it can add these in the background to the GC memory. It does mean that for some pan operations ‘Wait’ will appear on the screen, but at least SketchUp is in control as opposed to the currently ‘Unresponsive program’ that we get at the moment.

  4. As a simple compromise, can we not have a more advanced component with a ‘Draft’ and ‘Presentation’ mode. Presentation mode is the default, however, if you create ‘draft modes’ for your components when you are drawing it only uses the draft model which for a tree would be three brown sticks and four green stacked cubes which would be fast and simple. When we plot, export or animate the dialogue box can have a check box ‘Use Presentation components’. In this case the twenty trees in your drawing would all have their 20 branches, 200 twigs and 600 leaves!

Do not use hide except to temporarily hide something that is in the way of modeling. Use SketchUp layers to control visibility of groups and components.

ADD: The implication is that “Hide” will likely get the least “programming love” as it’s supposed to be used temporarily (for a few moments at a time.)

Since people may be reading this, searching for help on performance, I’ll post a link to the User Guide on this:

@PaulMc, you seem not to know that SketchUp uses OpenGL libraries, whose drivers are implemented by OEMs of computer and/or graphics. So the SketchUp team does not have 100% control here.

With SketchUp 2017 they have (on most machines) stepped up to OpenGL v3, prior to this SketchUp used v2.

I’m curious why you only should temporary hide something and why its likely have the least programming love. Any documentation on this?
In my Outliner based workflow, I fully depend on hide / unhide and only use layers to control some main 3d categories.

Search the forum, and see how many people lose track of objects they’ve specifically hid. (This is not some “rule” I just made up.) In the case of section planes, they do not appear in the Outliner and can not be specifically unhidden manually. (It has to be done with a Ruby console command. And there is a FR filed to have the Outliner show section plane objects because of this.)

Everything on the “to do” list is sorted by priority. Those issues that have better workflows, alternate workflows, and workarounds get a lower priority then issues that do not. (This is why BugSplat! reports should always be sent. Crashes with the higher totals get the highest priority.)

Thanks for the explanation Dan. I was curious if there was a software (behind the scenes) reason for your suggestion. So it’s mainly an issue that tends to confuse (new) people.

Thanks Dan, I agree and obviously aware of OpenGL which is the interface for ‘decent’ graphic cards however, 4.5 is the latest and that’s 2014.

As a SketchUp model grows it does not get slower, it suddenly, overnight, reaches a point where it becomes unusable. If you are highly organized, methodical and a bit of a perfectionist, you can turn off layers and the model runs fast again until you reach another point where you start creating layers not for management you are creating layers purely to make SketchUp usable, where do you stop? The underlying issue is that SketchUp needs to be faster, it can only be done in a few ways:

  1. Make the software quicker by fundamentally changing the foundation and the way certain things work. The thing that every software house does about 4-5 years to give them a new foundation for the next 5 years, we’ve all been there, it’s half a mill of s/w development to achieve nothing to somehow justify to the shareholders!

  2. You give us more control over and above just layers such as draft components and radically simplify the component interface and component use. (If anybody on the planet is interested I will take the time and produce a more detailed proposal outside of a discussion board.

  3. You make ‘hide group’ work in the same way as unchecked layers because layers should not be used purely because SketchUp is too slow! Layers should be used for 3D animation, display, presentation etc. I don’t agree with you that groups should be hidden only for brief moments. As your model grows, you might spend a day working on where the pipes go and you have hidden kitchen units, fireplace, chimney, roof tiles, roof beams & plasterboard, furniture, plants etc, A model might have 500 named groups containing 50 components with several thousand instances but only 5-10 layers.

I agree with Dan about loosing stuff that’s hidden that’s not a user issue that’s a stupidity in the SketchUp user interface in how it greys out that makes you loose stuff, once you understand the programmers logic, it’s fine. That’s a different topic, different rant!

Component swapping is a good way to increase detail in a model by using a basic version of a component when modelling, then when you need to produce final images you swap it out with a much more detailed version.
However this process relies on the components being identical size and orientation (not a big challenge), and when there are dozens of components to swap out the component replacement process becomes very time consuming. Also you nevr know if the model will ‘hang’ when you swap out 1000 roof tiles with a more complex version.

Greeking is a great idea. Probably a few ways to implement this depending on whether its CPU or Video system you wanted to free up.
If there were a more powerful interface to swap out components (A “component replacement manager”) that would make the process much easier. It would also be good to have a mode in Layout so we can represent the very detailed versions only in a certain layout view.

The “use max texture resolution” can be toggled on and off to speed up these of very large textures in the model (eg an aerial photo as a base).

Also the video cards on laptops may not be as powerful as some thing. I do notice a speed increase when using fast CPUs and video cards such as a GTX1080. There are modes on video cards and within Sketchup that can be changed, eg Antialisasing turned off and transparency turned to basic level of detail.

I totally agree about some models having 5-20 layers, 100s of groups and 1000s of components (particularly for details buildings and landscapes). Layer and component/group managers might be the best way forward (via a new extension??)