From 3d27bccdea3d96cefd4a81b96a8b0076556f72e0 Mon Sep 17 00:00:00 2001
From: "2817212736@qq.com" <2817212736@qq.com>
Date: Fri, 13 Jun 2025 10:24:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9D=90=E8=B4=A8=E5=8F=82?=
=?UTF-8?q?=E6=95=B0=E8=B0=83=E8=8A=82=E6=BB=91=E5=9D=97=E5=9C=A8=E6=89=8B?=
=?UTF-8?q?=E5=8A=A8=E7=BC=96=E8=BE=91=E6=97=B6=E7=9A=84=E5=80=BC=E9=99=90?=
=?UTF-8?q?=E5=88=B6=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/components/MaterialAdjuster.vue | 57 ++++++++++++++++++++++-------
2 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/package.json b/package.json
index f6aaab6..68e0bce 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "material-editor",
"private": true,
- "version": "1.0.24",
+ "version": "1.0.25",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/src/components/MaterialAdjuster.vue b/src/components/MaterialAdjuster.vue
index 66c5eea..17b667c 100644
--- a/src/components/MaterialAdjuster.vue
+++ b/src/components/MaterialAdjuster.vue
@@ -40,30 +40,26 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -122,6 +118,7 @@ import { IsNullOrWhitespace } from "../helpers/helper.string";
import { FromDeflateBase64, ToDeflatedBase64 } from "../helpers/helper.material";
import { storeToRefs } from "pinia";
import { DownloadFile } from "../helpers/helper.web";
+import MathHelper from "../helpers/MathHelper";
export interface MaterialRequest {
/** 材质名 */
@@ -158,6 +155,39 @@ const textureAdjustment = ref({
moveX: 0,
moveY: 0
});
+
+const metallic = computed({
+ get: () => Material.value.matalness,
+ set: (val) => {
+ Material.value.matalness = MathHelper.clamp(val, 0, 1);
+ UpdateMaterial();
+ }
+});
+
+const roughness = computed({
+ get: () => Material.value.roughness,
+ set: (val) => {
+ Material.value.roughness = MathHelper.clamp(val, 0, 1);
+ UpdateMaterial();
+ }
+});
+
+const normalScale = computed({
+ get: () => Material.value.bumpScale,
+ set: (val) => {
+ Material.value.bumpScale = MathHelper.clamp(val, 0, 1);
+ UpdateMaterial();
+ }
+});
+
+const emissiveIntensity = computed({
+ get: () => Material.value.specular,
+ set: (val) => {
+ Material.value.specular = MathHelper.clamp(val, 0, 1);
+ UpdateMaterial();
+ }
+});
+
const uploading = ref(false);
// const model = reactive({
// metallic: Material.value.matalness,
@@ -292,8 +322,7 @@ function ClampNumericValue(e: InputEvent) {
if (isNaN(min) || isNaN(max)) return;
- if (elm.valueAsNumber < min) elm.valueAsNumber = min;
- if (elm.valueAsNumber > max) elm.valueAsNumber = max;
+ elm.valueAsNumber = MathHelper.clamp(elm.valueAsNumber, min, max);
}
defineExpose({