Good ways to cut VVIS ???

Discussion in 'Mapping Questions & Discussion' started by Toxindude, May 18, 2013.

  1. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    I am looking for ways to cut down my compile time. My VVIS takes insanly long I'm talkin hours. I have a rather large map. You can see here http://forums.tf2maps.net/showthread.php?t=21165

    VVIS slows my PC down to almost a halt and I have a pretty good rig. I am woking on optimization right now.
     
  2. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,597
    Positive Ratings:
    1,677
    if you haven't heard of func_detail, you should start with this.
    try loading your portal file in hammer to see what's up. try to eliminate all excessive divisions
    then once you have of good grasp of how visibility works in source, you can go on and use func_viscluster
     
    • Thanks Thanks x 1
    Last edited: May 18, 2013
  3. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    Thanks fubar, Yeah I do know about func_detail I should have mentioned that. I have never used func_viscluster before is there anything explaining how it works ?

    I read somewhere to make only the internal brush work func_detail and to leave the exterior walls alone is this correct ?

    Also I did a bunch of skip/hint work in the mid of my map similar to what RaVaGe suggested in the link above. Can that slow VVIS ?
     
  4. RaVaGe

    aa RaVaGe

    Messages:
    723
    Positive Ratings:
    1,020
    Yeah, the cross at the middle can slow vvis, but if everything is well func_detailled, it can't slow a lot your compile time.
     
    • Thanks Thanks x 1
  5. nightwatch

    aa nightwatch

    Messages:
    640
    Positive Ratings:
    446
    If you do this, then your vvis will be much faster. However, your optimization will likely be quite poor.
     
  6. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    That was my thought because. If you func_detail the internals doesn't that make the walls non solid making the skip/hint inaffective ?
     
  7. RaVaGe

    aa RaVaGe

    Messages:
    723
    Positive Ratings:
    1,020
    Yeah you need to keep your basic brushwork, otherwise the optimization will be uselless.

    A little example from my map, still in dev, so some things aren't yet in func_detail (respawn roofs, houses at the outside, structures into the main building). And a lot of hints are missing, but I always like to do some optimisation before finishing my map.

    [​IMG]
     
    • Thanks Thanks x 1
    Last edited: May 19, 2013
  8. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    So are you using hint/skip to fill in doorways to the internals of structures to separate the outside from inside. I guess I'm somewhat confused by the hint/skip. I watched a video of this guy cutting them at corners and such but he didn't fill in doorways and windows can they be used in this way ?

    Also did you draw a giant skip brush over the whole map ?

    How do you plan on doing your Skybox ? Not talkin a 3D just the regular Skybox brush.
     
  9. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,767
    Positive Ratings:
    5,508
    Hint merely makes a leaf slice. Sometimes you might need to hint a doorway IF it was improperly sliced and the leaf goes "through" the doorway which would result in stuff being rendered that doesn't need to. Most of the time it is not needed.
    Corners... that's also a case by case basis. Really, you can't explain when you use hint, you need to understand the concept behind how vis works, then you will understand when and where you need hints. Hints are for when the compiler doesn't do something that should be done.

    I hope he didn't... that is actually detrimental.
     
    • Thanks Thanks x 1
  10. RaVaGe

    aa RaVaGe

    Messages:
    723
    Positive Ratings:
    1,020
    Most of the time I use areaportals to fill my doors and windows, but it depends if I can easily optimize an arena or not, if the doorway lead to a plain and big area, I use an areaportal, if it leads to another small room, I use an hint brush.

    The under face is textured as a hint brush, I textured all the other face in skip simply because vvis don't have to cut these. Here is an example :

    [​IMG]

    As you can see, if all your brush is textured in hint, vvis will cut the two sides of the brush, and will make appears another visleaf, the skip texture just say to vvis to simply skip this texture, and will not cut it. You need to put a skip texture on the side of the brush too.


    No idea, I will probably do something like that:

    [​IMG]

    I will use an areaportal for this one, because you still can see the other side if you jump high enough.

    But be aware that the areaportals use a lot of ressources, especially in multiplayer when the server as to compute every areaportals for every players, that's a lot ! So use them sparingly.
     
    • Thanks Thanks x 1
  11. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    Thanks guys that helped a TON!

    I actually went in last night and deleted about half of the interior for the base's. It was an optimization nightmare. I am working on simplifying the layout more.

    RaVaGe your post with snaps of your projects was an inspiration :)
     
  12. Pocket

    aa Pocket func_croc

    Messages:
    4,480
    Positive Ratings:
    2,212
    Another question: Is VBSP supposed to look at user-made hints first and then calculate automatic slicing based on the results? Or are they two unconnected processes? Because I've found that sometimes if I indent a metal TOP SECRET door, I'll get a visleaf the size of the door stretching across the hallway. And then if I try to fix it by placing a hint brush in that space, it'll slice across it but still keep the visleaf going across the hallway.
     
  13. nightwatch

    aa nightwatch

    Messages:
    640
    Positive Ratings:
    446
    I don't have too much experience with hint but I would think you have to make the hint face stretch all along the wall, not just the indenture.
     
  14. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,767
    Positive Ratings:
    5,508
    VBSP just does it's own thing. You can't always predict or control where portals show up, which is why hints are something akin to a "negative optimization" because generally you're only going to make MORE leaves (and thus increase calculations), in exchange for preventing certain leaves from seeing each other.

    Thinking about it now though, a program has to operate in some logical manner, and it could be that VBSP goes through the process of portalling the map in first-come first-served sense via file order. Next time there is a stubborn leaf across a hall, try making the hint brush before the door is cut into the wall (or clone/delete the wall afterwards).
     
  15. Toxindude

    Toxindude L3: Member

    Messages:
    103
    Positive Ratings:
    4
    So I compiled my tester map testing out my hint/skip brushes to see if they work. I get in game and use mat_wireframe 1,2 or 3 doesn't matter even r_draw commands.

    I look at a wall with a room on the other side and there are models placed in that room. The models don't show up in wireframe. You can see the wireframe room on the other side but no wireframe models. I went back and removed the skip/hint brushes, compiled and ran the map. Still you can see the room over there but the models don't show. If you run around the corner the models are clearly there in there purple black checker awesomeness.

    Disregard this post the TF2 Update fixed this issue.
     
    Last edited: May 21, 2013