|
| 1 | +# Texture Guidelines |
| 2 | + |
| 3 | +In *Command & Conquer: Generals and Zero Hour*, there are several variations of textures adapted to different seasons, |
| 4 | +weather conditions, times of day, and more. Each variation is updated accordingly, and the suffixes in the |
| 5 | +DDS filenames indicate the type and condition of the texture. |
| 6 | + |
| 7 | +## Texture Naming Structure |
| 8 | + |
| 9 | +> [!TIP] |
| 10 | +> the `_en` and `_rn` textures are invalid because 99% of textures with these suffixes do not have proper night lighting |
| 11 | +> but are simply darkened versions of the base texture. They only increase the brightness from `_dn` to `_en`. |
| 12 | +
|
| 13 | +### Summer Textures |
| 14 | + |
| 15 | +- `<none>`: Pristine texture. |
| 16 | +- `_d`: Damaged texture. |
| 17 | +- `_e`: Really Damaged texture. |
| 18 | +- `_r`: Rubble texture. |
| 19 | +- `_g`: Garrison texture. |
| 20 | +- `_dg`: Damaged Garrison texture. |
| 21 | + |
| 22 | +### Winter Textures |
| 23 | + |
| 24 | +- `_s`: Pristine Snow texture. |
| 25 | +- `_ds`: Damaged Snow texture. |
| 26 | +- `_es`: Really Damaged Snow texture. |
| 27 | +- `_rs`: Rubble Snow texture. |
| 28 | +- `_sg`: Snow Garrison texture. |
| 29 | +- `_dsg`: Damaged Snow Garrison texture. |
| 30 | + |
| 31 | +### Summer Night Textures |
| 32 | + |
| 33 | +- `_n`: Night texture. |
| 34 | +- `_dn`: Damaged Night texture. |
| 35 | +- `_en`: Invalid texture, to be removed with Mod Builder. |
| 36 | +- `_rn`: Invalid texture, to be removed with Mod Builder. |
| 37 | +- `_ng`: Night Garrison texture. |
| 38 | +- `_dng`: Damaged Night Garrison texture. |
| 39 | + |
| 40 | +### Winter Night Textures |
| 41 | + |
| 42 | +- `_sn`: Snow Night texture. |
| 43 | +- `_dsn`: Damaged Snow Night texture. |
| 44 | +- `_esn`: Invalid texture, to be removed with Mod Builder. |
| 45 | +- `_rsn`: Invalid texture, to be removed with Mod Builder. |
| 46 | +- `_sng`: Snow Night Garrison texture. |
| 47 | +- `_dsng`: Damaged Snow Night Garrison texture. |
| 48 | + |
| 49 | +## Vehicle Texture Variations |
| 50 | + |
| 51 | +- `<none>`: Pristine vehicle texture. |
| 52 | +- `_d`: Damaged vehicle texture. |
| 53 | +- `_d1`: Wrecked vehicle texture. |
| 54 | + |
| 55 | +## PSD Layer Naming Conventions |
| 56 | + |
| 57 | +- If the Background layer is flattened, it represents the original retail texture (DDS) in best discovered quality. |
| 58 | +- If the bottom layer is not the original retail texture (DDS), it must be named to reflect the source texture |
| 59 | + name in sufficient detail. That can be a DDS or TGA or a processed (AI upscale) texture, for example |
| 60 | + `cbcnvstr01_s.dds realesr-general-wdn-x4v3`. Or a "merged" aka composited PSD image of the same (and never another!) |
| 61 | + texture set, for example `cbcnvstr01 merged`. |
| 62 | +- If PSD textures are modified, edits must move to lower-order textures that use higher-order merged |
| 63 | + textures (Pristine -> Damages, Summer -> Winter, ...). |
| 64 | +- Layer & Group names are lower case and use common keywords such as "damage", "light", "barricades", "snow", or any |
| 65 | + other name that gives it meaning. |
| 66 | +- Layer & Group names must end on a texture variant suffix (`_d`, `_g`, `_e`, ...) which helps to identify the origin |
| 67 | + texture variant. |
| 68 | +- Layers & Groups can be copied to other texture variants and are expected to be identical if they share the same name |
| 69 | + within the same texture set. |
| 70 | +- Groups meant to be used to assemble an alpha channel are named `_alpha` and must be hidden before saving the image |
| 71 | + file. |
| 72 | + |
| 73 | +## Working with Textures |
| 74 | + |
| 75 | +1. **Editing Software**: Use software like **Photoshop**, **GIMP**, or **Paint.NET** for editing DDS |
| 76 | + textures. |
| 77 | + |
| 78 | +2. **PSD**: When working with **PSD** files, maintain an organized layer structure and use clear names for each texture |
| 79 | + variant (e.g., `_d`, `_g`). Layers with an alpha channel must be named `_alpha` and hidden before saving the file. |
| 80 | + |
| 81 | +3. **Saving and Conversion**: Don’t manually export DDS files. Texture conversion should be automated by the build |
| 82 | +pipeline via Mod Builder to ensure optimal quality and file size. |
| 83 | + |
| 84 | +## Typical Errors in Textures |
| 85 | + |
| 86 | +Many textures have small, and sometimes big visual discrepancies between damage, weather or garrison states. |
| 87 | +Fixing this requires reassembling textures from other parts of the texture set. |
| 88 | + |
| 89 | +### Texture Resolution Mismatches |
| 90 | + |
| 91 | +Zero Hour textures are often aggressively downscaled, unlike Generals, which utilizes around 500 higher-resolution |
| 92 | +assets. Winter texture sets in Zero Hour tend to be significantly smaller than their Summer counterparts, leading to |
| 93 | +noticeable quality loss on Winter maps. Improving these undersized Winter textures is one of the most difficult tasks |
| 94 | +in texture refinement. |
| 95 | + |
| 96 | +### Damage Transition Mistakes |
| 97 | + |
| 98 | +Damage transitions are frequently inconsistent across weather variants. The progression from pristine to rubble is |
| 99 | +rarely seamless—details may vanish or shift between states. For instance, a damaged feature in the `(_d)` texture |
| 100 | +might disappear entirely in the `(_e)` version. Some fixes are simple overlays, but others demand detailed repair work. |
| 101 | + |
| 102 | +### Window Barricade Discrepancies |
| 103 | + |
| 104 | +Window barricades—used to represent infantry occupation—often vary wildly in alignment and appearance across |
| 105 | +damage states. They may shift slightly, vanish completely, or be visually incoherent from one texture to the next. |
| 106 | + |
| 107 | +### Window Reflections Problems |
| 108 | + |
| 109 | +Reflections on windows often misalign between damage and garrison states. These mismatches affect nearby damage |
| 110 | +effects and barricades. Reflection intensity also varies too much and can bleed incorrectly over snow. Reflections |
| 111 | +typically reside in the Alpha Channel of pristine and damaged `(_d)` textures, but are sometimes mistakenly included |
| 112 | +in `(_e)` textures. Shapes frequently don’t match the actual window geometry, and reflections can overlay unwanted |
| 113 | +visual elements. |
| 114 | + |
| 115 | +### Night Light Inconsistencies |
| 116 | + |
| 117 | +Night lights, mainly found on windows, show visual discrepancies across damage and garrison states. |
| 118 | +They commonly clash with barricade placements and can spill unrealistically over snowy surfaces. |
| 119 | + |
| 120 | +### Rubble Textures Anomalies |
| 121 | + |
| 122 | +Rubble and heavily damaged `(_e)`/`(_r)` textures sometimes include damage holes defined by black Alpha Channel |
| 123 | +regions. While intentional in some cases, this can result in parts like walls or roofs appearing suspended with no |
| 124 | +connection to adjacent structures—especially evident when viewed up close. |
| 125 | + |
| 126 | +### Alpha Channel Errors |
| 127 | + |
| 128 | +Some textures contain outdated or irrelevant Alpha Channels that can be safely removed. Others are missing |
| 129 | +Alpha data entirely, though in many cases, this can be reconstructed using neighboring textures in the same set. |
0 commit comments