MONKEY (p0): THIRD-PARTY.md with the WarcraftXL credit table
One table of every WarcraftXL-derived file (Benilla file | WarcraftXL module |
Source files | What was taken), pre-filled with the enhanced-water blocks and
the swimmer bob, plus the planned ports. The standard header line
("Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim —
module ..., ...") is added to enhanced_water.wgsl and water_fx/bob.rs.
Linked from README, LIGHTING and WATER. WATER.md no longer says the WarcraftXL
water module is for the 1.12 client: it is a 3.3.5a client module.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8c263244c9
commit
721a1f7d19
+2
-1
@@ -96,4 +96,5 @@ Debug tracing: `WOW_TORCH_TRACE=1`, `WOW_POINTS_DUMP=1`, `WOW_SHADOW_TRACE=1`, a
|
||||
|
||||
## Licence
|
||||
|
||||
Same as upstream: MIT OR Apache-2.0.
|
||||
Same as upstream: MIT OR Apache-2.0. Code and techniques taken from other projects (WarcraftXL,
|
||||
by iThorgrim) are credited file by file in [`THIRD-PARTY.md`](THIRD-PARTY.md).
|
||||
|
||||
@@ -89,4 +89,5 @@ adapters and developer frames, not copies of it.
|
||||
World of Warcraft is a trademark of Blizzard Entertainment, Inc. Our own code is licensed under
|
||||
[MIT](LICENSE-MIT) or [Apache 2.0](LICENSE-APACHE), at your option. The two vendored components
|
||||
under `third_party/` — the kira audio engine, and a Lua 5.1 patched to the 1.12 client's dialect —
|
||||
keep their own upstream licenses, alongside each.
|
||||
keep their own upstream licenses, alongside each. Code and techniques ported from other projects
|
||||
(WarcraftXL, by iThorgrim) are credited file by file in [`THIRD-PARTY.md`](THIRD-PARTY.md).
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# Third-party credits
|
||||
|
||||
Code and techniques this fork takes from other projects, with the files they landed in. Vendored
|
||||
components under `third_party/` carry their own licences beside them and are listed in `README.md`.
|
||||
|
||||
## WarcraftXL
|
||||
|
||||
- **Project: [WarcraftXL](https://github.com/WarcraftXL)** — client extensions for the **3.3.5a**
|
||||
(build 12340) client, written in C++ with D3D9 / HLSL.
|
||||
- **Author: iThorgrim.**
|
||||
|
||||
WarcraftXL's code is reused here on the condition that the author and the original project are
|
||||
named. This file, and the header line in each file below, is that attribution; keep both wherever
|
||||
the code is copied or shared.
|
||||
|
||||
**Rule for contributors.** A file that ports code or a technique from WarcraftXL carries this line
|
||||
in its header:
|
||||
|
||||
```
|
||||
Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim — module <module>, <source files>.
|
||||
```
|
||||
|
||||
and gets a row in the table below. Blocks inside a file that port a specific routine also say so
|
||||
where they stand. Do not remove either.
|
||||
|
||||
| Benilla file | WarcraftXL module | Source files | What was taken |
|
||||
|---|---|---|---|
|
||||
| `crates/benilla-assets/src/shaders/enhanced_water.wgsl` (DEPTH LOOK block) | `wxl-experimental-water` | `shaders/Surface.ps.hlsl`, `render/Refraction.cpp` | Per-channel Beer-Lambert extinction over the view path through the water column, the body as a lerp from scattered colour to what is behind by the transmittance, normal-bent scene-copy refraction scaled by the water depth (ported) |
|
||||
| `crates/benilla-assets/src/shaders/enhanced_water.wgsl` (caustics) | `wxl-experimental-water` | `shaders/Surface.ps.hlsl`, `render/Noise.cpp` | Two caustic layers at incommensurate scales and rates, multiplied (ported; our layers are built from animated cell edges, not value noise) |
|
||||
| `crates/benilla-assets/src/shaders/enhanced_water.wgsl` (HIGH reflections) | `wxl-experimental-water` | `shaders/Surface.ps.hlsl` | Screen-space reflection of the scene copy along an almost-planar normal, masked by the screen edge and by rays turning back toward the eye (principle; ours is a bisected march against the scene depth, not a single probe) |
|
||||
| `crates/benilla-assets/src/shaders/enhanced_water.wgsl` (beach surf, `on_bed`) | `wxl-experimental-water` | `sea/Shore.hpp`, `shaders/Shore.hlsli` | Shore surf limited by the terrain column, so objects standing in the water never foam (principle) |
|
||||
| `crates/benilla-world/src/water_fx/bob.rs` | `wxl-experimental-water` | `world/Ride.cpp` | Visual-only wave riding for swimmers; the authoritative position never moves (principle, implemented independently) |
|
||||
|
||||
Planned (not yet in the tree): Gerstner trains, breaker index and crest-fold foam from
|
||||
`sea/Spectrum.*`, `sea/Shore.hpp`, `shaders/Wave.hlsli`; grass wind from `wxl-experimental-wind`
|
||||
(`field/Wind.*`, `grass/GrassWind.*`); colour grading from `wxl-retail-grading`
|
||||
(`Grading.*`, `shaders/Grading.ps.hlsl`); cloud sheets from `wxl-retail-clouds` (`Clouds.*`).
|
||||
The lane that ports one adds its row here.
|
||||
@@ -12,7 +12,8 @@ player picks it, and every part of it can be switched off.
|
||||
## Credits
|
||||
|
||||
- **Original project: [WarcraftXL](https://github.com/WarcraftXL)** — the `wxl-experimental-water`
|
||||
module for the 1.12 client.
|
||||
module, a client extension for the 3.3.5a (build 12340) client (C++ / D3D9 / HLSL), used here as
|
||||
reference code and ported to WGSL/Rust for the 1.12 renderer.
|
||||
- **Author: iThorgrim.**
|
||||
|
||||
The WarcraftXL water module is the design reference for this one, and its author has given
|
||||
@@ -21,8 +22,11 @@ named. This section is that attribution; it must travel with the module (this fi
|
||||
`enhanced_water.wgsl` header) wherever the module is copied or shared.
|
||||
|
||||
Rule for contributors: a file that ports code or a technique from WarcraftXL says so in its header
|
||||
(`Portions derived from WarcraftXL wxl-experimental-water by iThorgrim, used with permission`) and
|
||||
the technique is listed in the table below. Do not remove either.
|
||||
(`Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim — module <module>, <source
|
||||
files>.`; blocks inside a file keep their `Portions derived from WarcraftXL ...` line), the
|
||||
technique is listed in the table below, and the file is listed in
|
||||
[`THIRD-PARTY.md`](THIRD-PARTY.md), the one table of every WarcraftXL-derived file across the
|
||||
fork. Do not remove any of them.
|
||||
|
||||
| Technique | Status here | From WarcraftXL |
|
||||
|---|---|---|
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
// author iThorgrim. Its author permits reuse of that code in this module provided the author and
|
||||
// the original project are named; this notice is that attribution and must stay with the module.
|
||||
// A block that ports WarcraftXL code says so where it stands and is listed in WATER.md.
|
||||
// Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim — module wxl-experimental-water, shaders/Surface.ps.hlsl, render/Refraction.cpp, render/Noise.cpp, sea/Shore.hpp.
|
||||
// MONKEY (p0 credits): every WarcraftXL-derived file is listed in THIRD-PARTY.md (benilla root).
|
||||
//
|
||||
// This file is the whole module on the shader side. `liquid.wgsl` (upstream's liquid renderer)
|
||||
// carries three hooks only: the import, `water_swell` in its vertex stage, and a branch at the top
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
//! MONKEY (swim waves) — **bodies ride the swell**: the visual-only vertical bob (and the small
|
||||
//! lean into the wave slope) every swimming or floating unit takes on Enhanced water.
|
||||
//!
|
||||
//! Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim — module wxl-experimental-water, world/Ride.cpp.
|
||||
//! (The principle — the authoritative position never moves — implemented independently; listed in
|
||||
//! `THIRD-PARTY.md`.)
|
||||
//!
|
||||
//! The defect this closes is a mismatch, not a missing effect. Enhanced water heaves the ocean
|
||||
//! MESH in the vertex stage ([`crate::liquid::waves`] mirrors the exact band), while every body in
|
||||
//! it is placed at the height the CPU queries — the flat MCLQ heightfield, which knows nothing
|
||||
|
||||
Reference in New Issue
Block a user