GsoC: OpenGL viewport optimization!

I decided to create a new thread, about one of my favourite GsoC 2009 project.

Looks like Lukas Steiblys finally introduced VBO into blender! Here it’s last commit
http://lists.blender.org/pipermail/bf-blender-cvs/2009-June/020184.html
Currently works only in solid mode, so I compiled branch and get schocked(possitive), Viewport works now very smoothly, even with massive meshes! Yay :smiley:

Here it’s link to test-build:

Thanks Lukas for your work!

This is a very interesting project indeed. I know this may not be easy but can you maybe give us some numbers on how you experience the improvements - is it maybe in the 150% - 200% range, or? (I sadly can’t run the build myself)

I will post a video with opengl comparison between blender2.49 and gsoc.

Seems a lot faster! Unfortunately sculpt mode is not working anymore. You have to switch to edit mode an back, to see the sculpt results. Will this work with sculpt in future or is it technically impossible while using VBOs?

Wow, the speed up is fantastic, even in my crappy computer the VBO optimization runs A LOT smoother than 2.49, I’m VERY impressed. Congratulations to Lukas Steiblys.

IMHO I’m not coder but I hope it’s only matter of time. Keep testing!

Tried out the build with previous scenes that would lag, it seems that with the large scenes, while it runs it smoothly, there is a delay between your movements and the veiwport, yet still runs smoothly.

are this optimizations be applied to BGE aswell?

Had the same effect after applying 6x subsuf to a cube and then again 3x subsurf.

*Edit: Another curious side effect is the outline when an object is selected. It gets a lot faster, when disabling the outline by unseleting all objects…

This build doesn’t work on my system , blenders console opens and than blender freezes and than a send error report appears . all other blender builds work except for this one i wonder why. i notice that some code has been altered in relation to the gpu settings

What’s your graphic card? System settings? Driver? Be more specific.

@oogsnoepje

What’s your graphic card: ati radeon 7000
Driver? :6.14.10.6542 i use this its the only one that eliminates the sluggish gui problemo

Be more specific: The executable fails to load and draw a gui ,
although this version works perfectly:

just some feedback
yes sienio if i update my graphic card driver blender will start freezing slugish flickering gui like disco lights again so i guess i just have to live with it

Looks like your graphic card don’t support OpenGL 1.5<
Try update your drivers

That card definitely doesn’t support Vertex Buffer Objects (VBO’s) :eek:

Not really. BGE already use techniques to optimize drawing (DisplayList). VBO is almost 100% integrated in the bb_dev branch (to be merged after 2.4xx) but the performance is not better than DisplayList (it has a clever memory management though).

*Edit: Another curious side effect is the outline when an object is selected. It gets a lot faster, when disabling the outline by unseleting all objects…

Yes, I also did notice that when selecting all objects, the viewport would slow down a bit…

I have researched some Information about VBOs. And they are editable! I have mixed them with display list, which are used for fastening 3D, too, but aren’t editable. With VBOs you have direct access on mesh data in graphics memory, as it is now, but it is stored in a better way.

I can display about 1000000 vertices (a plane subdivided 10 times) almost fluid (~20fps) with the VBO branch. This is not possible in 2.49. There I only get round about 3-4 frames. It’s on a 8600M GT mobile Nvidia with 256 megs and a Core2 @ 2.2GHz.

Though I have do unselect the object (disable the orange surrounding line) to achive this result. I think the outline is painted in software as no low levvel 3D API supports this feature. Don’t know how it is implemented in Blender.

Lukas plans for next week from the mailing list:

> b) What do you plan to do in the following week?
>
Document my code, fix vertex arrays, continue with other drawing modes.

Can anyone say for sure whether this will benefit performance of Sculpt mode or not?

BTW: I was able to crash Blender pretty quick in the scene I used for testing, but I could definitely see the improvements … awesome stuff!

I think it was mentioned that it may boost translating/rotating a sculpted object but not the actual sculpting- but things are changing so fast, and will especially when Durian starts, so take it as you may.

Yourre right sausages, Nicholas Bishop mentioned following in this thread:

ZBrush uses magic software rendering. Mudbox, Blender, and pretty much everything else use OpenGL or Direct3D (which is to say, they are hardware accelerated.) None of the big players use voxels (3D Coat is the only program I know of that does.)

The VBO work being done for GSoC is a step in the right direction, but my expectation is that it will mainly speed up camera changes during sculpting (i.e. rotating the viewport) not sculpting itself.