@@ -1,6 +1,7 @@
< template >
< div vertical class = "material-adjuster" >
< div class = "adjust-section" >
<!-- 新增模式下 , 隐藏材质名输入框 -- >
< div v-if = "ignoreTexture" class="adjust-section" >
< h3 > 操作 < / h3 >
< fieldset v-if = "debugMode" style="margin: 1em 0;" >
< legend > DEBUG < / legend >
@@ -59,7 +60,8 @@
< label > 高光 < / label >
< CfFlex gap = "1em" class = "input-range" >
< input v-model = "emissiveIntensity" type="range" min="0" max="1" step="0.01" / >
< input v-model = "emissiveIntensity" type="number" @change="ClampNumericValue" min="0" max="1" step="0.01" / >
< input v-model = "emissiveIntensity" type="number" @change="ClampNumericValue" min="0" max="1"
step = "0.01" / >
< / CfFlex >
< / div >
@@ -135,7 +137,7 @@ const { Material, CurrGeometry, Geometries } = storeToRefs(scene);
const props = defineProps < {
name ? : string ;
textures ? : { name : string , src : string } [ ] ;
textures ? : { name : string , src : string } [ ] ;
/** 忽略纹理参数,提交时直接输出场景内的材质,用于某些在组件外对场景进行编辑的特殊情况(例如材质编辑模式) */
ignoreTexture ? : boolean ;
} > ( ) ;
@@ -144,7 +146,7 @@ const emits = defineEmits<{
( e : 'submit' , data : MaterialRequest [ ] ) : void ;
} > ( ) ;
const debugMode = ref ( tru e) ;
const debugMode = ref ( fals e) ;
const Textures = computed ( ( ) => props . textures || [ ] ) ;
const debugTextureSrc = ref ( "" ) ;
const textureAdjustment = ref < TextureAdjustment > ( {
@@ -198,17 +200,17 @@ const uploading = ref(false);
// });
const materialInfo = reactive ( {
dirId : DirectoryId . MaterialDir , // 正常来说是2
materialName : props . name || '材质' ,
materialName : props . name || Textures . value [ 0 ] ? . name || '材质' ,
inputText : '' ,
} ) ;
watch ( Textures , async ( val ) => {
if ( val . length == 0 ) return ;
if ( val . length == 0 || props . ignoreTexture ) return ;
await scene . ChangeTextureFromUrlAsync ( val [ 0 ] . src ) ;
} ) ;
watch ( ( ) => props . name , ( ) => {
materialInfo . materialName = props . name || '材质' ;
materialInfo . materialName = props . name || Textures . value [ 0 ] ? . name || '材质' ;
} ) ;
watch ( textureAdjustment , async ( val ) => {
@@ -287,10 +289,10 @@ async function HandleUpload() {
} ;
result . push ( mat ) ;
}
// 还原场景纹理
await scene . ChangeTextureFromUrlAsync ( Textures . value [ 0 ] . src ) ;
}
// 还原场景纹理
await scene . ChangeTextureFromUrlAsync ( Textures . value [ 0 ] . src ) ;
emits ( 'submit' , result ) ;
return result ;
} finally {