Overview
An in depth guide to every light setting in SFM
Preliminary
In this guide, I will go over every single setting in SFM’s long list of light settings, starting with intensity and ending with edgeHeight. I will not explain the color settings since they should be self explanatory, or the transform settings since they don’t do anything.
The functions of these settings that I will be covering in this guide are just my understanding of them. Some have unknown functions that no one really knows.
Enjoy.
intensity
Intensity is one of the more basic settings. Higher values result in brighter lights, lower values result in dimmer lights. There really isn’t much to this one.
ambientIntensity
In my 4 years of using SFM and from asking others, it seems like no one has any idea what this does. Just ignore ambientIntensity.
Note: This does actually do something in S2FM, but I wont get into that here. This slider also cannot be remapped, not that it matters though.
horizontalFOV and verticalFOV
This one is also very simple. horizontalFOV describes the horizontal diameter of the light, while verticalFOV describes the vertical diameter of the light. Most of the time, these two values will remain equal and produce a circular light, but if you wish, you can make an oval light with these two values as well.
These two values can also be more easily manipulated by simply dragging the light from the Animation Set Editor to a viewport, and moving it just like you would a camera.
radius
The radius setting changes the “size” of the point light. Basically, it mimics a larger light source.
For example, a low radius light could be something like a flashlight. A higher radius light would be more akin to a spotlight. The biggest difference that this makes is shadows become less harsh, smoothing out and coming to a point as it goes on.
Since radius is basically changing the “size” of the point light, it will also cause light to wrap around objects, making it have a softer appearance.
This is most useful for key lights, where softer shadows, unlike rim lights where bright and shiny edges are important.
shadowFilterSize
Unlike radius, shadowFilterSize will not distort the shape of the shadow, just the edges of the shadow. Lower values result in sharper edges, while higher values result in softer edges.
The key difference between higher shadowFilterSize and higher radius is shadowFilterSize will not cause light to “wrap around” objects, and it will also not cause the shadow to narrow as it goes farther.
shadowAtten
shadowAtten is simply how dark the shadows created by the light will be. Lower values will result in darker shadows, and higher values will result in lighter shadows.
Note: this slider cannot be remapped
minDistance and maxDistance
These two are strange ones. On the surface, they simply change the minimum and maximum distance away from the light objects will be lit.
However, there is something to note here. Sometimes you might notice that certain areas are being lit up, even though they are outside of the bounds defined by min and max distance. This is because of the way that SFM does lighting. If any part of the object is within the bounds, the entire object will be lit normally.
If you look at the above video, the table does not become dark until the min distance boundary has moved past the entire table, so that no part of the table is in the bounds. If you don’t like this, you can change the light to an Uber light, which I will not talk about here.
constantAttenuation, linearAttenuation, quadraticAttenuation
In SFM, lights by default start bright at the base, and slowly dim as the distance from the source increases. These 3 settings change the way that this functionality works.
By default lights in SFM are quadratic, meaning that as you get further away, the light gets increasingly darker. The constant setting is more of a toggle button rather than a slider. Its either constant or not.
When you set the light to be constant, you will notice that the light becomes overwhelmingly bright. This is because the brightness of the light at its source is now the brightness of the entire light, so you will need to decrease the light’s brightness by a lot.
Unlike quadratic, linear will cause the light to lose its brightness at a steady rate, rather than an increasing rate. Increasing this slider will only increase the rate at which the brightness of the light drops off. However, most of the time this effect is indistinguishable from intensity.
Quadratic works the same way as linear, however the rate at which the brightness of the light drops off is non-constant, meaning the farther away, it will get increasingly darker, as the name suggests. Just like linear though, increasing this value will change the rate at which the brightness of the light drops off, and it is indistinguishable from intensity.
shadowDepthBias
By default, shadowDepthBias has a maximum value of 0.001, so it really doesn’t change anything. However, if you remap this to lets say 1, then you will notice a difference.
shadowDepthBias, kind of like minDistance, adjusts when SFM will start to render shadows. This isn’t really useful in 99.9% of situations, so don’t really bother with this.
As you can see here, the shadow of the bottle doesn’t start at the base like it normally would, instead it starts part way up the bottle. This is incredibly unrealistic and jarring, and not a good look. This is really only useful for when you have a model with small details that are causing weird shadows. You can increase the shadowDepthBias in these cases to remove these small shadows.
shadowSlopeScaleDepthBias
Honestly, I can’t really figure out what the point of this setting is. The slider is set to a max of 10, but you can remap this. However, after setting it to 1000, all I can really say is that it “thins” out shadows, narrowing shadows at their base. Honestly, I’ve barely used shadowDepthBias let alone shadowSlopeScaleDepthBias. These two are mostly just used in unison together to refine your shading. Just experiment around with it and see what works best.
farZAtten
farZAtten is also quite confusing in its exact function, but most commonly it is used to further extend the range that your lights can reach. The maxDistance slider, even when remapped, can only allow a light to extend so far. However, combined with farZAtten, your lights will be able to go much further. This is very useful for relighting entire maps, where you need to place a light high in the sky to light the entire map.
As you can see, without using farZAtten, we can’t even see the second and third barrels. However, after using a remapped farZAtten, not only can we see those barrels, but we can also see the walls past the barrels. The light’s brightness dropoff is also reduced. I have no clue why.
Im sure someone has a much better explanation for how farZAtten works, but in my experience this is all I have used it for.
nearEdge and farEdge
nearEdge and farEdge don’t seem to do anything for standard lights in SFM. However, if you change the light to an Uber light, they will create a fade effect when using minDistance and maxDistance.
cutOn and cutOff
Once again, like nearEdge and farEdge, these two settings don’t seem to do anything for standard lights. But for Uber lights, they will change the bounds of the light’s distance, much like minDistance and maxDistance.
However, unlike minDistance and maxDistance, nearEdge and farEdge can light portions of an object. Meaning that SFM will not check to see if any part of the object is in the light’s path then light the whole object. Instead it will just light whatever portion of the model is in the light’s bounds, and only those parts.
Volumetrics
Volumetric lights create that “foggy” effect in scenes. There are multiple ways to change the “fogginess” or the “dustiness” of the light
- IntensityBy changing the intensity, you will increase the density of the volumetric. However, you will also increase the brightness of the light itself. This can be bad when you want to separate the lights keeping your scene properly lit, and the volumetric lights.
- volumetricIntensity
Volumetric will change the density of the fog effect without changing the brightness of the light when it shines on a surface. - noiseStrength On the surface, noiseStrength and volumetricIntensity do the same thing. However, there is a slight difference. The texture of volumetric lights is very distinct. Increasing noiseStrength will just wash out this texture. So if you don’t like this weird “cloudy” texture, just increase the noiseStrength and decrease the volumetricIntensity.
Volumetric lights in SFM are rendered in sections. Normally these sections aren’t really visible and aren’t much of an issue. However, if you set the maxDistance of a volumetric light really high, you will start to see issues. You see, there is a specific amount of sections to a volumetric light, so if the light needs to stretch really far, the sections will start to have gaps in them. So when using a volumetric light, just keep it within the confines of whatever you need to be lit up.
width, height
Like before, these two settings don’t seem to do anything for standard lights. However, for Uber lights, they can be used to create rectangular lights when used in conjunction with horizontalFOV and verticalFOV.
edgeWidth, edgeHeight
Once again, edgeWidth and edgeHeight don’t seem to do anything for standard lights. However, for Uber lights, they will define the fade on the edges of the light, similar to how nearEdge and farEdge work.
Final thoughts
This guide merely describes what each slider does, it is up to you to experiment with the multitude of settings to find what looks best. There isn’t really any specifically set formula for good lighting. Different styles and themes will dictate different lighting. If you need some basic pointers on how to use lights to properly light a scene, you can check out my other guides here.
I hope this guide helped you understand the different light sliders better, good luck on your future SFM projects 🙂