Sign Glow¶
Materials → Sign Glow
The halo behind lit 3D lettering. Select the letters, press Create Sign Glow, and the tool traces their own silhouette onto a plane just behind them — a tight glow hugging the letterforms and a wide bloom spreading out past them, on one quad and one texture.
That is how a lit sign reads at night in GTA. Not with lights: a real light per sign is a budget nobody has, it will not survive the interior's light cap, and it does not look like neon anyway. What the game does — and what vanilla signage does — is exactly this: an emissive plane carrying a picture of the glow.
Contributed by Molo Modding
Written as a standalone add-on and folded in here. The maths is theirs;
what changed on the way in was the packaging — this add-on's namespace,
module layout and panel, and English throughout. The .dds writer it
brought is now shared by the whole project.
Watch it work¶
The halo appearing behind a bar's neon and being tuned in place — Molo Modding's own capture, cropped to the viewport.
How to use it¶
- Model or import your lettering as a mesh. Several objects are fine — select them all and they are traced together, as one silhouette.
- In Materials → Sign Glow, set the Resolution and the Colour you want to start from. Both stay changeable afterwards.
- Press Create Sign Glow. A plane appears behind the letters, already glowing in the viewport.
- Everything else is on the Selected Glow panel, and everything there is live.
The settings¶
Halo¶
| Setting | What it does |
|---|---|
| Colour | What the halo glows. Its alpha scales the whole thing — pull it down for a sign that is meant to be dim rather than off. |
| Core Size | The tight glow hugging the letters, as a fraction of the texture's longer side. Small values keep the letterforms readable. |
| Core Intensity | How bright that inner glow is. |
| Halo Size | The wide bloom behind the letters — the part that reads from across the street. |
| Halo Intensity | How bright the bloom is. Turn it to 0 for a hard neon outline with no atmosphere around it. |
The two layers are the whole idea. One blur is either a tight outline or a soft cloud; a real sign is both at once, and the two sizes are what let you say how much of each.
Plane¶
| Setting | What it does |
|---|---|
| Resolution | Pixels along the longer side. The short side follows your sign's aspect ratio, so pixels stay square whatever shape it is. |
| Auto Fit | Sizes the plane from the halo itself, so a wider bloom grows the plane to hold it rather than being clipped by it. On by default. |
| Padding | The manual version of the same margin, when Auto Fit is off. |
| Offset Behind | How far behind the frontmost letter the plane sits. Big enough that it does not z-fight, small enough that it does not detach. |
| Edge Fade | How far in from the border the plane's Color 1 alpha climbs from 0 to 1, as a fraction of its shorter side. |
The plane is not a bare quad: it is a bordered grid whose outer ring of
vertices carries alpha 0. Color 1's alpha is what the emissive shader
blends by, so without that ring the surface would stop at a hard rectangle
even though the halo on it had already faded to nothing — which in game reads
as a faintly lit box of air around the sign. Edge Fade is how wide that fading
band is.
Viewport¶
Preview Strength is the emission of the viewport material only. It is not exported and the game never sees it — it exists so you can see what you are doing under Blender's own lighting, which is not GTA's.
Getting it into the game¶
The new glow already wears the shader, if Sollumz is available: a
emissive_additive_alpha.sps material pointing at the generated halo.
Additive is the right shader here — a glow is light added to what is behind
it, and the halo's own alpha is its shape.
Nothing is written to your drive until you ask. Create leaves the texture packed in the .blend, which is all the viewport and the material need. Two buttons put it on disk, and only when pressed:
- Export for Sollumz writes the halo as an uncompressed
.ddsinto atextures/folder beside your.blend, repoints the image at that file, and rebuilds the material around it. Sollumz embeds whatever the image points at, so this is the step that makes the sign exportable — a material built around a packed image exports carrying nothing. - Save DDS writes the texture wherever you choose and leaves the material
alone, for when you are assembling a
.ytdby hand.
After Export, the .dds follows your sliders. Once the image is a file
reference every rebuild rewrites it, so what is on disk stays the halo you are
looking at rather than the one it was exported as.
Export is also the answer when the shader could not be built or the answer has
changed: a glow made on a machine with no Sollumz, a different shader typed
into the field above, or a .blend you have since saved somewhere else and
want the texture beside.
If your Sollumz does not have that shader
Shader tables differ between Sollumz versions. Rather than failing, the tool falls back to the next emissive shader that exists and tells you which one it used. The magnifier button beside Export lists every emissive shader your installation actually carries.
Everything except Export works without Sollumz
Tracing the silhouette, generating the halo and previewing it are plain Blender. Only the last step needs Sollumz, and that is the only place this tool mentions it.
Notes¶
- Your lettering is never modified. It is read — evaluated, so modifiers and scale count — and nothing else.
- The plane inherits the sign's rotation. Its own axes are the sign's, so dragging it along Z moves it up the sign rather than up the map.
- A hand-moved glow stays where you put it. Use Pin Position after nudging it, and rebuilds stop snapping it back onto the lettering. This is the same Position section every generated object in the add-on has.
- The texture is uncompressed A8R8G8B8. That is the variant everything in the GTA pipeline reads without argument, and a halo is a smooth gradient — exactly what block compression ruins. A 512×512 halo is about 1 MB; compress it in a texture tool afterwards if the budget needs it.