Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .changeset/clear-code-documentation.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/clearer-website-copy.md

This file was deleted.

16 changes: 0 additions & 16 deletions .changeset/core-custom-shaders-and-instancing.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/particles-packages.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/terrain-package.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/two-d-sprite-batch.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/vite-plugin-wgsl-validation.md

This file was deleted.

14 changes: 14 additions & 0 deletions packages/2d/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# @ignifx/2d

## 0.3.0

### Minor Changes

- 6e1eed7: - Add `app.twoD.createSpriteBatch({ atlas, capacity, sortingLayer, blend })` (beta): a fixed number of sprite slots on one sorting layer written directly with `write(index, x, y, width, height, frame, rotation, r, g, b, a)`, with no entity per sprite. Use it for bullets, debris and 2D particles.
- `count` hides the tail of the batch, `hide(index)` hides one slot, and `dispose()` returns the slots. Slots are centred on their position and a batch does not Y-sort against other sprites.
- New codes: `IGX-1114` bad capacity, `IGX-1115` index or count outside the slots, `IGX-1116` write after `dispose()`, `IGX-1117` atlas not loaded.

### Patch Changes

- Updated dependencies [be82465]
- Updated dependencies [6e1eed7]
- @ignifx/core@0.3.0

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/2d/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/2d",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx 2D toolkit: Camera2D, sprites, sprite animation, atlases, tilemaps, sorting layers, pixel-perfect, parallax.",
"keywords": [
"ignifx",
Expand Down
4 changes: 2 additions & 2 deletions packages/2d/skills/2d/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: 2d
description: Builds 2D games in ignifx with @ignifx/2d: Camera2D, SpriteRenderer, SpriteAnimator, texture atlases, Tilemap rendering and import, sorting layers and Y-sort, pixel-perfect cameras, parallax layers, sprite batches, and 2D picking. Use when adding or editing sprites, sprite animation, tilemaps, atlases, sorting layers, sprite batches, or a 2D camera in an ignifx project, or when the user mentions @ignifx/2d, Camera2D, SpriteRenderer, SpriteBatch, or Tilemap.
license: Apache-2.0
metadata:
ignifx-version: "0.2.1"
ignifx-version: "0.3.0"
---

# @ignifx/2d
Expand All @@ -21,7 +21,7 @@ parse, `SpriteAnimator` advances on the stepped clock. Only the pixels need a GP

## Environment

- Engine: ignifx `0.2.1`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Engine: ignifx `0.3.0`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- WebGPU only, browser and Electron. Babylon Lite `1.27.0` is a peer dependency.
- Register it like any extension; nothing happens at import time.

Expand Down
11 changes: 11 additions & 0 deletions packages/3d/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# @ignifx/3d

## 0.3.0

### Patch Changes

- be82465: Clarify API documentation and starter-template comments, and update the README's setup instructions.
- Updated dependencies [be82465]
- Updated dependencies [6e1eed7]
- @ignifx/core@0.3.0
- @ignifx/input@0.3.0
- @ignifx/physics@0.3.0

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/3d/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/3d",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx 3D toolkit: character and camera rigs, Animator state machine, navigation.",
"keywords": [
"ignifx",
Expand Down
4 changes: 2 additions & 2 deletions packages/3d/skills/3d/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: 3d
description: Builds 3D games in ignifx with @ignifx/3d: third-person and first-person character controllers and camera rigs, the Animator state machine with blend trees and animation events, navigation meshes and agents, LOD groups, and billboards. Use when adding or editing 3D character movement, camera rigs, animation state machines, or navigation in an ignifx project, or when the user mentions @ignifx/3d, Animator, ThirdPersonController, or NavMeshAgent.
license: Apache-2.0
metadata:
ignifx-version: "0.2.1"
ignifx-version: "0.3.0"
---

# @ignifx/3d
Expand All @@ -25,7 +25,7 @@ walk. Only the _pose_ needs a GPU.

## Environment

- Engine: ignifx `0.2.1`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Engine: ignifx `0.3.0`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Requires `@ignifx/physics` and `@ignifx/input`; register both **before** `threeD()`.
- WebGPU only, browser and Electron. Babylon Lite `1.27.0` is a peer dependency.
- Nothing happens at import time.
Expand Down
9 changes: 9 additions & 0 deletions packages/audio/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @ignifx/audio

## 0.3.0

### Patch Changes

- be82465: Clarify API documentation and starter-template comments, and update the README's setup instructions.
- Updated dependencies [be82465]
- Updated dependencies [6e1eed7]
- @ignifx/core@0.3.0

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/audio/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/audio",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx audio: bus tree, AudioSource, AudioListener, AudioClip assets, unlock handling.",
"keywords": [
"ignifx",
Expand Down
4 changes: 2 additions & 2 deletions packages/audio/skills/audio/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: audio
description: Adds sound and music to an ignifx game with @ignifx/audio: the bus tree, AudioSource and AudioListener components, static and streaming AudioClip assets, spatial audio, a music player, and the browser unlock flow. Use when adding or editing sound effects, music, audio buses, mixing, or spatial audio in an ignifx project, or when the user mentions @ignifx/audio, AudioSource, AudioListener, or audio buses.
license: Apache-2.0
metadata:
ignifx-version: "0.2.1"
ignifx-version: "0.3.0"
---

# @ignifx/audio
Expand All @@ -23,7 +23,7 @@ Use it for sound effects, footsteps, UI clicks, positional audio, music with cro

## Environment

- Engine: ignifx `0.2.1`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Engine: ignifx `0.3.0`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Peer dependency: `@babylonjs/lite` `1.27.0`, reached only from `src/lite/**`.
- Browsers, Electron, and Node. Nothing happens at import time; registering the extension is the
whole installation.
Expand Down
15 changes: 15 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# @ignifx/cli

## 0.3.0

### Minor Changes

- 6e1eed7: - Add `@ignifx/terrain`: `Terrain` loads a `.terrain.json` with a 16-bit `.r16` heightmap, a PNG heightmap, or seeded noise, and draws it as chunked geomipmapped meshes with skirts, one level of detail per chunk, chosen and frustum-culled every frame.
- Blend up to eight texture layers with RGBA control maps or height and slope rules through one PBR material and a surface shader, so shadows, image-based lighting and fog stay intact. Per-layer roughness is not available.
- Query the terrain without physics: `heightAt`, `normalAt`, `raycast`, `bounds`, `worldToSample` and `sampleToWorld`. `colliderInit()` returns the init a `HeightfieldCollider` from `@ignifx/physics` accepts, and `setHeights` sculpts at runtime and raises `onHeightsChanged`.
- Add `TerrainScatter`, which places grass and trees on chosen layers, slopes and heights with a seed, and draws them through `InstancedMeshRenderer` with GPU culling, an LOD mesh and the `foliageMaterialDefinition` wind shader.
- An 8-bit heightmap loads with a terracing warning (`IGX-1603`). Convert 16-bit PNGs with the new `ignifx import heightmap in.png out.r16` command in `@ignifx/cli`.
- The `ignifx` umbrella re-exports the package.

### Patch Changes

- be82465: Clarify API documentation and starter-template comments, and update the README's setup instructions.

## 0.2.1

No changes in this release.
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/cli",
"version": "0.2.1",
"version": "0.3.0",
"description": "create-ignifx: scaffolds an ignifx project by copying a template directory.",
"keywords": [
"cli",
Expand Down
21 changes: 21 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# @ignifx/core

## 0.3.0

### Minor Changes

- 6e1eed7: - Add shader materials: a `.wgsl` file with `// @ignifx` pragma comments declares its uniforms, textures, storage buffers, defines and pipeline state, and loads as a `ShaderAsset`. A `.material.json` with `"type": "shader"` or `shaderMaterialDefinition({ shader, values, textures, defines })` applies values to it.
- Add `MaterialAsset.setUniform`, `getUniform`, `setTexture`, `setDefine` and `setStorageBuffer` to edit a live shader material. An unknown name throws `IGX-0712`, a wrong value shape `IGX-0713`, and a call on a PBR or Standard material `IGX-0718`.
- Upload `time`, `unscaledTime`, `deltaTime`, `mainLightDirection`, `mainLightColor` and `ambientColor` every frame to shaders that declare them. `time` freezes while the app is paused. A main-light uniform with no directional light logs `IGX-0714` once.
- Rebuild every material built from a `.wgsl` file in place when the file is replaced by hot reload. A compile failure keeps the last good material and reports `IGX-0715`.
- Add surface shaders: `.surface.wgsl` files with `displace`, `surface` and `composite` hooks attach to PBR materials through `surfaces`, keeping lights, shadows and image-based lighting. They require `rendering.features.materialPlugins` (`IGX-0716`).
- Add custom post effects: `.post.wgsl` files run in `PostProcessStack.custom`, ordered with the built-in effects.
- Add `InstancedMeshRenderer` for thin instances of one mesh with `setMatrices`, `setColors`, `setCount`, GPU culling and an LOD partner mesh. Changing `gpuCulling` or `lod` after the scene is registered throws `IGX-0717`; writing past `capacity` throws `IGX-0721`.
- Add `createStorageBufferAsset` and `StorageBufferAsset.update` (`IGX-0720` past the end), `TextureAsset.fromPixels` and `textureAsset.update` (`IGX-0722` on a size mismatch), and `MeshAsset.updatePositions`, `updateNormals`, `updateUvs` and `updateColors` for `fromData` meshes (`IGX-0725` when the range does not fit). `MeshAsset.fromData` accepts `uvs2`, `tangents` and `colors`.
- Shader materials cast PCF and CSM shadows. Babylon Lite 1.27.0 cannot render them into ESM shadow maps, so they are left out of ESM caster lists with one `IGX-0724` warning.
- Register the `IGX-16xx` (terrain) and `IGX-17xx` (particles) error ranges.
- Fix a black canvas after a material swap: two renderable rebuilds could overlap while Babylon Lite rebuilt its frame graph, leaving a render pass without a colour attachment. Rebuilds now run one at a time.
- Fix `Environment.fog`: the fog settings never reached the GPU, so fogged scenes rendered without fog. Fog now renders, with the colour decoded once, and `mode: "none"` turns it off on pipelines that were compiled with fog.

### Patch Changes

- be82465: Clarify API documentation and starter-template comments, and update the README's setup instructions.

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/core",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx core: app, world, entities, components, scripts, and the Babylon Lite adapter boundary.",
"homepage": "https://ignifx.com",
"license": "Apache-2.0",
Expand Down
13 changes: 13 additions & 0 deletions packages/devtools/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# @ignifx/devtools

## 0.3.0

### Patch Changes

- Updated dependencies [be82465]
- Updated dependencies [6e1eed7]
- @ignifx/core@0.3.0
- @ignifx/audio@0.3.0
- @ignifx/input@0.3.0
- @ignifx/physics@0.3.0
- @ignifx/physics-2d@0.3.0
- @ignifx/ui@0.3.0

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/devtools/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/devtools",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx devtools: stats overlay, scene tree and component inspector, physics debug view, script hot reload.",
"keywords": [
"ignifx",
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/skills/devtools/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: devtools
description: Inspects and debugs a running ignifx game with @ignifx/devtools: the stats and diagnostics overlay, the scene tree browser, the schema-driven component inspector, the physics debug view, the console, and the script hot-reload reports. Use when diagnosing frame time, entity counts, component values, asset refcounts, or physics behaviour in an ignifx project, or when the user mentions @ignifx/devtools, the stats overlay, the inspector, or app.devtools.
license: Apache-2.0
metadata:
ignifx-version: "0.2.1"
ignifx-version: "0.3.0"
---

# @ignifx/devtools
Expand All @@ -23,7 +23,7 @@ until `open()` is called.

## Environment

- Engine: ignifx `0.2.1`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- Engine: ignifx `0.3.0`; this package targets `@ignifx/core` `>=0.0.0 <1.0.0`.
- WebGPU only, browser and Electron. The overlay is plain DOM over the canvas.
- `@ignifx/ui`, `@ignifx/input`, `@ignifx/audio`, `@ignifx/physics` and `@ignifx/physics-2d` are all
**optional** peers. The package imports none of them; it reaches them structurally, so a game with
Expand Down
8 changes: 8 additions & 0 deletions packages/electron/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @ignifx/electron

## 0.3.0

### Patch Changes

- Updated dependencies [be82465]
- Updated dependencies [6e1eed7]
- @ignifx/core@0.3.0

## 0.2.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/electron/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ignifx/electron",
"version": "0.2.1",
"version": "0.3.0",
"description": "ignifx Electron support: main-process window factory with WebGPU flags, typed preload bridge, file-system storage.",
"keywords": [
"ignifx",
Expand Down
2 changes: 1 addition & 1 deletion packages/electron/skills/electron/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: electron
description: Ships an ignifx game as an Electron desktop app with @ignifx/electron: the main-process window factory that enables WebGPU, a typed and sandboxed preload bridge, the ignifx:// asset protocol, the file-system storage backend, and the renderer-side extension that exposes app.desktop. Use when packaging, configuring, or debugging an ignifx desktop build, or when the user mentions @ignifx/electron, createGameWindow, the preload bridge, or desktop templates.
license: Apache-2.0
metadata:
ignifx-version: "0.2.1"
ignifx-version: "0.3.0"
---

# @ignifx/electron
Expand Down
Loading
Loading