Skip to content

Commit 70f6a3d

Browse files
authored
Adding texture guidelines (#60)
1 parent cbc3d70 commit 70f6a3d

File tree

2 files changed

+130
-0
lines changed

2 files changed

+130
-0
lines changed

Asset/Art/dds/texture_guidelines.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
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.

Asset/_Sidebar.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- Textures
2323
- [Cameo Sizes](cameo_sizes)
2424
- [DDS files and DXT compression](dds_files_and_dxt_compression)
25+
- [Texture Guidelines](Art/dds/texture\_guidelines.md)
2526

2627
- Audio & Video
2728
- [Game WAV Audio files](audio)

0 commit comments

Comments
 (0)