FiftyTifty Posted October 8, 2016 Share Posted October 8, 2016 One o' the wee features I noticed that were added back intae the CK, was the ol' static collections feature frae the GECK days. Me question tho', is does it do anything for performance? Or is it just a high-level ease-of-use shebang, and not a way to manually batch objects together? Link to comment Share on other sites More sharing options...
chucksteel Posted October 8, 2016 Share Posted October 8, 2016 I wouldn't worry about it, many of the buildings and assets in the vanilla game are SCOL's. I do however break up most of my Static Collections, Partly out of habit from the GECK but also to do fine tuning in the worldspace. Link to comment Share on other sites More sharing options...
FiftyTifty Posted October 9, 2016 Author Share Posted October 9, 2016 I mean, if it's more performance, I'll do all the static collections ever. Can't hurt perf, but like, if there's such an optimization on the cards, then hell yeah boys. Link to comment Share on other sites More sharing options...
chucksteel Posted October 9, 2016 Share Posted October 9, 2016 It's not going to be more performance because the game still has to draw just as many verts. In FO3/NV SCOL's Were bad for performance because they were basically mash ups so it was better to use individual models. Partly because the SCOL forces all verts to draw when needed Breaking things back up in FO3/NV prevented this. FO4 is built around SCOL's. At least that is my understanding, I could be wrong. Link to comment Share on other sites More sharing options...
FiftyTifty Posted October 9, 2016 Author Share Posted October 9, 2016 (edited) There's more to performance than just poly count. Draw calls is the big performance drain in these open world games, especially with the traditional rendering APIS, and doubley (tripley, actually) moreso on AMD CPUs. If static collections merge multiple objects into one mesh, that's quite a reduction in draw calls. 'Tis why Fallout 4 uses (a very s*** form of) static batching; merge scene geometry into fewer models, so fewer draw calls are made. Edit: Yo, if this page from the GECK docs is anything to go by, static collections do in fact reduce the number of draw calls issued. http://geck.bethsoft.com/index.php?title=Bethsoft_Tutorial_Static_Collections Now I'm curious to know if reference groups also reduce draw calls. Edited October 9, 2016 by FiftyTifty Link to comment Share on other sites More sharing options...
chucksteel Posted October 9, 2016 Share Posted October 9, 2016 I understand what your saying, well no I Partially understand what your saying. I assume they are fine but don't help, There are a lot of them in the vanilla world. Link to comment Share on other sites More sharing options...
TrickyVein Posted October 9, 2016 Share Posted October 9, 2016 Theory is nice, but I'd like to see a side by side comparison of FPS from in a couple of cells in one case using primarily SCOLS and in the other no SCOLS at all. Does it really matter? Link to comment Share on other sites More sharing options...
FiftyTifty Posted October 9, 2016 Author Share Posted October 9, 2016 (edited) I just checked in the editor. Placed around 12 random architecture objects in an empty cell. 54 draw calls. Select all -> Right-click -> Create Static Collection -> 20 draw calls Making a group reference made no diff. And aye, draw calls are a huge drain on performance. In Direct3D 11, framerates veer to sub-30 territory at around 6k-6.5k draw calls. If you have a decent intel CPU (AMD CPUs are ~3.5x worse than their equivalently performing intel counterparts), the ceiling is a bit higher, but still pretty gnarly. For reference, at the top of the Corvega factory, on high settings, I was getting 17fps. A dude with an i7 920 was getting 60fps, both of us making around 10k draw calls. I reduce the shadow distance, et voila, a higher framerate since the draw calls have been cut drastically. Edit: One of the potential ramifications of this, since you can batch objects straight in the render window, iis that the precombined geometry system seem awfully dumb, at least for us small-scale modders. Granted, a dude designing a whole worldspace would probably prefer to use the precombined geometry because of the two-clicks-and-wait approach to it. Edited October 9, 2016 by FiftyTifty Link to comment Share on other sites More sharing options...
FiftyTifty Posted October 9, 2016 Author Share Posted October 9, 2016 (edited) Right, made a super terrible test (ideal test is that every object is different, to avoid intelligent driver shenanigans, but cba). Take a look. Not a static collection: http://i.imgur.com/biSx3k4.png Is a static collection: http://i.imgur.com/5tLHoHY.png Chuck in AI, lights, not just a bazillion copies of the same 20 meshes, etc., and the performance delta would jump waaaaay higher. Edit: Also, I'm using an HD 7850 2GB. I'm probably gpu limited to the extreme in the second image. If somebody with actual GPU grunt wants to give it a go, I've attached the .esp file. In the console, type: coc AAAAStatic01 to go to the cell with the un-batched objects.For the batched: coc AAAAStatic02 Edited October 9, 2016 by FiftyTifty Link to comment Share on other sites More sharing options...
Recommended Posts