Make a non-solid func_brush blend in

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
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:
711613b4c4e5d713449f463e42f1cc4c.png

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?
 

nickybakes

You should've played Rumbleverse
aa
Jul 28, 2015
911
1,739
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.
 

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
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.
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.
 

Izotope

Sourcerer
aa
May 13, 2013
698
764
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.
vqQBj2u.png


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)
 

The Letter Before A

Cool Idiot
Jul 15, 2016
292
196
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.
 

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
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.
vqQBj2u.png


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)
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
 

Gale

L1: Registered
Aug 28, 2016
38
14
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:
d07b9cef0a.png


Make sure that "Solidity" is set to toggle.

Then make a trigger:
45a766c36c.png


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:

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
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?
 

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
Always works, can you show me a picture of all faces you've grouped?
81f1ac726c7bbf2e747d9443dc767a88.png

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?
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.
 

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
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:
d07b9cef0a.png


Make sure that "Solidity" is set to toggle.

Then make a trigger:
45a766c36c.png


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.)
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.
 

Izotope

Sourcerer
aa
May 13, 2013
698
764
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
lo0JDDk.png
 

EmNudge

L4: Comfortable Member
Sep 23, 2015
184
60
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
lo0JDDk.png
72e1dc5f809004ab50299e478ba16024.png
 

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
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.
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.
 

Attachments

  • test_hiddenhole.vmf
    26.5 KB · Views: 74

Crowbar

Spiritual preprocessor
aa
Dec 19, 2015
1,455
1,297
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.
 

Izotope

Sourcerer
aa
May 13, 2013
698
764
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!
 

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
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.
 

Izotope

Sourcerer
aa
May 13, 2013
698
764
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.

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.
 

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
I did say "guarantee". Sometimes you can get lucky.

VBSP makes one single func_detail from all anyway AFAIK.
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: