Make a non-solid func_brush blend in

Discussion in 'Mapping Questions & Discussion' started by 【EmNudge】, Sep 11, 2016.

  1. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    I want to make a small easter egg - a secret passageway. The problem is that the non-solid func_brush doesn't really seem to be accepting the same light as the rest of the wall. It ends up looking like this:
    [​IMG]
    I don't care too much about bullets not hitting it (if you know a way around that, that'd be swell, but I don't think there is), I care about it not blending into the wall. Just looking at the corner you can see it.

    Would the only option be covering it up with a decal?
     
  2. Nicky

    aa Nicky Lets try something new!

    Messages:
    912
    Positive Ratings:
    1,698
    Put a non solid prop over it, like a chalk board, or a painting to get the real Super Mario 64 experience. It's just an idea.
     
  3. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    Yeah, I know. The decal idea I put there is probably a better option. I just want to know if there is a way to do it without needing to cover it up.
     
  4. Izotope

    aa Izotope Never releases maps

    Messages:
    609
    Positive Ratings:
    571
    Select the face of your non-solid brush and all faces around it that touch it(i.e. the ones that don't share the lighting).
    When you've selected the faces, open the Texture Application Tool, click Smoothing Groups and hit 1.
    You're done and it should blend in now.
    [​IMG]

    Hope this helps!

    (If you have more of these, or other instances where you would want smooth lighting between multiple faces, you'll want to use the other numbers up to 24)
     
    • Thanks Thanks x 2
  5. The Letter Before A

    The Letter Before A Cool Idiot

    Messages:
    300
    Positive Ratings:
    119
    Ive found that most times with secret passage ways
    Noone will notice them from shooting at them,
    Most of the time having them shootable makes it easier to refind them
    But if you dotn won't that just make the rest of the wall a func_brush as well, but be sure make it solid.
     
  6. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    Doesn't seem to work in this case. I think I'll just have to end up placing a prop or decal over it:
    trade_plaza_sg_a50005.jpg
     
  7. Gale

    Gale L1: Registered

    Messages:
    38
    Positive Ratings:
    13
    I found that moving the light source further away from the wall fixes the issue, as for the decals you can do this, but it's a bit sloppy:

    First, here is your func_brush:
    [​IMG]

    Make sure that "Solidity" is set to toggle.

    Then make a trigger:
    [​IMG]

    Once the player touches the trigger, the wall will disappear, then when they pass the trigger it will close back up. When the brush reappears, the decals will stay. Another way to do this is with a non-solid & invisible button that "opens" the brush when it is damaged.

    (Don't worry, I compiled and testing everything, including the lighting fix, it all should work! For the lighting test I used the same texture for all the surfaces to be sure.)
     
    Last edited: Sep 12, 2016
  8. Izotope

    aa Izotope Never releases maps

    Messages:
    609
    Positive Ratings:
    571
    Always works, can you show me a picture of all faces you've grouped?
     
  9. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,217
    If the brush doesn't need to move, have you considered just expanding it to cover the entire wall and then making the "real" wall brushes nodraw?
     
    • Thanks Thanks x 1
    • Like Like x 1
  10. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    [​IMG]
    Yes, I've considered that. The problem is that I want this to really just be a simple thing, so I can do this elsewhere as well. These walls are right next to the void, so making them a func_brush would also force me to surround it with nodraw brushes, making this way too complicated for a simple thing.

    If Izotope's method doesn't end up working, I will probably cover it with a prop or decal.

    EDIT: didn't see @Gale's post. I will try it and update once I have tested it.
     
  11. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    While that's a great idea, it's not exactly what I'm looking for. I already have an enclosed area, so the light source needs to stay where it is.
    I want it to blend seamlessly with the wall, not open when next to it. It's in a place where many players go quite often, so it will be instantly noticed if I made it like that.
     
  12. Izotope

    aa Izotope Never releases maps

    Messages:
    609
    Positive Ratings:
    571
    hmm odd, it's possible that your lightmap grid scale is too big and not enough luxels are on your non-solid face, however that seems unlikely.
    Can you show me a picture of your face with the lightmap grid?
    Like this
    [​IMG]
     
  13. 【EmNudge】

    【EmNudge】 L4: Comfortable Member

    Messages:
    180
    Positive Ratings:
    37
    [​IMG]
     
  14. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,217
    I guess I don't understand the problem? It's literally the same thing as what you have now, except the solid walls are nodraw (to prevent z-fighting) and the func_brush is big enough to cover the whole wall (to ensure a nice uniform surface). Here's a test file I made just now to demonstrate. The only drawback is that the entire wall now doesn't accept decals; I don't know if that's fixable or not.
     

    Attached Files:

    • Thanks Thanks x 1
  15. Crowbar

    aa Crowbar perfektoberfest

    Messages:
    1,429
    Positive Ratings:
    1,173
    If you don't want a certain face to get impact decals, make a block bullets so it is exactly where you want the decals to not appear, it should z-fight with the brush. Such a blockbullet will not make any other difference, but impact decals will get gone.
     
  16. Izotope

    aa Izotope Never releases maps

    Messages:
    609
    Positive Ratings:
    571
    You didn't select the nonsolid face, so I can't see how many luxels are in it.
    But judging from the other screenshots it should be enough, but you can still try to lower the luxelsize and fit more in.
    You can do so in the Texture Application Tool where it says Lightmap Scale, default should be 16, make it 8 and see if that helps.
    Make sure the surrounding faces share the same lightmap grid size!
     
  17. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,217
    Guys. The problem is that lightmaps for multiple faces are only grouped together if the faces are all world brushes, all func_detail (I don't think they need to be part of the same func_detail but don't quote me on that), or all part of the same brush entity. So the blurring between luxels that the engine's texture filtering adds isn't going to be there. There's literally nothing you can do to guarantee a brush entity and a world brush will be lit the same.
     
    • Agree Agree x 1
    • Respectfully Disagree Respectfully Disagree x 1
  18. Crowbar

    aa Crowbar perfektoberfest

    Messages:
    1,429
    Positive Ratings:
    1,173
    VBSP makes one single func_detail from all anyway AFAIK.
     
  19. Izotope

    aa Izotope Never releases maps

    Messages:
    609
    Positive Ratings:
    571
    That's just not true because I've been making the exact same eastereggs that blend in for some time now.
    I know for a fact that this works.
     
  20. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,217
    I did say "guarantee". Sometimes you can get lucky.

    Func_detail isn't even considered an entity by the game; it's more like a flag that tells VBSP not to cut vis on them. But the data of which ones are grouped is preserved somewhere, because it can be retrieved by a decompile (unless BSPSource just guesses based on which ones are touching?)
     
    Last edited: Sep 13, 2016