diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f57a2dd..967f4c58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ - Fix inconsistency between JIT and VM evaluator when performing interval evaluation of `not([NAN, NAN])`. - Propagate `NAN` values through `and` and `or` operations on intervals. +- Add a new `Image
` generic image type (wrapping a `Vec
`, `width`, and
+ `height`).
+ - Define `DepthImage`, `NormalImage`, and `ColorImage` specializations
+ - Use these types in 2D and 3D rendering
- Remove `Grad::to_rgb` in favor of handling it at the image level
# 0.3.4
diff --git a/demos/web-editor/crate/Cargo.lock b/demos/web-editor/crate/Cargo.lock
index 14a620cf..b85e0858 100644
--- a/demos/web-editor/crate/Cargo.lock
+++ b/demos/web-editor/crate/Cargo.lock
@@ -317,7 +317,6 @@ dependencies = [
"document-features",
"dynasmrt",
"getrandom",
- "ieee754",
"libc",
"nalgebra",
"num-traits",
@@ -369,12 +368,6 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-[[package]]
-name = "ieee754"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c"
-
[[package]]
name = "instant"
version = "0.1.12"
diff --git a/demos/web-editor/crate/src/lib.rs b/demos/web-editor/crate/src/lib.rs
index e2c70d0c..85c994e0 100644
--- a/demos/web-editor/crate/src/lib.rs
+++ b/demos/web-editor/crate/src/lib.rs
@@ -1,9 +1,9 @@
use fidget::{
context::{Context, Tree},
render::{
- BitRenderMode, CancelToken, ImageRenderConfig, ImageSize, RotateHandle,
- ThreadPool, TileSizes, TranslateHandle, View2, View3,
- VoxelRenderConfig, VoxelSize,
+ BitRenderMode, CancelToken, DepthImage, ImageRenderConfig, ImageSize,
+ NormalImage, RotateHandle, ThreadPool, TileSizes, TranslateHandle,
+ View2, View3, VoxelRenderConfig, VoxelSize,
},
var::Var,
vm::{VmData, VmShape},
@@ -120,6 +120,7 @@ pub fn render_normals(
// Convert into an image
Ok(norm
+ .to_color()
.into_iter()
.flat_map(|[r, g, b]| [r, g, b, 255])
.collect())
@@ -130,7 +131,7 @@ fn render_3d_inner(
image_size: usize,
view: View3,
cancel: CancelToken,
-) -> Option<(Vec {
data: Vec ,
width: usize, // XXX use ImageSize instead?
diff --git a/models/sponge.rhai b/models/sponge.rhai
index 3f071dd3..a5a44822 100644
--- a/models/sponge.rhai
+++ b/models/sponge.rhai
@@ -21,4 +21,4 @@ let rescale = manhattan / radius;
let blend = 1.0; // adjust the sphere-ness of the sponge
let r = (rescale * blend) + (1.0 - blend);
-draw(intersection(sponge, x + y + z - 2))
+draw(sponge.remap_xyz(x / r, y / r, z / r));