Jump to content

Tyker

Members
  • Content Count

    62
  • Joined

  • Last visited


Reputation Activity

  1. Like
    Tyker reacted to will2k for an article, Displacement Vs. Func_detail - A comparative fps study   
    What is the question?
    Ever since the dawn of humanity, this question was the center of a colossal debate. Greek and Roman philosophers tried to solve it to no avail. Alchemists in the Middle Ages gave it a go and failed miserably. Even Industrial Age scientists touched on the subject with no big breakthrough.
    Luckily for everyone, I am here today to answer this question and put an end to a centuries-long argument: What is better in terms of fps, func_detail or displacement, in the context of the Source engine? If you were expecting an existential question, I am deeply sorry to disappoint you but hey, life is full of disappointment.
    The study
    This is going to be a short but sweet article; fewer words, more numbers and screenshots. The study is pretty straightforward and systematic. To make things fair and square, I will create 2 exactly identical test maps: In one, everything will be turned to func_detail while the other will have everything switched to displacements. I will then proceed to record the localized fps in these maps from a preset location and compare. Pretty simple, isn’t it? Well, it should be as the whole purpose of this study is to compare func_detail vs. displacement in absolute terms while keeping all other parameters constant.
    The cases
    The first map to test is the one made of displacements. Here is the screenshot showcasing the fps.

    The map itself is very simple consisting of 7 identical houses placed at predetermined locations and surrounded by 4 walls. The houses are detailed enough to put some slight pressure on the rendering engine. For the skeptics among you, here is a wireframe in-game shot to show that everything is made of displacements.

    To refresh your memories, in Source engine wireframe mode, green is displacements, pink is brushes (world, func_detail, brush entity, etc…), blue is props, and yellow is decals/overlays. The recorded fps in this map is 289. We now move to the second map, the func_detail version to check how the frame rate is faring. Here is the awaited screenshot.

    Surprise, surprise. The fps is 330, much higher than the displacement version. Here’s the wireframe shot to put your mind at ease.

    Honestly, I was thinking the figures would be more on par as the engine handles both details and displacements pretty well, but in the end, Source is about BSP so I guess brushes would get a slightly preferential treatment over polygon meshes (conspiracy theory ensues).
    The question that forces itself now is: Should we rely solely on func_detail in our maps? Of course not. Both func_detail and displacement have their advantages and inconveniences and leaning exclusively on one will inevitably lead you to a dead end. The best thing to do is get the best of both worlds by using them together.
    In our little test map, how about we mix things up in a third version: let us make the house walls out of displacements while having the doors, windows, frames, and roofs made of func_detail. Incoming screenshot, brace yourselves.

    Much better, isn’t it? We have now 311 fps, a very nice middle ground between the 330 fps of func_detail and the not-so-bad 289 fps of displacements. The mandatory wireframe shot follows.

    So, what can we learn from all this? Well, apart from the obvious places where displacements are mandatory for the organic mesh sculpting (rock formations, cliffs, bumpy/twisted roads…), it is a good idea to spread some more displacements around your map to alleviate the total brush-count that you will inevitably hit the maximum in a highly detailed map. Your fps will remain high and you will enjoy the margin to keep adding structures to your map without fear of reaching the maximum allowed total brushes (substituting brushes with models/props is another viable solution that is not in the scope of this article).
    I’m a man of science and I know that one example is not enough to draw conclusions. That’s fine, I have a second test map to investigate what we established before. The concept of having 2 identical maps is still the same, however, this time, we will spice things up by adding some static/physics props and some decals here and there. We will start with the displacement version.

    230 fps, not too shabby. Let’s check another angle.

    220 fps, more or less, on the same level as the previous number. Now for the wireframe shot.

    The tree cards in the background are func_brush in both maps (the detail and displacement versions), so it’s a level playing field in this case.
    Now for the moment of truth you all have been waiting for: will the detail version have better fps to support my earlier findings or will I be publicly embarrassing myself? A screenshot to the rescue.

    I knew I was right, never breaking a sweat (apart from the nervous cold sweat I just wiped off my forehead). 255 fps for the first location A. Let’s check the other angle or location B.

    250 fps. Bam, sweet victory…sorry I got carried away a bit. Ahem…Let’s get back to being scientific, shall we. Here’s the wireframe proof.

    Let’s recap all the action and numbers in a nicely formatted table.

    You can notice the fps gap between the func_detail and displacement versions in both test maps whereas the “mixed” version considerably narrowed this gap. The numbers have spoken.
    The bottom line
    The bottom line is, if you rely only on func_detail, you will hit the maximum brush-count allowed in Source and severely limit your map and creativity. You might also run into T-junction issues as well as parts of your geometry flickering and disappearing from certain angles in densely func_detail’ed areas.
    On the other side, if you stick to displacements alone, then you will have lower fps than a func_detail map version. You might also run into visible seams and un-sewn displacement issues.
    Having a clever distribution of both func_detail and displacement in your map is the way to go. You will have high fps, better lighting around the edges, and organic sculpting while not getting anywhere near the total brush limit; the best of both worlds.
     
  2. Like
    Tyker reacted to FMPONE for an article, Congratulations to our finalists and Grand Prize Winner, DE_EMPIRE!   
    (Art by Thurnip)
     
    It's Time!
    It’s finally time to declare a grand prize winner in our exciting Counter-Strike: Global Offensive mapping contest. You’ve playtested the maps on Reddit, you've waited months for the results... let's get down to business!!
     
     
     
    GRAND PRIZE WINNER:
     
    DE_EMPIRE
    By Andre Valera

    Workshop Link
     
    Sometimes it boils down to consistency: broad strength across several categories. No map in our contest better exemplifies this notion of consistent quality than Empire.
    Empire features a stacked bomb-site layout similar to popular official maps like Nuke and Overpass. While this relatively unorthodox design presents level designers with additional challenges, Empire ably sticks its landing. Furthermore, the ambition of Empire’s design is tempered well by its no-nonsense visual presentation. We’re left with a digestible, fun, and very playable level.
     
    Congratulations, Andre Valera!
     
    Prize:
    Featured in a goRGNtv showmatch!
    Featured in CEVO PUG rotation for one month!
    $1000 and Mapcore swag!
    CS:GO prize pack courtesy of Valve:
    a signed CS:GO poster, lanyard, vinyl sticker
    SteelSeries Kana Mouse!
     
     
    2nd PLACE:
    DE_BOURG
    by Klems

    Workshop Link
     
    A truly unique map. Some felt it was the strongest entry in the contest given its strong theme, abundant polish, and beautiful visuals; others, however, questioned the map's small scale. This was a tough map to judge.  
     
     
    Prize:
    $400!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    3rd PLACE:
    DE_ROYAL
    By Jakuza

    Workshop Link
     
    An attractively sleek map, there is plenty of room for Royal to blossom into something very special. 
     
    Prize:
    $200!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    4th PLACE:
    DE_COAST
    By Ornate Baboon

    Workshop Link
     
    A map that was under heavy construction for much of our contest, one gets the sense that Coast wasn't quite ready yet. With a little bit more time, who knows?
     
    Prize:
    $100 + Mapcore swag!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    ~~~We at Mapcore would like to thank the r/GlobalOffensive moderators for their assistance, our lovely guest judges, Valve, goRGNtv, CEVO, as well as Gamebanana.com and Steam workshop artist EGO DEATH for contributing to our prize pool.
     
    Last but not least... THANK YOU, for making this 'Core event special and fun!
     
     
    "May Hurg guide you..."
     

×
×
  • Create New...