Page 1 of 7 123 ... LastLast
Results 1 to 20 of 132
  1. #1

    What everybody needs to know about Blender Viewport performance

    There's a lot of complaints about the performance of the Blender 3D Viewport, but there are some things that can be done about it that people might not be aware about. I've thus decided to start this thread so we can collect information on this matter.

    EDIT: The Display Tools Addon helps working around many of the issues mentioned below.


    1. Enabling VBOs
    In old OpenGL, you would make a function call for every face you would want to draw, whereas in modern OpenGL you upload all the geometry as buffers and draw the whole thing in a single call. This is a huge improvement for dense meshes. All modern GPUs support Vertex Buffer Objects (or at least Vertex Arrays) but for some reason, blender does not enable VBOs by default. Make sure to always have it enabled, you can find the setting under Preferences->System->OpenGL.

    2. Don't have a Subdivision Surface or Multires Modifier at the bottom of your Modifier Stack
    In current Blender (2.63) if there is a SubD/Multires modifier at the bottom, a different code path will be entered for drawing in Object Mode, which doesn't use the aforementioned VBOs. This is likely something that will be fixed in the future, but for now you can work around this by putting a dummy "Simple Deform" (with 0 influence) below it.

    3. Drawing of Outlines is very expensive
    If you have outlines enabled, selected meshes will basically have to be drawn twice, roughly halving performance. For some people it may be an option to disable "outline selected" in the N menu and instead use the Outliner for selection. I've found this to be useful in dense scenes, since selection through viewport will be slow in that case anyway.

    4. non-GLSL Textured modes are slow
    Consider using GLSL mode (N menu->Display->Shading) instead of Multitexture/Singletexture mode, it is roughly twice as fast. You will however have to setup materials if you want to do UV mapping that way. Also: Using the "Textured Solid" option causes the same performance hit.

    5. (NVIDIA Geforce users only) Disable Double-Sided shading
    I've outlined this issue in another thread. This issue is pretty much single-handedly responsible for the bad reputation that newer NVIDIA GPUs have on this forum. Disabling Double-Sided shading on all your objects will make a huge difference and I hope in the future it will be accounted for with some global setting.
    EDIT: As of Blender 2.7, new objects are added with the "Double-Sided" shading already turned off.

    6. Non-Power-Of-Two Textures are slow for Texture Painting (by Sanctuary)
    Consider painting only on textures that have power-of-two dimensions. The usable powers-of-two on my gpu (Geforce GTX 460) are:
    2,4,6,8,16,32,64,128,256,512,1024,2048,4096,8192,1 6384
    Examples:
    Good: 1024x1024, 512x2048, 4096x128
    Bad: 1000x1000, 500x2000, 4000x100

    7. Sculpting on lowres meshes can hurt performance
    In some cases it can improve the sculpting brush performance to apply the lowest step of the multires modifier when sculpting on a lowres mesh. Further Explanation/Discussion here.

    8. GUI regions can slow down the viewport (by McBuff)
    Certain GUI regions may be slow to redraw if there are a lot elements to be drawn, likely candidates for this are the Outliner (too many objects in the scene) and the Graph Editor (too many lines to draw). Separating the affected regions into their own window ensures that such regions will not slow down the entire viewport.

    9. Enabling "Show Diffuse Color" can hurt performance (by Zunova)
    This setting can be found in the Toolbar under Options during Sculpting. It is not enabled by default.
    Last edited by Zalamander; 24-Mar-14 at 13:57. Reason: changes in Blender 2.7



  2. #2
    Member MmAaXx's Avatar
    Join Date
    Jun 2008
    Location
    Tokyo
    Posts
    1,616
    yeah... istead "outline selected" would be great having "wire on shade selected" but anyway, great hints



  3. #3
    Member FreeMind's Avatar
    Join Date
    Mar 2010
    Location
    Lithuania
    Posts
    3,181
    Or bounding box ...
    Wow that stuff in my signature was reaaaaaaally old... Forgot to update. Here's my soundcloud:
    http://soundcloud.com/freemind-2



  4. #4
    Member m9105826's Avatar
    Join Date
    Dec 2007
    Location
    Fairfax, VA
    Posts
    4,034
    Is there a way to have Blender automatically switch to bounding boxes when rotating the viewport as in other packages? It's incredibly helpful for large scenes with many objects.



  5. #5
    I didn't knew for the "Outline Selected" , just tried it and the improvement when rotating a high poly model in Object Mode is actually noticable, not a big effect, but still it's noticable.
    Thanks for that, will certainly be usefull in some of my projects.

    Another little tip when you're out of other options and need to rotate around a high poly scene often, just press Z to go into wireframe mode, the rotation should much more smoother and responsive, then press Z to get back to Solid Mode.
    Last edited by Sanctuary; 07-Jun-12 at 22:56.



  6. #6
    it would be cool if someone made a DirectX view-port version.
    it would be so nice. it could have a Nvidia Physx (like Maya)
    Have two versions like 3D-Coat does.

    3ds Max has directx and opengl as well.
    Last edited by holyenigma74; 07-Jun-12 at 23:32.



  7. #7
    Member Herbert123's Avatar
    Join Date
    Apr 2009
    Location
    Vancouver
    Posts
    1,338
    Originally Posted by FreeMind View Post
    Or bounding box ...
    Having an option to switch to a bounding box selection mode, rather than outlines, would be brilliant, and have a negligible impact on the viewport's performance.

    Disabling the outline selection is, for me at least, a rather silly work-around. I work with object heavy scenes, and selecting stuff via the outliner only is dreadfully inefficient. A proper layer manager would be welcome in this regard, but that's another story.

    Originally Posted by m9105826 View Post
    Is there a way to have Blender automatically switch to bounding boxes when rotating the viewport as in other packages? It's incredibly helpful for large scenes with many objects.
    True, this would be a welcome addition - in Lightwave's layout, even with heavy scenes, one does not notice the lag all too much due to an automatic threshold that switches to bounding boxes (at least for some objects), and the view remains snappy.

    Having said this, Blender's insanely ridiculous incapacity to change the drawing mode of multiple selected objects, groups, and the like still baffles me. Scene management in regards to the opengl viewport is inept and behind the times. So is layer management (different wireframe colours for at least each layer would be welcome as anything, for example). Yet again: a different story.

    One more addendum for both Nvidia/ATI owners:
    - visual character controls in the 3d view slow down animation playback quite a bit - for best character animation playback performance, turn these off temporarily. And, of course, deselect everything.

    Addendum for ati/amd video card owners:
    - download a build with Psy3d's occlusion select patch (otherwise selection of a multi-million object can take minutes)
    - avoid working in textured mode with anything but simple textured objects. Performance is quite bad in that mode, and seems to be related to the drivers not hardware-accelerating textured objects. Pure speculation on my part, though.
    /*----------------------------------------------------*/
    System: Win7 64bit - i7 920@3.6Ghz, p6t Deluxe v1, 48gb (6x8gb RipjawsX), ATI 7970 3gb, EVGA 590 3GB, Revodrive X2 240gb, e-mu 1820. Screens: 2 x Samsung s27a850ds 2560x1440, HP 1920x1200 in portrait mode



  8. #8
    Member Herbert123's Avatar
    Join Date
    Apr 2009
    Location
    Vancouver
    Posts
    1,338
    @Zalamander: out of curiosity, would you mind testing the Nvidia furry ball in solid mode to get a overall hint of your Nvidia card's performance in Blender? The object can be downloaded here:
    http://blenderartists.org/forum/show...s-as-OBJ-files

    Set the fps to 120, turn of "FPS playback" in the interface settings, and have the camera rotate around the object. On my box I get 60fps (no selection). With two balls I get 30fps. With four balls 20fps. With 8 balls 12fps (23040000 faces).

    I am just wondering about the opengl performance of the current Nvidia cards.

    Of course, others are invited as well to test.
    /*----------------------------------------------------*/
    System: Win7 64bit - i7 920@3.6Ghz, p6t Deluxe v1, 48gb (6x8gb RipjawsX), ATI 7970 3gb, EVGA 590 3GB, Revodrive X2 240gb, e-mu 1820. Screens: 2 x Samsung s27a850ds 2560x1440, HP 1920x1200 in portrait mode



  9. #9
    Originally Posted by holyenigma74 View Post
    it would be cool if someone made a DirectX view-port version.
    it would be so nice. it could have a Nvidia Physx (like Maya)
    Have two versions like 3D-Coat does.
    for a GPL open source software, the worst idea ever.
    "Power tends to corrupt, and absolute power corrupts absolutely. Great men are almost always bad men."



  10. #10
    Why Xnormal is DirectX?

    anyhow I just tried the FurryBall, with "Outline Selected" on and off,
    Im Using an Old Geforce 8600GT(256MB),
    anyhow with Outline selected off it acutallly moves rotates with a stutter..
    With it on it thats a couple a seconds for the viewport to update each rotation.

    I think inside Blender Code it should automatically disable "Outline Selected" upon Rotation, Translate, or Scale
    then re-enable it when Movement stops. Or have it as an option.. i the "N" panel(and also in the user preferences)



  11. #11
    Originally Posted by Herbert123 View Post
    @Zalamander: out of curiosity, would you mind testing the Nvidia furry ball in solid mode to get a overall hint of your Nvidia card's performance in Blender? The object can be downloaded here:
    I don't believe ALT+A benchmarks are very useful since I made this experience. You still can test that file, if you want. I run a GTX-460.

    Originally Posted by holyenigma
    it would be cool if someone made a DirectX view-port version
    That sounds like a waste of time and I don't believe anyone wants to do that. There is little performance to be gained but it would be quite an effort. PhysX has nothing to do with DirectX either, it can be used in conjunction with OpenGL, too. But in Blender the Bullet engine is already in use, which is free software. I also don't think the GPL is compatible with PhysX.



  12. #12
    Is the GPL compatible with CUDA? LMAO

    Anyhow MythTV also used DirectX and its OpenSource GPL.



  13. #13
    Originally Posted by holyenigma74 View Post
    Is the GPL compatible with CUDA? LMAO
    CUDA would count as a "system" library because it is distributed with the driver of the GPU. PhysX certainly isn't a system library and it certainly couldn't be distributed along with Blender. I'm not an expert on this matter though, so I'm not entirely sure if linking against PhysX is possible.
    Anyhow MythTV also used DirectX and its OpenSource GPL.
    There's no problem with calling DirectX from GPL software (or any other system library that is part of windows). It doesn't really matter what programs use DirectX - either they are windows-only or they have a layer that abstracts the graphics API away from the application code. The first case isn't acceptable for blender and the second case arguably is desirable from a formal standpoint but there really is too little benefit to it.



  14. #14
    Member mib2berlin's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    3,210
    Somebody post this in the forums, maybe helpful, it switch Double Sided for all objects off.
    I have in my default blend.

    import bpy



    for ob in bpy.data.objects:

    if ob.type == 'MESH' :

    ob.data.show_double_sided = 0
    Copy in text editor and run script with Alt+p

    With all these settings I could handle 3-4 Million verts easily (textured lags a bit) with my GTX 550 Ti.
    I hope the Viewport FX GSOC project push the viewport performance.

    Cheers, mib.
    EDIT: Hey Zalamander, donīt read about your new addon, seams the better solution.
    Last edited by mib2berlin; 08-Jun-12 at 01:31. Reason: addon
    OpenSUSE Leap 42.1/64 i5-3570K 16 GB Blender 2.7 Octane 3.02
    GTX 760 4 GB, GTX 670 2 GB 367.27 Blender for Octane



  15. #15
    Originally Posted by Zalamander View Post
    2. Don't have a Subdivision Surface Modifier at the bottom of your Modifier Stack
    Also the same is true for multires modifier

    Originally Posted by Zalamander View Post
    4. Multitexture mode is slow
    Consider using GLSL mode (N menu->Display->Shading) instead of Multitexture/Singletexture mode, it is roughly twice as fast.
    Don't forget, this isn't the case for sculpt mode.



  16. #16
    For when you are in Texture Paint Mode, you may notice sometime when painting that it can be very slow in the 3D viewport, your painting brushes stuttering to the point of being simply unusable.

    The majority of the time, this heavy slowdown/stuttering is in fact created because your texture has dimensions that are not power of two (.., 256 ,512, 1024, 2048, etc...).
    By example, painting in the 3D viewport on a texture that is 1000x1000 will create a noticable stuttering and lag, while painting on a 2048x2048 texture is actually quite smooth.



  17. #17
    Originally Posted by m9105826 View Post
    Is there a way to have Blender automatically switch to bounding boxes when rotating the viewport as in other packages? It's incredibly helpful for large scenes with many objects.
    i am not one of those who would complain like a baby. but i have to ask this . blender doesnt have an option for automatic bounding boxes when you rotate? isnt this standard for 3D?



  18. #18
    I'll update the first post with new info as it goes since the thread might drown in discussion, especially since I'm posting in it ;-)
    Originally Posted by uvwxyz
    Also the same is true for multires modifier
    I could've sworn it wasn't! But you're right.
    Don't forget, this isn't the case for sculpt mode.
    For me, even in sculpt mode GLSL is roughly twice as fast. Is it different for you?

    Originally Posted by Sanctuary
    The majority of the time, this heavy slowdown/stuttering is in fact created because your texture has dimensions that are not power of two (.., 256 ,512, 1024, 2048, etc...).
    Oh yes, that's a good one!

    Originally Posted by blend_B
    blender doesnt have an option for automatic bounding boxes when you rotate?
    No, it doesn't. I suggest to post a request for this feature in jwilkins' GSOC thread. I tried myself to wrap the bpy.ops.view3d.rotate operator into another operator that sets up the drawing modes, but it didn't work (calling the operator gives an error) and I don't know enough about the python API to tell if or how it can be done. If (and when) I really need this (e.g. I need to edit a heavy scene) I'll figure out some way to do this (maybe even port the whole C operators to python), but for now I'm fine.



  19. #19
    blender viewport is very fast
    noobs and amateurs cant use it... so simple
    they cant use other 3d softwares too
    my scifi game (donation based): http://deadcyborg.com
    my Youtube Channel: https://www.youtube.com/user/gombabacsi/videos
    gamedev works: http://endrebarath.tumblr.com/



  20. #20
    Member Pesho's Avatar
    Join Date
    Apr 2009
    Location
    Bulgaria
    Posts
    1,288
    @endi - And you wonder why you don't get any respect.

    @Zalamander - Some great tricks there! I had no idea VBO's didn't work when Subsurf is the last modifier. Rather strange, since that's usually the case where you need VBOs the most... On armatured meshes you won't get any increase in speed, but the difference with static meshes is immense.

    Disabling outlines also gives another ~30-40% increase in viewport performance with highly subdivided meshes, nice one.
    Last edited by Pesho; 08-Jun-12 at 05:33.



Page 1 of 7 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •