Smoothing groups
Vertex Smoothing simply uses Vertex normals (vectors) as if they were Surface normals to generate a kind of pseudo-subdivision surface for the Lighting shader to work with. This is also known as phong shading, not to be confused phong reflections.
When a number of adjacent surfaces are assigned to the same Smoothing group, the Rendering Engine will "soften" the light and shadow across each vertex or edge shared by the group. This makes the geometry seem smoother when viewed from most angles. It does not soften the profile or silhouette of the object.
Tip:On lightmapped surfaces, smooth shading will be more effective on higher-resolution lightmaps; see right.
Tip:Edges sometimes must have contiguous texture UVs for smooth shading to have a noticeable effect, particularly on vertex-lit geometry.
Bug:In Source 2013 and possibly other engine branches, smoothing groups are not properly written for detail brush faces. This is fixed in the Slammin' Source Map Tools, Mapbase, and Garry's Mod versions of VBSP, and code for this fix can be found in pull request 391 on GitHub.
Workaround:If stock compilers must be used, increasing the auto-smoothing threshold to 47 (
[todo tested in?]-smooth 47
) can help. Alternatively, use func_brush.Important:Hammer's smoothing groups only affect brushes, not displacements! Displacements which are sewn together are always shaded smooth; this can be worked around by having the vertices of the base brush faces not be aligned, manually aligning the displacement vertices together instead of sewing.
Guidelines
- Brush geometry must be manually assigned to a Smoothing Group in Hammer. Model geometry smoothing data is configured in the model editor before SMD export.
Auto Smoothing
- In at least some games, VRAD will auto smooth angles (between faces without smoothing groups) which are less than or equal to the
-smooth
parameter (default 45).