Some information on the aims of model and texture overhauls for people wanting to contribute.
Note the project will be looking at focusing on new models or free CC0/open source models and textures with a no copyright infringement. This means no ripped models and textures from other games.
Models
New Models Style Guide
The models in NWN, especially pre-HotU generally are low quality but cartoony and animated enough to be fine at a distance, especially smaller creatures such as Goblins or small animals.
However to add new models or bring models up to a newer modern quality that the Beamdog HD Pack has done, it should be also done with proper intent and style similar to the original models.
This means:
- For new models: Based on source artwork or a similar look to existing high quality models (such as the Beamdog HD Pack)
- For replacements: generally similar or the same colour schemes as the original models (eg; Yellow and Orange Goblins) and similar model design and using the same animation set/size
Discuss what looks and feels should be on the Discord: https://neverwintervault.org/chat
Existing Model Replacement and Upgrades - Prioritisation and Methodology
The prioritisation of the project is in the most desirable to least desirable option for models and textures are below, of course usually the most work to the least work!
| Priority | Model | Texture | Notes |
|---|---|---|---|
| 1 | New high quality models | New fancymapped PBR textures | The new models need to follow the style guide below to keep in line with NWN's more cartoony aesthetic and 3E ruleset For PBR information see Enhanced Lighting Engine and PBR and Standard material inputs for information. |
| 2 | Improved older models | New fancymapped PBR textures | Examples of model improvements:
|
| 3 | Improved older models | 4x upscaled textures with fancymapping | |
| 4 | Improved older models | 4x upscaled textures | Some models will be difficult to fancymap and may as well wait on new models just with a more clear texture. |
| 5 | Original models | New fancymapped PBR textures | This works best for tilesets where a lot of flatter textures can work with new heightmaps and normal maps well |
6 | Original models | 4x upscaled textures or original textures with fancymapping | Certain models are already high quality enough but really need fancymaps to bring out some more quality |
| 7 | Original models | 4x upscaled textures | |
| 8 | Original models | Original textures | Mainly can leave some of the higher quality models alone |
The 4x textures will be generally from the 4x Texture Upscaling work done by Jasperre. These should at least bring some much needed clarity and detail to the muddy, low resolution original textures.
Animation Improvements
The Overhaul Animations page will outline the new supermodels that just contain animations.
On the top of them there may be upgrades done to the animations for instance making simple model animations include the PC animations set, like emotes and the like.
Model Replacement and Naming Information
Models generally will replace the same ones like-for-like for the models to be loaded properly for a "pure override art pack" style. This means you'll have "c_ettercap.mdl" present even if the actual model is upgraded and textures changed.
For texture overrides the texture must be pretty much identical to the original - since that texture may be used by multiple models even in the base game. Be careful about changing the even the orientation or any kind of colours across existing texture upgrades. This also applies to portraits and icons - if the model is drastically upgraded the relevant portrait should be replaced as well (if possible - items can't have their own identifiers thus need to override only).
For new models and textures an identifier "op" will be used in the name, eg: c_op_xxxxx or t_op_xxxx, ife_op_xxxx, po_op_xxxx etc. See individual overhaul pages for more information naming conventions. These will be strictly marked for each use across the project - sharing is possible but not highly recommended across different tilesets (instead a duplicate should be made).
Model Source and Compiled Formats
The source format will be a Blender or 3dsMax project file if available, but at the very least the uncompiled ASCII version.
The compiled format will be the MDL file but compiled in game.
Textures
Texture Replacement Source and Final File Size Notes
The SVN maintaining Overhaul will contain the source textures in a compressed PNG format at the highest possible quality (and on top XCF or PSD is fine to add!). This can be 4K, 8K or whatever - but bigger the better regardless of use case (even the smallest on screen item).
The reason? We can downscale sizes but not increase them. On an 8K monitor it might look blurry that otherwise fine looking 0.5K texture.
Some models also scale - weapons in larger creatures hands, placeables commonly get visually transformed, various other times things are zoomed in such as cutscenes. Tileset textures in particular look poor when zoomed in. NWN also may agressively downgrade the quality in some cases.
The final files will likely be along the lines of:
- 4K - Release of textures scaled to a maximum of 4096x4096 big. 4K monitors and the like benefit the most. 4K monitor appropriate and potentially VRAM heavy.
- Note for tiny items like say, Daggers, or some specific smaller bodyparts this might still have smaller ones generated - not sure yet.
- 2K - Medium quality, 2048x2048 maximum texture size. 2K monitor appropriate.
- 1K - Lower quality. 1024x1024 maximum texture size. 1K monitor appropriate.
PLT may be different see PLT section below.
Note on sizing - 15MB is a good guideline due to nwsync and sanity as it were.
| Dimensions | Typical MB for a DTX5 (Alpha) | Typical MB for DTX1 (No Alpha) | Notes |
|---|---|---|---|
| 4096 x 4096 | 21.3 MB | 10.6MB | Upscaled from 1024x1024 - no Bioware HotU or earlier models are this large - so is newer DLC or custom content |
| 3600 x 3600 | 16.4 MB | Odd size not sure what texture this was. | |
| 2048 x 2048 | 5.33 MB | 2.66MB | Upscaled from 512x512. Likely best general square size. |
| 1024 x 2048 | 2.66 MB | Longer texture - some cloaks and stuff use this. | |
| 1024 x 1024 | 1.33 MB | 682KB | Upscaled from 256x256 |
| 512 x 512 | 341 KB | 170KB | Upscaled from 128x128 |
Texture Replacement Naming Information
For best results we will always name diffuse files with _d in the filename. This is done to allow ReplaceObjectTexture and similar to work fully when MTR files are in use. The MTR file name thus will never match any texture file name.
When naming new textures for a specific purpose standards will be to try and name them after the original model name, eg a dagger part called wswdg_b_011.mdl could have a full set of textures named wswdg_b_011_d, wswdg_b_011_n, wswdg_b_011_r, wswdg_b_011_s - and a material file called m_wswdg_b_011_d.mtr for instance.
For material file usage best practice is to only have the materialname reference in cases where that has all the texture information. It stops the game checking 2 references unnecessarily and makes it clear this is only using material PBR files. You can leave out the bitmap/texture0 line.
Material files should be the location for renderhint options to keep it all in one place (in case you want to edit if it uses the full set of options or a more limited set and you specify a global specular, as per further down).
In cases where the MTR is shared and diffuse file is swapped between items, usually the m_texture.mtr name is used for the materialname and the bitmap file is the diffuse file.
| File Type | Reference | Naming Convention | Example | Notes |
|---|---|---|---|---|
| MTR | materialname | originaltexture m_modelname modelname m_texture | tcn01_glas02.mtr m_wswdg_b_011 wswdg_b_011 m_greatsword.mtr | Original texture replacements are common especially on tilesets and placeables where the original models are left otherwise untouched. m_ keeps all material files prefixed. Helps to remove clashes. However requires new models. New textures with a 1:1 mapping to the MDL (no reuse) could use the model name to keep things simple If you want full clarity you can use m_texture.mtr - this is useful also in the cases of shared MTR files |
| Diffuse | texture0 | texture_d | tcn01_glas02_d | If a PLT file this needs to be excluded from the MTR file entirely (have no texture0 line) and instead have the bitmap file in the original just be "modelname" since this is automatically done by the game (and just makes it clearer) |
| Normal | texture1 | texture_n | tcn01_glas02_n | |
| Specular | texture2 | texture_s | tcn01_glas02_s | If it's not shiny using "black" as a reference here is worthwhile (else it's potentially auto generated from the roughness) |
| Roughness | texture3 | texture_r | tcn01_glas02_r | |
| Height | texture4 | texture_h | tcn01_glas02_h | |
| Self-Illumination | texture5 | texture_i | tcn01_glas02_i |
PLT Files
Source files - if they exist - can be in whatever PSD/XCF is done before changing to PLT although PLT has no quality loss.
There is no "PNG" intermediary however.
The final PLT files are all kinds of awful and 8MB max is what Beamdog used and even the game chokes on a lot of hardware (due to the amount of bodyparts loaded at once) even with PLT load improvements.
The 4K/2K/1K options may become:
- 4K - original file sizes
- 2K - Halved sizes
- 1K - quartered sizes
TBH though might go through and make several bodyparts get standardised sizes, like all Necks being 512x512 or something...just to make the 4K pack not choke so much! Would need to resize things like normals to match as well.