genshin-engine 4.3.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,10 +9,12 @@ An anime-style open-world engine for the browser on three.js's WebGPU renderer:
9
9
 
10
10
  It is an unofficial, non-commercial fan engine, not affiliated with HoYoverse. It ships no asset from any game: every mesh, texture, shader and sound is generated by its own code.
11
11
 
12
+ Design notes live in [the specs](https://github.com/Esposter/Esposter/tree/main/openspec/specs/genshin).
13
+
12
14
  ## Table of Contents
13
15
 
14
16
  - 🚀 [Getting Started](#getting-started)
15
- - 📖 [Documentation](#documentation)
17
+ - 🧩 [Key Exports](#key-exports)
16
18
  - ⚖️ [License](#license)
17
19
 
18
20
  ---
@@ -69,9 +71,22 @@ renderer.setAnimationLoop(() => renderPipeline.render());
69
71
 
70
72
  A web worker generating the ground imports its generators from the `genshin-engine/terrainWorker` subpath instead, `computeTerrainTile` and the height, paint and scatter functions it runs over, which reach three's math and none of the renderer, so the worker starts without loading it.
71
73
 
72
- ## <a name="documentation">📖 Documentation</a>
73
-
74
- We highly recommend you take a look at the [documentation](https://github.com/Esposter/Esposter/tree/main/openspec/specs/genshin) to level up. The engine's design, from the order a frame runs in to each module's job, is its [architecture page](https://github.com/Esposter/Esposter/blob/main/openspec/specs/genshin/engine-architecture/design.md), and the look it draws is its [rendering style](https://github.com/Esposter/Esposter/blob/main/openspec/specs/genshin/rendering-style/design.md).
74
+ ## <a name="key-exports">🧩 Key Exports</a>
75
+
76
+ | Export | Kind | Purpose |
77
+ | ------------------------ | -------- | --------------------------------------------------------------------------------------------------- |
78
+ | `computeTerrainTile` | function | Samples one terrain tile's grid, normals and colours from the region's heights |
79
+ | `createFogUniforms` | function | One set of fog uniforms per world, read by the fog pass |
80
+ | `createGenshinRenderer` | function | A three.js WebGPU renderer, falling back to WebGL 2 where WebGPU is missing |
81
+ | `createGodraysLight` | function | A second, unlit sun whose one shadow map covers the view for the god rays to march through |
82
+ | `createGradeLutTexture` | function | The colour grade's cube as a 3D texture the LUT pass samples |
83
+ | `createLightUniforms` | function | One set of light uniforms per world, shared by every material |
84
+ | `createPostPipeline` | function | Builds the frame's post chain over a scene, from outlines to grade and anti-aliasing |
85
+ | `createPostUniforms` | function | The post chain's uniforms: outline colour and thickness, god-ray colour, grade and white balance |
86
+ | `createRampTexture` | function | A one-row texture of the irradiance the toon lighting steps between |
87
+ | `createToonMaterial` | function | The environment's toon material, stepping from shade to lit on the world's ramp, with the sky's rim |
88
+ | `QualityTier` | enum | The three quality tiers a renderer's cost is set by |
89
+ | `QualityTierSettingsMap` | const | What each quality tier spends: shadow maps, cascades, god-ray steps, bloom and anti-aliasing |
75
90
 
76
91
  ## <a name="license">⚖️ License</a>
77
92
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genshin-engine",
3
- "version": "4.3.1",
3
+ "version": "4.4.0",
4
4
  "description": "An anime-style open-world engine for the browser on three.js WebGPU — toon materials, outlines, post-processing, streamed terrain, parametric world kits and a Web Audio synthesizer, as plain TypeScript and TSL modules.",
5
5
  "keywords": [
6
6
  "anime",
@@ -48,21 +48,21 @@
48
48
  "lint": "eslint .",
49
49
  "lint:fix": "eslint --fix .",
50
50
  "test": "vitest",
51
- "typecheck": "tsc"
51
+ "typecheck": "tsrs --fast"
52
52
  },
53
53
  "dependencies": {
54
- "three-mesh-bvh": "^0.9.16"
54
+ "three-mesh-bvh": "^0.9.17"
55
55
  },
56
56
  "devDependencies": {
57
- "@esposter/configuration": "4.3.1",
58
- "@esposter/shared-node": "4.3.1",
59
- "@types/node": "^26.6.5",
57
+ "@esposter/configuration": "4.4.0",
58
+ "@esposter/shared-node": "4.4.0",
59
+ "@types/node": "^26.6.6",
60
60
  "@types/three": "^0.186.0",
61
- "tsdown": "^0.23.1",
62
- "vite": "^8.3.4"
61
+ "tsdown": "0.23.2",
62
+ "vite": "^8.3.5"
63
63
  },
64
64
  "peerDependencies": {
65
65
  "three": "^0.186.1"
66
66
  },
67
- "gitHead": "777a39636b789c13af33ed13370246ccf6dbaf31"
67
+ "gitHead": "e1a416c4b91da69cc2aa259b50a4d656f204d272"
68
68
  }