mirror of
https://github.com/nzp-team/documentation.git
synced 2025-02-10 10:20:40 +00:00
Add fog documentation
This commit is contained in:
parent
db8bd9186d
commit
e34d315301
3 changed files with 46 additions and 0 deletions
|
@ -48,6 +48,7 @@ Documentation and by extension headers/categories are a work in progress.
|
|||
- [Customizing Mystery Box Weapons](../mapping/mbox2-format.md)
|
||||
- [Advanced Model Exporting](../mapping/model-exporting.md)
|
||||
- [Model Alpha Transparency](../mapping/alpha-transparency.md)
|
||||
- [Fog](../mapping/fog.md)
|
||||
|
||||
### Map Entities
|
||||
- [Barricades](../mapping/barricades.md)
|
||||
|
|
45
markdown/mapping/fog.md
Normal file
45
markdown/mapping/fog.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
% Fog - NZ:P Mapping Documentation
|
||||
# Fog
|
||||
|
||||
## Introduction
|
||||
|
||||
![Christmas Special's white haze on PlayStation Portable (left) and FTE (right).](../res/images/fog_comparison.webp)
|
||||
|
||||
_Nazi Zombies: Portable_ uses it's own 5-parameter, linear fog system. This was originally conceived this way as the PlayStation Portable's hardware fog is *linear* and not *exponential* as is traditional for Quake and OpenGL itself. The Nintendo 3DS also adheres to this standard thanks to [picaGL](https://github.com/masterfeizz/picaGL/tree/revamp)'s linear LUT fog. Other platforms manipulate these fog values to approximate them into standard `exp2` fog modes. Exponential fog is significantly less granular and as a result this approximation will never be spot-on.
|
||||
|
||||
## Parameters
|
||||
|
||||
```
|
||||
usage:
|
||||
fog (start) (end) (red) (green) (blue)
|
||||
```
|
||||
*Excerpt from `fog` command in the console.*
|
||||
|
||||
When defining fog, you can provide a `start` and `end` distance, in units, of the fog "wall" that appears. The distance between `start` and `end` will impact intensity, and of course, the farther away `start` is from zero, the more visibility you have before the fog begins.
|
||||
|
||||
You can change the color of the fog given individual `red`, `green`, and `blue` color values. These values range from `0`-`100`, with `100` being maximum intensity. Both pure black fog with `0 0 0` and pure white fog with `100 100 100` are supported.
|
||||
|
||||
As an example, below is the fog output for *Nacht der Untoten*:
|
||||
|
||||
```
|
||||
current values:
|
||||
"start" is "240"
|
||||
"end" is "1550"
|
||||
"red" is "54"
|
||||
"green" is "55"
|
||||
"blue" is "59"
|
||||
```
|
||||
|
||||
## Translation
|
||||
|
||||
### Linear to Exponential
|
||||
|
||||
Platforms that do not support linear fog will algorithmically approximate a decent exponential fog density to use instead. The formula is as follows:
|
||||
|
||||
```
|
||||
fog_density_gl = ((fog_start / fog_end)/3.5f)
|
||||
```
|
||||
|
||||
### Exponential to Linear
|
||||
|
||||
FTE will still fallback to old `exp2` fog behaviors if provided them, however all other platforms will ignore fog if any of it's provided values are less than zero. This is intended behavior.
|
BIN
markdown/res/images/fog_comparison.webp
Normal file
BIN
markdown/res/images/fog_comparison.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.8 KiB |
Loading…
Reference in a new issue