As seen below, I have a material with a wave texture applied over it. However, I'd like to have the wave texture only appear at the top of the mesh to represent grill marks, like grill marks found at the top of a filet mignon. Is it possible to subtract part of the wave texture so it only appears at the top of the mesh? Thanks!
You can create 2 different textures (here the wave texture and the pure brown texture) and mix them with a vertical black and white gradient as mask (use the Texture Coordinate Generated output, plug it into a Converter > Separate XYZ node that you plug into the factor of the Mix Shader):
As the normal of your surface approaches alignment with the Z axis, the absolute of its dot-product with (0,0,1) approaches 1, (from 0). So you can map a range of that to 0->1 to create a mask between stripes and no-stripes:
If you use the Normal, it has a nice side-effect of putting a tiny bit of char in any nobbles there may be in the sides of your patty..
The Normal output of Texture Coordinate is in Object space, so you can flip your burger OK.