@liveroom-tech/react-immersive 1.3.2 → 1.3.3

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/dist/index.d.mts CHANGED
@@ -275,6 +275,7 @@ type ScenePostProcessingConfig = {
275
275
  rampEnd: [number, number];
276
276
  startColor: string;
277
277
  endColor: string;
278
+ opacity?: number;
278
279
  rampBias: number;
279
280
  rampGain: number;
280
281
  rampMask: boolean;
package/dist/index.d.ts CHANGED
@@ -275,6 +275,7 @@ type ScenePostProcessingConfig = {
275
275
  rampEnd: [number, number];
276
276
  startColor: string;
277
277
  endColor: string;
278
+ opacity?: number;
278
279
  rampBias: number;
279
280
  rampGain: number;
280
281
  rampMask: boolean;
package/dist/index.js CHANGED
@@ -637,6 +637,7 @@ var DEFAULT_SCENE_POST_PROCESSING_CONFIG = {
637
637
  rampEnd: [1, 1],
638
638
  startColor: "#000000",
639
639
  endColor: "#ffffff",
640
+ opacity: 0.5,
640
641
  rampBias: 0.5,
641
642
  rampGain: 0.5,
642
643
  rampMask: false,
@@ -1474,7 +1475,10 @@ function PostProcessingEffects({
1474
1475
  }
1475
1476
  ),
1476
1477
  pp.pixelation.enabled === true && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_postprocessing5.Pixelation, { granularity: pp.pixelation.granularity }),
1477
- pp.ramp.enabled === true && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1478
+ pp.ramp.enabled === true && // Ramp's non-mask shader emits an opaque full-screen gradient.
1479
+ // Blend it with the scene by default instead of replacing the
1480
+ // model completely; mask mode already performs its own mix.
1481
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1478
1482
  import_postprocessing5.Ramp,
1479
1483
  {
1480
1484
  rampType: rampTypeFromName(pp.ramp.rampType),
@@ -1482,6 +1486,7 @@ function PostProcessingEffects({
1482
1486
  rampEnd: pp.ramp.rampEnd,
1483
1487
  startColor: rampStartColor,
1484
1488
  endColor: rampEndColor,
1489
+ opacity: pp.ramp.rampMask ? 1 : pp.ramp.opacity ?? 0.5,
1485
1490
  rampBias: pp.ramp.rampBias,
1486
1491
  rampGain: pp.ramp.rampGain,
1487
1492
  rampMask: pp.ramp.rampMask,
@@ -10315,7 +10320,7 @@ function RampSection({
10315
10320
  PPSection,
10316
10321
  {
10317
10322
  title: "Ramp",
10318
- tooltip: "Maps shading through a custom color ramp or gradient.",
10323
+ tooltip: "Adds a screen-space color gradient, or masks effects earlier in the stack.",
10319
10324
  open: open.ramp,
10320
10325
  onToggle: () => toggle("ramp"),
10321
10326
  disabled: !ramp.enabled,
@@ -10375,6 +10380,17 @@ function RampSection({
10375
10380
  onChange: (v) => set("ramp", { ...ramp, endColor: v })
10376
10381
  }
10377
10382
  ),
10383
+ !ramp.rampMask && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
10384
+ SliderRow,
10385
+ {
10386
+ label: "Gradient Opacity",
10387
+ value: ramp.opacity ?? 0.5,
10388
+ min: 0,
10389
+ max: 1,
10390
+ step: 0.01,
10391
+ onChange: (v) => set("ramp", { ...ramp, opacity: v })
10392
+ }
10393
+ ),
10378
10394
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
10379
10395
  SliderRow,
10380
10396
  {
@@ -10400,7 +10416,7 @@ function RampSection({
10400
10416
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
10401
10417
  ToggleRow,
10402
10418
  {
10403
- label: "Mask",
10419
+ label: "Mask Earlier Effects",
10404
10420
  checked: ramp.rampMask,
10405
10421
  onChange: (v) => set("ramp", { ...ramp, rampMask: v })
10406
10422
  }
package/dist/index.mjs CHANGED
@@ -600,6 +600,7 @@ var DEFAULT_SCENE_POST_PROCESSING_CONFIG = {
600
600
  rampEnd: [1, 1],
601
601
  startColor: "#000000",
602
602
  endColor: "#ffffff",
603
+ opacity: 0.5,
603
604
  rampBias: 0.5,
604
605
  rampGain: 0.5,
605
606
  rampMask: false,
@@ -1467,7 +1468,10 @@ function PostProcessingEffects({
1467
1468
  }
1468
1469
  ),
1469
1470
  pp.pixelation.enabled === true && /* @__PURE__ */ jsx4(Pixelation, { granularity: pp.pixelation.granularity }),
1470
- pp.ramp.enabled === true && /* @__PURE__ */ jsx4(
1471
+ pp.ramp.enabled === true && // Ramp's non-mask shader emits an opaque full-screen gradient.
1472
+ // Blend it with the scene by default instead of replacing the
1473
+ // model completely; mask mode already performs its own mix.
1474
+ /* @__PURE__ */ jsx4(
1471
1475
  Ramp,
1472
1476
  {
1473
1477
  rampType: rampTypeFromName(pp.ramp.rampType),
@@ -1475,6 +1479,7 @@ function PostProcessingEffects({
1475
1479
  rampEnd: pp.ramp.rampEnd,
1476
1480
  startColor: rampStartColor,
1477
1481
  endColor: rampEndColor,
1482
+ opacity: pp.ramp.rampMask ? 1 : pp.ramp.opacity ?? 0.5,
1478
1483
  rampBias: pp.ramp.rampBias,
1479
1484
  rampGain: pp.ramp.rampGain,
1480
1485
  rampMask: pp.ramp.rampMask,
@@ -10386,7 +10391,7 @@ function RampSection({
10386
10391
  PPSection,
10387
10392
  {
10388
10393
  title: "Ramp",
10389
- tooltip: "Maps shading through a custom color ramp or gradient.",
10394
+ tooltip: "Adds a screen-space color gradient, or masks effects earlier in the stack.",
10390
10395
  open: open.ramp,
10391
10396
  onToggle: () => toggle("ramp"),
10392
10397
  disabled: !ramp.enabled,
@@ -10446,6 +10451,17 @@ function RampSection({
10446
10451
  onChange: (v) => set("ramp", { ...ramp, endColor: v })
10447
10452
  }
10448
10453
  ),
10454
+ !ramp.rampMask && /* @__PURE__ */ jsx25(
10455
+ SliderRow,
10456
+ {
10457
+ label: "Gradient Opacity",
10458
+ value: ramp.opacity ?? 0.5,
10459
+ min: 0,
10460
+ max: 1,
10461
+ step: 0.01,
10462
+ onChange: (v) => set("ramp", { ...ramp, opacity: v })
10463
+ }
10464
+ ),
10449
10465
  /* @__PURE__ */ jsx25(
10450
10466
  SliderRow,
10451
10467
  {
@@ -10471,7 +10487,7 @@ function RampSection({
10471
10487
  /* @__PURE__ */ jsx25(
10472
10488
  ToggleRow,
10473
10489
  {
10474
- label: "Mask",
10490
+ label: "Mask Earlier Effects",
10475
10491
  checked: ramp.rampMask,
10476
10492
  onChange: (v) => set("ramp", { ...ramp, rampMask: v })
10477
10493
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liveroom-tech/react-immersive",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",