Skip to content

Commit

Permalink
Version Packages (#333)
Browse files Browse the repository at this point in the history
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
github-actions[bot] and github-actions[bot] authored Oct 12, 2022
1 parent 2366a09 commit e4f1e3a
Show file tree
Hide file tree
Showing 14 changed files with 126 additions and 73 deletions.
47 changes: 0 additions & 47 deletions .changeset/mighty-lies-hear.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/red-months-attend.md

This file was deleted.

2 changes: 1 addition & 1 deletion apps/bucketeer-examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"randomish": "^0.1.4",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"render-composer": "workspace:^0.2.5",
"render-composer": "workspace:^0.2.6",
"three": "^0.145.0"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion apps/render-composer-examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"postprocessing": "^6.28.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"render-composer": "^0.2.5",
"render-composer": "^0.2.6",
"shader-composer": "workspace:^0.4.6",
"three": "^0.145.0"
},
Expand Down
6 changes: 3 additions & 3 deletions apps/spacerage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-merge-refs": "^1.1.0",
"render-composer": "^0.2.5",
"render-composer": "^0.2.6",
"shader-composer": "workspace:^0.4.6",
"shader-composer-r3f": "^0.4.5",
"shader-composer-toybox": "^0.1.3",
Expand All @@ -56,8 +56,8 @@
"troika-three-text": "^0.46.4",
"tunnel-rat": "^0.1.0",
"ui-composer": "workspace:^0.0.1",
"vfx-composer": "^0.3.2",
"vfx-composer-r3f": "^0.3.0"
"vfx-composer": "^0.4.0",
"vfx-composer-r3f": "^0.4.0"
},
"devDependencies": {
"@types/react": "^18.0.21",
Expand Down
2 changes: 1 addition & 1 deletion apps/ui-composer-examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"@stitches/react": "^1.2.8",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"render-composer": "workspace:^0.2.5",
"render-composer": "workspace:^0.2.6",
"three": "^0.145.0",
"ui-composer": "workspace:^0.0.1"
},
Expand Down
4 changes: 2 additions & 2 deletions apps/vfx-composer-examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
"three": "^0.145.0",
"three-stdlib": "^2.17.2",
"timeline-composer": "^0.1.7",
"vfx-composer": "^0.3.2",
"vfx-composer-r3f": "^0.3.0",
"vfx-composer": "^0.4.0",
"vfx-composer-r3f": "^0.4.0",
"wouter": "^2.8.0-alpha.2"
},
"devDependencies": {
Expand Down
6 changes: 6 additions & 0 deletions packages/render-composer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# render-composer

## 0.2.6

### Patch Changes

- 1d74dfc: **New:** `<RC.RenderPass>` now offers three new props, `clearColor`, `clearDepth` and `clearStencil`, that allow the user to configure which information the built-in clear pass should actually clear when enabled.

## 0.2.5

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/render-composer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"url": "https://hmans.co"
},
"description": "Declarative graph-based render pipelines.",
"version": "0.2.5",
"version": "0.2.6",
"main": "dist/render-composer.cjs.js",
"module": "dist/render-composer.esm.js",
"files": [
Expand Down
52 changes: 52 additions & 0 deletions packages/vfx-composer-r3f/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,57 @@
# vfx-composer-r3f

## 0.4.0

### Minor Changes

- 1ae718d: **Major Breaking Change:** Everything around particles has received a significant refactor to reduce coupling between the different libraries and prepare for the addition of new particle and VFX types. There is only one user-facing change to the API resulting from this, but it is significant: **the way that per-particle attributes (including lifetimes!) are set has changed significantly.**

Instanced particles may make use of instanced attribute buffers. When assembling particle materials with Material Composer and Shader Composer, these can be wrapped using a `ParticleAttribute` unit. In the past, `InstancedParticles` would search the material's shader graph for these units and take care of the buffer writing automatically.

The new API makes the attribute writing more explicit, with the added benefit of decoupling `InstancedParticles` entirely from Material and Shader Composer.

When working with `ParticleAttribute`, you now need to call a `write` function and pass in a reference to the mesh that you are creating the particle in. In order to make this easier, particle setup callbacks now receive the active mesh as an additional `mesh` prop in its first argument that you can use.

#### Examples

Setting particle lifetimes within a particle setup callback:

```tsx
const lifetime = createParticleLifetime()

/* Before: */
lifetime.setLifetime(duration, offset)

/* Now: */
lifetime.write(mesh, duration, offset)
```

Writing a `ParticleAttribute` value:

```tsx
const speed = new ParticleAttribute(() => 0)
const velocity = new ParticleAttribute(() => new THREE.Vector3())
/* Before: */
speed.value = 5
velocity.value.set(x, y, z)
/* Now: */
speed.write(mesh, 5)
velocity.write(mesh, (v) => v.set(x, y, z))
```

The `write` method on `ParticleAttribute` accepts as its second argument either a value, or a function returning a value, and doesn't much care which one you use; the function form is mostly a convenience mechanism to help you save on the number of objects created every frame/emitted particle. The object passed into the function is the same one that is passed into the `ParticleAttribute`'s constructor; in the example above, we're instantiating the `velocity` attribute with a `new THREE.Vector3()`; in the `write` invocation, that very `Vector3` instance is passed into the function for you to mutate. This is significantly cheaper than creating a new `Vector3` instance for every emitted particle.

This new API is a little more verbose than the previous version, but it is also more explicit and less error-prone, and decouples the particles engine entirely from Material and Shader Composer, allowing for more flexibility in the future, such as writing to multiple meshes at once, or using non-Shader Composer mechanisms to write into the buffers.

If you have feedback on this new API, please [let me know](https://github.com/hmans/composer-suite/discussions).

### Patch Changes

- Updated dependencies [1ae718d]
- vfx-composer@0.4.0

## 0.3.0

### Minor Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/vfx-composer-r3f/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"url": "https://hendrik.mans.de"
},
"description": "React-Three-Fiber bindings for VFX Composer.",
"version": "0.3.0",
"version": "0.4.0",
"main": "dist/vfx-composer-r3f.cjs.js",
"module": "dist/vfx-composer-r3f.esm.js",
"files": [
Expand Down Expand Up @@ -40,7 +40,7 @@
"miniplex": "1.0.0",
"shader-composer": "^0.4.5",
"shader-composer-r3f": "^0.4.5",
"vfx-composer": "^0.3.0"
"vfx-composer": "^0.4.0"
},
"peerDependencies": {
"@react-three/fiber": ">=8.0.27",
Expand Down
47 changes: 47 additions & 0 deletions packages/vfx-composer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,52 @@
# vfx-composer

## 0.4.0

### Minor Changes

- 1ae718d: **Major Breaking Change:** Everything around particles has received a significant refactor to reduce coupling between the different libraries and prepare for the addition of new particle and VFX types. There is only one user-facing change to the API resulting from this, but it is significant: **the way that per-particle attributes (including lifetimes!) are set has changed significantly.**

Instanced particles may make use of instanced attribute buffers. When assembling particle materials with Material Composer and Shader Composer, these can be wrapped using a `ParticleAttribute` unit. In the past, `InstancedParticles` would search the material's shader graph for these units and take care of the buffer writing automatically.

The new API makes the attribute writing more explicit, with the added benefit of decoupling `InstancedParticles` entirely from Material and Shader Composer.

When working with `ParticleAttribute`, you now need to call a `write` function and pass in a reference to the mesh that you are creating the particle in. In order to make this easier, particle setup callbacks now receive the active mesh as an additional `mesh` prop in its first argument that you can use.

#### Examples

Setting particle lifetimes within a particle setup callback:

```tsx
const lifetime = createParticleLifetime()

/* Before: */
lifetime.setLifetime(duration, offset)

/* Now: */
lifetime.write(mesh, duration, offset)
```

Writing a `ParticleAttribute` value:

```tsx
const speed = new ParticleAttribute(() => 0)
const velocity = new ParticleAttribute(() => new THREE.Vector3())
/* Before: */
speed.value = 5
velocity.value.set(x, y, z)
/* Now: */
speed.write(mesh, 5)
velocity.write(mesh, (v) => v.set(x, y, z))
```

The `write` method on `ParticleAttribute` accepts as its second argument either a value, or a function returning a value, and doesn't much care which one you use; the function form is mostly a convenience mechanism to help you save on the number of objects created every frame/emitted particle. The object passed into the function is the same one that is passed into the `ParticleAttribute`'s constructor; in the example above, we're instantiating the `velocity` attribute with a `new THREE.Vector3()`; in the `write` invocation, that very `Vector3` instance is passed into the function for you to mutate. This is significantly cheaper than creating a new `Vector3` instance for every emitted particle.

This new API is a little more verbose than the previous version, but it is also more explicit and less error-prone, and decouples the particles engine entirely from Material and Shader Composer, allowing for more flexibility in the future, such as writing to multiple meshes at once, or using non-Shader Composer mechanisms to write into the buffers.

If you have feedback on this new API, please [let me know](https://github.com/hmans/composer-suite/discussions).

## 0.3.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/vfx-composer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"url": "https://hendrik.mans.de"
},
"description": "Composable, GPU-driven Visual Effects for Three.js and React-Three-Fiber.",
"version": "0.3.2",
"version": "0.4.0",
"main": "dist/vfx-composer.cjs.js",
"module": "dist/vfx-composer.esm.js",
"files": [
Expand Down
18 changes: 9 additions & 9 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit e4f1e3a

Please sign in to comment.