1.基本数据结构
{
[key]: {
type: String, // 类型
value: Any, // 当前的值
defaultValue: Any, // 默认值
label: String, // 展示在界面上的参数名称
options: Object, // 其他属性
}
}
2. 具体参数调整器的options说明
2.1 数字输入类
{
type: 'adjustorNumber',
value: Number,
defaultValue: Number,
label: String,
options: {
precision: Number, // 小数点精度,表示保留几位小数
step: Number, // 点击梯度变化按钮时的增减梯度,是正数
hideStep: Boolean, // 是否隐藏梯度变化按钮,默认是false
min: Number, // 最小值
max: Number // 最大值
}
}
2.2 图形选择枚举对象类
这类参数是指用一张图片来示意此参数值达成的效果,然后用一个对象来作为这个参数的实际值。此类参数主要用在需要用图片才能表达参数值的效果的情况。例如,用来调整材质的参数,这时候就需要提供一张图片来表示当前参数值能达成的渲染效果。此类参数的数据结构如下:
{
type: 'imageEnumObject',
value: Number,
defaultValue: Number,
label: String,
options: {
images: [<url_to_images>, ...]
objects: [Any,...]
}
}
2.3 图片输入类
{
type: 'imageInput',
value: String, // 图片的 url
defaultValue: String, // 图片的 url
label: String,
options: {
width: Number,
height: Number,
aspect: Number, //optional
texture: {
wrapT: oneOf(['RepeatWrapping', 'MirroredRepeatWrapping', 'ClampToEdgeWrapping' ]), //default: 'ClampToEdgeWrapping',
wrapS: oneOf(['RepeatWrapping', 'MirroredRepeatWrapping', 'ClampToEdgeWrapping' ]), //default: 'ClampToEdgeWrapping'
}
}
}
图片输入类参数options中的aspect如果存在的,则表示输入的图片需要先进行一步变形。这里的aspect值是指uv值应用到3维对象上后,3维空间上u的长度比上v的长度的比值。例如,下面杯子所示:
如果杯子外壁上的uv展开值是铺满的,那么这里的aspect就应该满足如下的情况:
aspect = 外壁的周长 / 外壁的高度
2.4 一般选择类
{
type: 'enum',
value: ,
defaultValue: ,
label: String,
options: {
mutiple: Boolean, // 是否多选
options: ArrayOf(String) | ArrayOf({lable: String, value: String}), // 若是String数组,则每个元素都必须唯一;若是Object数组则每个元素的value必须唯一
}
}
2.5 人像选择类
{
type: 'faceEnum',
value: String || null, // face3d的id
defaultValue: null,
label: String
}