| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866 |
- /*
- * @Description:
- * @Version: 1.668
- * @Autor: 地虎降天龙
- * @Date: 2025-12-29 09:16:25
- * @LastEditors: 地虎降天龙
- * @LastEditTime: 2026-05-22 12:24:29
- */
- import {
- GNM_EXPRESSION_OPTIONS,
- GNM_HEAD_DEFAULTS,
- } from './components/gnmHeadComponent/defaults'
- const config = {
- name: 'baseSample',
- version: '2.2.2',
- description: `<div style="font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;">
- <style>
- .eco-title {
- font-size: 16px;
- margin-bottom: 12px;
- font-weight: 600;
- }
- .eco-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
- gap: 10px;
- }
- .eco-item {
- text-decoration: none;
- color: #222;
- padding: 6px 8px;
- border-radius: 8px;
- border: 1px solid #f0f0f0;
- background: #fafafa;
- transition: all 0.2s ease;
- display: block;
- }
- .eco-item:hover {
- transform: translateY(-2px);
- border-color: #d0d7ff;
- background: #f5f7ff;
- box-shadow: 0 6px 16px rgba(0,0,0,0.06);
- }
- .eco-name {
- font-size: 14px;
- font-weight: 600;
- margin-bottom: 4px;
- }
- .eco-link {
- font-size: 12px;
- color: #888;
- word-break: break-all;
- }
- </style>
- <div class="eco-wrap">
- <div class="eco-title">✨ 持续打通多个生态</div>
- <div class="eco-grid">
- <a class="eco-item" href="https://opensource.icegl.cn/#/plugins/loadDynamicComponent/readConfig" target="_blank">
- <div class="eco-name">🌈 tvt.js 开源基座</div>
- <div class="eco-link">opensource.icegl.cn</div>
- </a>
- <a class="eco-item" href="https://zone3deditor.icegl.cn/#/plugins/zone3Deditor/index" target="_blank">
- <div class="eco-name">🏞️ 区域三维场景编辑器</div>
- <div class="eco-link">zone3deditor.icegl.cn</div>
- </a>
- <a class="eco-item" href="https://gisplaneeditor.icegl.cn/#/plugins/gisPlaneEditor/index" target="_blank">
- <div class="eco-name">🗺️ GIS地理空间编辑器</div>
- <div class="eco-link">gisplaneeditor.icegl.cn</div>
- </a>
- </div>
- </div>
- </div>`,
- components: [
- {
- name: '测试组件',
- type: 'testBase',
- comFile: './src/components/testBase.vue',
- previewPath: './preview/testBase.png',
- default: {},
- defaultObject3D: {},
- config: {},
- },
- {
- name: '矩形跑光组件',
- type: 'rectangleShimmerComponent',
- comFile: './src/components/rectangleShimmerComponent.vue',
- previewPath: './preview/rectangleShimmerComponent.png',
- default: {
- gradientLength: 2.6,
- height: 1.4,
- length: 4,
- lineColor: '#ffd166',
- lineSpeed: 0.95,
- lineWidth: 0.035,
- segmentCount: 6,
- wallBottomColor: '#0d1f8f',
- wallBottomOpacity: 0.92,
- wallGradientProgress: 68,
- wallTopColor: '#57f3ff',
- wallTopOpacity: 0.18,
- width: 2.6,
- },
- defaultObject3D: {},
- config: {
- length: { name: '长度', com: 'Slider', min: 0.4, max: 10, step: 0.1 },
- width: { name: '宽度', com: 'Slider', min: 0.4, max: 10, step: 0.1 },
- height: { name: '高度', com: 'Slider', min: 0.2, max: 5, step: 0.05 },
- wallBottomColor: { name: '墙体底色', com: 'ColorPicker' },
- wallBottomOpacity: { name: '墙体底部透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- wallGradientProgress: { name: '渐变进程%', com: 'Slider', min: 0, max: 100, step: 1 },
- wallTopColor: { name: '墙体顶色', com: 'ColorPicker' },
- wallTopOpacity: { name: '墙体顶部透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- lineColor: { name: '跑线颜色', com: 'ColorPicker' },
- lineWidth: { name: '线宽', com: 'Slider', min: 0.01, max: 0.3, step: 0.005 },
- lineSpeed: { name: '跑线速度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- gradientLength: { name: '渐变长度', com: 'Slider', min: 0.1, max: 8, step: 0.05 },
- segmentCount: { name: '线段数量', com: 'Slider', min: 1, max: 8, step: 1 },
- },
- },
- {
- name: '梦幻流体面板',
- type: 'dreamyFluidPanelComponent',
- comFile: './src/components/dreamyFluidPanelComponent.vue',
- previewPath: './preview/dreamyFluidPanelComponent.png',
- default: {
- baseColor: '#10204f',
- highlightColor: '#ffe7ba',
- length: 4,
- opacity: 0.92,
- sequinSize: 0.38,
- sheenColor: '#6fd8ff',
- shimmerSpeed: 1.15,
- sparkleIntensity: 1.05,
- tileDensity: 28,
- waveIntensity: 0.92,
- waveSpeed: 0.86,
- width: 4,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.105, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- length: { name: '面板长度', com: 'Slider', min: 0.5, max: 20, step: 0.1 },
- width: { name: '面板宽度', com: 'Slider', min: 0.5, max: 20, step: 0.1 },
- tileDensity: { name: '亮片密度', com: 'Slider', min: 8, max: 72, step: 1 },
- sequinSize: { name: '亮片大小', com: 'Slider', min: 0.15, max: 0.48, step: 0.005 },
- waveSpeed: { name: '波动速度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- waveIntensity: { name: '波动强度', com: 'Slider', min: 0, max: 2.5, step: 0.05 },
- shimmerSpeed: { name: '细闪速度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- sparkleIntensity: { name: '高光强度', com: 'Slider', min: 0, max: 3, step: 0.05 },
- opacity: { name: '整体透明', com: 'Slider', min: 0.08, max: 1, step: 0.01 },
- baseColor: { name: '基础色', com: 'ColorPicker' },
- sheenColor: { name: '流光色', com: 'ColorPicker' },
- highlightColor: { name: '高光色', com: 'ColorPicker' },
- },
- },
- {
- name: '梦幻流体马赛克面板',
- type: 'giltMosaicGroundPanelComponent',
- comFile: './src/components/giltMosaicGroundPanelComponent.vue',
- previewPath: './preview/giltMosaicGroundPanelComponent.gif',
- default: {
- animationMode: 1,
- baseColor: '#5e411f',
- groutColor: '#110b06',
- groutWidth: 0.06,
- highlightColor: '#ffdba6',
- length: 4,
- lightSpeed: 0.4,
- opacity: 0.94,
- sheenColor: '#e5aa55',
- sparkleIntensity: 1,
- tileDensity: 18,
- waveDelay: 1.5,
- waveDirection: 0,
- waveSpeed: 4,
- width: 4,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.105, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- length: { name: '面板长度', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- width: { name: '面板宽度', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- tileDensity: { name: '砖片密度', com: 'Slider', min: 6, max: 64, step: 1 },
- lightSpeed: { name: '光动速度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- animationMode: { name: '翻折强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- waveSpeed: { name: '扫波时长', com: 'Slider', min: 0.3, max: 12, step: 0.05 },
- waveDelay: { name: '波间停顿', com: 'Slider', min: 0, max: 6, step: 0.05 },
- waveDirection: {
- name: '波方向',
- com: 'Select',
- options: [
- { label: '左到右', value: 0 },
- { label: '右到左', value: 1 },
- { label: '上到下', value: 2 },
- { label: '下到上', value: 3 },
- ],
- },
- sparkleIntensity: { name: '高光强度', com: 'Slider', min: 0, max: 3, step: 0.05 },
- groutWidth: { name: '砖缝宽度', com: 'Slider', min: 0.01, max: 0.18, step: 0.005 },
- opacity: { name: '整体透明', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- baseColor: { name: '基底色', com: 'ColorPicker' },
- groutColor: { name: '砖缝色', com: 'ColorPicker' },
- sheenColor: { name: '流光色', com: 'ColorPicker' },
- highlightColor: { name: '高光色', com: 'ColorPicker' },
- },
- },
- {
- name: '芯片地板',
- type: 'chipFloorGroundComponent',
- comFile: './src/components/chipFloorGroundComponent.vue',
- previewPath: './preview/chipFloorGroundComponent.png',
- default: {
- "baseColor": "#090909",
- "chipHeight": 0.034800000000000005,
- "dotDensity": 20,
- "dotOpacity": 0.07,
- "glowColor": "#31bcff",
- "glowIntensity": 1.1999999999999997,
- "iterations": 3,
- "particleColor": "#ff00d9",
- "particleDensity": 2.2999999999999994,
- "particleSize": 0.015,
- "particleSpeed": 0.09999999999999992,
- "patternScale": 0.5443000000000001,
- "size": 40,
- "traceColor": "#000000",
- "trailColor": "#e6ff00",
- "trailLength": 30,
- "trailSpeed": 0.35000000000000003
- },
- defaultObject3D: {
- position: { x: 0, y: 0.02, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- size: { name: '地板尺寸', com: 'Slider', min: 4, max: 40, step: 0.1 },
- iterations: { name: '细节层级', com: 'Slider', min: 2, max: 10, step: 1 },
- patternScale: { name: '网格缩放', com: 'Slider', min: 0.1, max: 3, step: 0.01 },
- chipHeight: { name: '芯片高度', com: 'Slider', min: 0, max: 0.8, step: 0.001 },
- glowIntensity: { name: '沟槽辉光', com: 'Slider', min: 0, max: 5, step: 0.01 },
- dotDensity: { name: '点阵密度', com: 'Slider', min: 20, max: 120, step: 1 },
- dotOpacity: { name: '点阵透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- trailSpeed: { name: '数据轨迹速度', com: 'Slider', min: 0, max: 10, step: 0.05 },
- trailLength: { name: '轨迹衰减', com: 'Slider', min: 2, max: 30, step: 0.1 },
- particleSpeed: { name: '粒子速度', com: 'Slider', min: 0, max: 5, step: 0.05 },
- particleDensity: { name: '粒子密度', com: 'Slider', min: 1, max: 30, step: 0.1 },
- particleSize: { name: '粒子大小', com: 'Slider', min: 0.001, max: 0.02, step: 0.001 },
- baseColor: { name: '基底颜色', com: 'ColorPicker' },
- traceColor: { name: '片面亮色', com: 'ColorPicker' },
- glowColor: { name: '沟槽光色', com: 'ColorPicker' },
- trailColor: { name: '数据轨迹颜色', com: 'ColorPicker' },
- particleColor: { name: '粒子颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '高级动态草地',
- type: 'advancedDynamicGrassComponent',
- comFile: './src/components/advancedDynamicGrassComponent/index.vue',
- previewPath: './preview/advancedDynamicGrassComponent.svg',
- description: '移植自 three-stylized 的高级草地组件,保留确定性起伏地形、实例化草叶、动态风场与程序化野花;不创建或配置 Sun、背景、环境、相机与控制器,适合直接加入区域场景编辑器。',
- default: {
- terrainWidth: 8,
- terrainDepth: 8,
- terrainSegments: 72,
- seed: 17,
- terrainDegree: 0.8,
- groundColor: '#557d24',
- density: 40,
- bladeHeight: 1.5,
- bladeWidth: 0.1,
- windStrength: 0.22,
- windSpeed: 1.1,
- windFrequency: 0.55,
- windTurbulence: 0.24,
- windDirection: 32,
- brightness: 0.35,
- grassBottomColor: '#4f7c13',
- grassTopColor: '#b8da57',
- grassBacklightColor: '#c1e54d',
- wildflowersEnabled: true,
- wildflowerDensity: 0.84,
- wildflowerMaxCount: 240,
- },
- defaultObject3D: {
- position: { x: 0, y: 0, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- terrainWidth: { name: '地形宽度', com: 'Slider', min: 2, max: 40, step: 0.5 },
- terrainDepth: { name: '地形深度', com: 'Slider', min: 2, max: 40, step: 0.5 },
- terrainSegments: { name: '地形精度', com: 'Slider', min: 8, max: 160, step: 1 },
- seed: { name: '随机种子', com: 'Slider', min: 0, max: 10000, step: 1 },
- terrainDegree: { name: '地形起伏', com: 'Slider', min: 0, max: 1, step: 0.01 },
- density: { name: '草叶密度', com: 'Slider', min: 1, max: 60, step: 1 },
- bladeHeight: { name: '草叶高度', com: 'Slider', min: 0.1, max: 3, step: 0.02 },
- bladeWidth: { name: '草叶宽度', com: 'Slider', min: 0.01, max: 0.16, step: 0.001 },
- windStrength: { name: '风力强度', com: 'Slider', min: 0, max: 0.8, step: 0.01 },
- windSpeed: { name: '风速', com: 'Slider', min: 0, max: 5, step: 0.05 },
- windFrequency: { name: '风浪频率', com: 'Slider', min: 0, max: 3, step: 0.01 },
- windTurbulence: { name: '风场扰动', com: 'Slider', min: 0, max: 1, step: 0.01 },
- windDirection: { name: '风向角度', com: 'Slider', min: 0, max: 360, step: 1 },
- brightness: { name: '草地亮度', com: 'Slider', min: 0.1, max: 2, step: 0.01 },
- groundColor: { name: '地面颜色', com: 'ColorPicker' },
- grassBottomColor: { name: '草根颜色', com: 'ColorPicker' },
- grassTopColor: { name: '草尖颜色', com: 'ColorPicker' },
- grassBacklightColor: { name: '草叶透光色', com: 'ColorPicker' },
- wildflowersEnabled: { name: '显示野花', com: 'Switch' },
- wildflowerDensity: { name: '野花密度', com: 'Slider', min: 0, max: 5, step: 0.05 },
- wildflowerMaxCount: { name: '野花上限', com: 'Slider', min: 0, max: 2000, step: 10 },
- },
- },
- {
- name: '流动烟雾组件',
- type: 'flowingSmokeComponent',
- comFile: './src/components/flowingSmokeComponent.vue',
- previewPath: './preview/flowingSmokeComponent.png',
- default: {
- color: '#aeb4b8',
- density: 0.38,
- directionX: -0.08,
- directionY: 1,
- directionZ: 0.03,
- emitterRadius: 0.12,
- flowRate: 0.16,
- lifeRange: 3.2,
- opacity: 0.26,
- particleSize: 0.22,
- sizeGrowth: 2.2,
- spread: 0.22,
- turbulence: 0.14,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.15, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- flowRate: { name: '流动速率', com: 'Slider', min: 0.02, max: 2, step: 0.01 },
- density: { name: '烟雾密度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- color: { name: '烟雾颜色', com: 'ColorPicker' },
- emitterRadius: { name: '烟囱口半径', com: 'Slider', min: 0.01, max: 1.5, step: 0.01 },
- spread: { name: '扩散宽度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- turbulence: { name: '飘动幅度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- opacity: { name: '透明强度', com: 'Slider', min: 0.01, max: 1, step: 0.01 },
- particleSize: { name: '基础粒径', com: 'Slider', min: 0.02, max: 3, step: 0.01 },
- sizeGrowth: { name: '粒径增长', com: 'Slider', min: 1, max: 4, step: 0.05 },
- lifeRange: { name: '烟雾长度', com: 'Slider', min: 0.5, max: 14, step: 0.1 },
- directionX: { name: '方向X', com: 'Slider', min: -1, max: 1, step: 0.05 },
- directionY: { name: '方向Y', com: 'Slider', min: -1, max: 1, step: 0.05 },
- directionZ: { name: '方向Z', com: 'Slider', min: -1, max: 1, step: 0.05 },
- },
- },
- {
- name: '喷火组件',
- type: 'flameJetComponent',
- comFile: './src/components/flameJetComponent.vue',
- previewPath: './preview/flameJetComponent.gif',
- description: '基于 fragment shader 的喷火效果组件,沿 +X 方向喷射,支持长度、扰动、颜色梯度等参数调节。',
- default: {
- coreColor: '#ffc738',
- crossPlane: true,
- intensity: 1.55,
- jetSpeed: 1.7,
- length: 6,
- midColor: '#ff660d',
- noiseScale: 1,
- outerColor: '#d80f04',
- taperPower: 1.2,
- turbulence: 1,
- width: 2.2,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.6, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- length: { name: '火焰长度', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- width: { name: '火焰宽度', com: 'Slider', min: 0.2, max: 12, step: 0.1 },
- jetSpeed: { name: '喷射速度', com: 'Slider', min: 0, max: 8, step: 0.05 },
- turbulence: { name: '扰动强度', com: 'Slider', min: 0, max: 3, step: 0.05 },
- noiseScale: { name: '噪声密度', com: 'Slider', min: 0.1, max: 4, step: 0.05 },
- taperPower: { name: '收尖程度', com: 'Slider', min: 0.2, max: 5, step: 0.05 },
- intensity: { name: '辉光强度', com: 'Slider', min: 0.1, max: 4, step: 0.05 },
- crossPlane: { name: '十字面片', com: 'Switch' },
- coreColor: { name: '焰心色', com: 'ColorPicker' },
- midColor: { name: '焰中色', com: 'ColorPicker' },
- outerColor: { name: '焰边色', com: 'ColorPicker' },
- },
- },
- {
- name: '三维流体火焰',
- type: 'volumetricFluidFlameComponent',
- comFile: './src/components/volumetricFluidFlameComponent.vue',
- previewPath: './preview/volumetricFluidFlameComponent.png',
- description: '基于 GPU atlas 体素仿真的三维体积火焰组件,默认采用较低成本的模拟分辨率、压力迭代和光线步数。',
- default: {
- absorption: 7.5,
- brightness: 1.45,
- buoyancy: 2.3,
- colorMode: 0,
- curlStrength: 2.4,
- dissipation: 0.982,
- emitStrength: 3.1,
- flameHeight: 0.58,
- flameScaleX: 1,
- flameScaleY: 1.15,
- flameScaleZ: 1,
- flameWidth: 0.52,
- groundOpacity: 0.82,
- groundSize: 8,
- groundVisible: true,
- pressureIterations: 8,
- rayMarchSteps: 64,
- simulationFps: 30,
- simulationResolution: 32,
- turbulence: 0.48,
- volumeScale: 2.1,
- },
- defaultObject3D: {
- position: { x: 0, y: 0, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- colorMode: {
- name: '颜色预设',
- com: 'Select',
- options: [
- { label: '火焰', value: 0 },
- { label: '蓝色等离子', value: 1 },
- { label: '绿色毒焰', value: 2 },
- { label: '白色蒸汽', value: 3 },
- { label: '紫色炼狱', value: 4 },
- ],
- },
- resetFluid: { name: '重置流体', com: 'ActionButton', action: 'resetFluidAction' },
- volumeScale: { name: '整体尺寸', com: 'Slider', min: 0.5, max: 6, step: 0.05 },
- flameWidth: { name: '火焰宽度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- flameHeight: { name: '火焰高度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- flameScaleX: { name: '形变 X', com: 'Slider', min: 0.3, max: 2.5, step: 0.01 },
- flameScaleY: { name: '形变 Y', com: 'Slider', min: 0.3, max: 2.5, step: 0.01 },
- flameScaleZ: { name: '形变 Z', com: 'Slider', min: 0.3, max: 2.5, step: 0.01 },
- emitStrength: { name: '喷发强度', com: 'Slider', min: 0.2, max: 8, step: 0.05 },
- buoyancy: { name: '上升浮力', com: 'Slider', min: 0, max: 8, step: 0.05 },
- curlStrength: { name: '涡旋强度', com: 'Slider', min: 0, max: 8, step: 0.05 },
- turbulence: { name: '扰动强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- dissipation: { name: '耗散系数', com: 'Slider', min: 0.9, max: 0.999, step: 0.001 },
- brightness: { name: '亮度', com: 'Slider', min: 0.3, max: 4, step: 0.05 },
- absorption: { name: '吸收密度', com: 'Slider', min: 2, max: 20, step: 0.1 },
- simulationResolution: {
- name: '模拟分辨率',
- com: 'Select',
- options: [
- { label: '16³ 最快', value: 16 },
- { label: '24³ 轻量', value: 24 },
- { label: '32³ 默认', value: 32 },
- { label: '48³ 精细', value: 48 },
- { label: '64³ 高质', value: 64 },
- ],
- },
- simulationFps: { name: '模拟帧率', com: 'Slider', min: 10, max: 60, step: 1 },
- pressureIterations: { name: '压力迭代', com: 'Slider', min: 1, max: 24, step: 1 },
- rayMarchSteps: { name: '体渲染步数', com: 'Slider', min: 24, max: 128, step: 1 },
- groundVisible: { name: '地面辉光', com: 'Switch' },
- groundSize: { name: '地面范围', com: 'Slider', min: 2, max: 30, step: 0.5 },
- groundOpacity: { name: '地面透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- },
- },
- {
- name: '液体气泡组件',
- type: 'liquidBubbleComponent',
- comFile: './src/components/liquidBubbleComponent/index.vue',
- previewPath: './preview/liquidBubbleComponent.gif',
- description: '静止液体体块内部持续冒泡的效果组件,支持长方体与圆柱体两种形状。',
- default: {
- shapeType: 'cylinder',
- width: 1.6,
- depth: 1.4,
- height: 3.2,
- radius: 1.07,
- liquidColor: '#b93838',
- liquidTopColor: '#de9221',
- bubbleColor: '#fff8e8',
- opacity: 0.5099999999999999,
- bubbleCount: 80,
- bubbleOpacity: 0.44999999999999996,
- bubbleSpeed: 0.1,
- bubbleSize: 0.08199999999999999,
- bubbleSpread: 0.76,
- },
- defaultObject3D: {
- position: { x: 0, y: 0, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- shapeType: {
- name: '形状',
- com: 'Select',
- options: [
- { label: '圆柱体', value: 'cylinder' },
- { label: '长方体', value: 'box' },
- ],
- },
- width: { name: '长方体宽度', com: 'Slider', min: 0.4, max: 8, step: 0.05 },
- depth: { name: '长方体深度', com: 'Slider', min: 0.4, max: 8, step: 0.05 },
- height: { name: '高度', com: 'Slider', min: 0.8, max: 8, step: 0.05 },
- radius: { name: '圆柱体半径', com: 'Slider', min: 0.2, max: 4, step: 0.05 },
- liquidColor: { name: '液体底色', com: 'ColorPicker' },
- liquidTopColor: { name: '液体顶色', com: 'ColorPicker' },
- bubbleColor: { name: '气泡颜色', com: 'ColorPicker' },
- opacity: { name: '液体透明度', com: 'Slider', min: 0.08, max: 0.95, step: 0.01 },
- bubbleCount: { name: '气泡数量', com: 'Slider', min: 0, max: 240, step: 1 },
- bubbleOpacity: { name: '气泡透明度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- bubbleSpeed: { name: '气泡速度', com: 'Slider', min: 0.1, max: 4, step: 0.05 },
- bubbleSize: { name: '气泡大小', com: 'Slider', min: 0.001, max: 0.3, step: 0.001 },
- bubbleSpread: { name: '气泡扩散', com: 'Slider', min: 0.02, max: 1.2, step: 0.01 },
- },
- },
- {
- name: '流动液体容器组件',
- type: 'liquidContainerComponent',
- comFile: './src/components/liquidContainerComponent/index.vue',
- previewPath: './preview/liquidContainerComponent.gif',
- default: {
- shapeType: 'cylinderTank',
- vasePreset: 'roundPot',
- length: 2.4,
- width: 1.6,
- height: 2.8,
- radius: 1,
- fillLevel: 0.64,
- waveSpeed: 1.15,
- waveAmplitude: 0.08,
- waveFrequency: 3.4,
- waveRandomness: 0.46,
- baseColor: '#1f7ae0',
- topColor: '#6fe7ff',
- edgeColor: '#d7fbff',
- shellColor: '#d7f5ff',
- shellOpacity: 0.24,
- density: 0.72,
- opacity: 0.78,
- bubbleEnabled: true,
- bubbleCount: 56,
- bubbleSizeMin: 0.005,
- bubbleSizeMax: 0.016,
- bubbleRandomness: 0.72,
- bubbleRiseSpeed: 0.72,
- bubbleColor: '#f5feff',
- clipX: 1,
- clipZ: 1,
- },
- defaultObject3D: {
- position: { x: 0, y: 0, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- shapeType: {
- name: '容器形状',
- com: 'Select',
- options: ['cylinderTank', 'rectTank', 'vaseTank'].map(item => ({
- label: item,
- value: item,
- })),
- },
- vasePreset: {
- name: '壶形预设',
- com: 'Select',
- options: ['roundPot', 'slenderBottle', 'bulbFlask'].map(item => ({
- label: item,
- value: item,
- })),
- },
- length: { name: '矩形长度', com: 'Slider', min: 0.8, max: 8, step: 0.05 },
- width: { name: '矩形宽度', com: 'Slider', min: 0.6, max: 6, step: 0.05 },
- height: { name: '容器高度', com: 'Slider', min: 1, max: 8, step: 0.05 },
- radius: { name: '圆形半径', com: 'Slider', min: 0.35, max: 3.5, step: 0.05 },
- fillLevel: { name: '液位高度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- waveSpeed: { name: '波动速度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- waveAmplitude: { name: '波动振幅', com: 'Slider', min: 0, max: 0.24, step: 0.005 },
- waveFrequency: { name: '波动频率', com: 'Slider', min: 0.5, max: 10, step: 0.1 },
- waveRandomness: { name: '波动随机性', com: 'Slider', min: 0, max: 1, step: 0.01 },
- baseColor: { name: '液体底色', com: 'ColorPicker' },
- topColor: { name: '液体顶色', com: 'ColorPicker' },
- edgeColor: { name: '液面边缘色', com: 'ColorPicker' },
- shellColor: { name: '外壳颜色', com: 'ColorPicker' },
- shellOpacity: { name: '外壳透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- density: { name: '密度成色', com: 'Slider', min: 0.1, max: 1, step: 0.01 },
- opacity: { name: '液体透明', com: 'Slider', min: 0.08, max: 1, step: 0.01 },
- bubbleEnabled: { name: '开启气泡', com: 'Switch' },
- bubbleCount: { name: '气泡数量', com: 'Slider', min: 0, max: 160, step: 1 },
- bubbleSizeMin: { name: '最小气泡', com: 'Slider', min: 0.001, max: 0.05, step: 0.0005 },
- bubbleSizeMax: { name: '最大气泡', com: 'Slider', min: 0.002, max: 0.06, step: 0.0005 },
- bubbleRandomness: { name: '气泡随机性', com: 'Slider', min: 0, max: 1, step: 0.01 },
- bubbleRiseSpeed: { name: '气泡上浮速', com: 'Slider', min: 0.1, max: 3, step: 0.05 },
- bubbleColor: { name: '气泡颜色', com: 'ColorPicker' },
- clipX: { name: 'X方向裁切', com: 'Slider', min: 0, max: 1, step: 0.01 },
- clipZ: { name: 'Z方向裁切', com: 'Slider', min: 0, max: 1, step: 0.01 },
- },
- },
- {
- name: '动态旋转基座',
- type: 'dynamicRotatingBase',
- comFile: './src/components/dynamicRotatingBase.vue',
- previewPath: './preview/dynamicRotatingBase.png',
- default: {
- type: 'imgA',
- color: '#fff',
- opacity: 0.95,
- rotationZ: 0.01,
- videoLoop: false,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.2, z: 0 },
- scale: { x: 0.5, y: 0.5, z: 0.5 },
- rotation: { x: -Math.PI / 2, y: 0, z: 0 },
- },
- config: {
- type: {
- name: '类型',
- com: 'Select',
- options: ['imgA', 'imgB', 'imgC'].map(item => ({
- label: item,
- value: item,
- })),
- },
- color: { name: '颜色', com: 'ColorPicker' },
- videoLoop: { name: '视频重复', com: 'Switch' },
- rotationZ: { name: '自转速度', com: 'Slider', min: -0.1, max: 0.1, step: 0.01 },
- opacity: { name: '透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- },
- },
- {
- name: '艺术三维饼图',
- type: 'PieChartArt',
- comFile: './src/components/PieChartArt/index.vue',
- previewPath: './preview/PieChartArt.svg',
- description: 'WebGL 版 3D 艺术饼图,默认使用 Market Share 数据;应用 JSON 后会直接重建新图形。',
- default: {
- jsonText: `{
- "title": "Market Share",
- "unit": "%",
- "slices": [
- { "label": "Apple", "value": 30 },
- { "label": "Samsung", "value": 22 },
- { "label": "Xiaomi", "value": 10 },
- { "label": "OPPO", "value": 20 },
- { "label": "vivo", "value": 18 }
- ]
- }`,
- "height": 1.25,
- "radius": 3.1,
- "innerRadius": 1.9500000000000004,
- "gap": 0.12999999999999998,
- "bevel": 0.3,
- "sideSegments": 84,
- "bevelSegments": 5,
- "smoothShading": true,
- "creaseAngle": 84,
- "labelFontSize": 3,
- "gradientDirection": "vertical",
- "gradientFromY": 0,
- "gradientToY": 1,
- "gradientCurve": 0.29000000000000004,
- "colorScheme": "candy",
- "roughness": 0.34,
- "metalness": 0,
- "envMapIntensity": 2.7399999999999998,
- "jsonError": "",
- "jsonTextChangeNumber": 0
- },
- defaultObject3D: {
- position: { x: 0, y: 0.02, z: 0 },
- scale: { x: 0.75, y: 0.75, z: 0.75 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- jsonText: { name: '表数据 JSON', com: 'jsonText' },
- height: { name: 'Chart 高度', com: 'Slider', min: 0.25, max: 6, step: 0.05 },
- radius: { name: 'Chart 半径', com: 'Slider', min: 0.8, max: 12, step: 0.05 },
- innerRadius: { name: 'Chart 内半径', com: 'Slider', min: 0, max: 10, step: 0.05 },
- gap: { name: 'Chart 间隙', com: 'Slider', min: 0, max: 0.22, step: 0.005 },
- bevel: { name: 'Chart 倒角', com: 'Slider', min: 0, max: 0.6, step: 0.01 },
- sideSegments: { name: 'Chart 侧边分段', com: 'Slider', min: 8, max: 256, step: 4 },
- bevelSegments: { name: 'Chart 倒角分段', com: 'Slider', min: 1, max: 8, step: 1 },
- smoothShading: { name: 'Chart 平滑着色', com: 'Switch' },
- creaseAngle: { name: 'Chart 折痕角度', com: 'Slider', min: 0, max: 180, step: 1 },
- labelFontSize: { name: 'Chart 标签字号', com: 'Slider', min: 0.8, max: 4, step: 0.05 },
- gradientDirection: {
- name: 'Gradient 方向',
- com: 'Select',
- options: [
- { label: 'Vertical (Y)', value: 'vertical' },
- { label: 'Radial', value: 'radial' },
- { label: 'Angular', value: 'angular' },
- ],
- },
- gradientFromY: { name: 'Gradient From Y', com: 'Slider', min: 0, max: 1, step: 0.01 },
- gradientToY: { name: 'Gradient To Y', com: 'Slider', min: 0, max: 1, step: 0.01 },
- gradientCurve: { name: 'Gradient Curve', com: 'Slider', min: 0.1, max: 3, step: 0.01 },
- colorScheme: {
- name: 'Gradient 色系',
- com: 'Select',
- options: [
- { label: 'Market Neon', value: 'marketNeon' },
- { label: 'Aurora', value: 'aurora' },
- { label: 'Sunset', value: 'sunset' },
- { label: 'Jewel', value: 'jewel' },
- { label: 'Candy', value: 'candy' },
- ],
- },
- roughness: { name: 'Material Roughness', com: 'Slider', min: 0, max: 1, step: 0.01 },
- metalness: { name: 'Material Metalness', com: 'Slider', min: 0, max: 1, step: 0.01 },
- envMapIntensity: { name: 'Material Env Intensity', com: 'Slider', min: 0, max: 3, step: 0.01 },
- },
- },
- {
- name: '圆形动态粒子图表',
- type: 'circularParticleChartComponent',
- comFile: './src/components/circularParticleChartComponent.vue',
- previewPath: './preview/circularParticleChartComponent.png',
- description: '自发光圆形粒子图表,带可反向的扫描动效和中心标题/单位文字;不依赖灯光、环境贴图或场景镜面。',
- default: {
- "particleSize": 8.3,
- "particleColor": "#fc33ff",
- "scanSpeed": 0.36,
- "titleText": "圆形",
- "titleSize": 45,
- "unitText": "粒子图表",
- "unitSize": 19,
- "textColor": "#ffffff",
- "line2": 0.015,
- "lineColor": "#004940"
- },
- defaultObject3D: {
- position: { x: 0, y: 0.04, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- particleSize: { name: '粒子大小', com: 'Slider', min: 1, max: 28, step: 0.1 },
- particleColor: { name: '粒子颜色', com: 'ColorPicker' },
- scanSpeed: { name: '扫描速度', com: 'Slider', min: -1, max: 1, step: 0.01 },
- titleText: { name: '标题文字', com: 'Text' },
- titleSize: { name: '标题大小', com: 'Slider', min: 10, max: 96, step: 1 },
- unitText: { name: '单位文字', com: 'Text' },
- unitSize: { name: '单位大小', com: 'Slider', min: 8, max: 64, step: 1 },
- textColor: { name: '文字颜色', com: 'ColorPicker' },
- line2: { name: 'line2', com: 'Slider', min: 0.006, max: 0.18, step: 0.001 },
- lineColor: { name: '边框线颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '简单柱体图表',
- type: 'simpleColumn',
- comFile: './src/components/simpleColumn/index.vue',
- previewPath: './preview/simpleColumn.png',
- default: {
- spacing: 0, // 间距
- distribution: 'proportional', // 布局方式
- width: 4 / 3, // 宽度
- titleSize: 10, // 标题大小
- fontColor: '#ffffff',
- materialType: 'MeshPhysicalMaterial',
- metalness: 0.5,
- roughness: 0.5,
- clearcoat: 0.2,
- clearcoatRoughness: 0.1,
- reflectivity: 0.5,
- opacity: 1,
- jsonText: `[
- { value: 43, title: '%',color:'#5072c4' },
- { value: 24, title: '%', color:'#92cb79' },
- { value: 12, title: '%', color:'#fcc660' },
- { value: 39, title: '%', color:'#f8285b' },
- { value: 14, title: '%', color:'#ff0ecb' },
- ]`,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.1, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: Math.PI / 2, z: 0 },
- },
- config: {
- spacing: { name: '柱体间距', com: 'Slider', min: 0, max: 1, step: 0.01 },
- distribution: {
- name: '布局方式',
- com: 'Select',
- options: ['uniform', 'proportional'].map(item => ({
- label: item,
- value: item,
- })),
- },
- width: { name: '总宽度', com: 'Slider', min: 0.01, max: 3, step: 0.01 },
- titleSize: { name: '标题大小', com: 'Slider', min: 1, max: 32, step: 0.2 },
- fontColor: { name: '字体颜色', com: 'ColorPicker' },
- materialType: {
- name: '材质类型',
- com: 'Select',
- options: ['MeshBasicMaterial', 'MeshLambertMaterial', 'MeshPhongMaterial', 'MeshStandardMaterial', 'MeshPhysicalMaterial', 'MeshToonMaterial', 'MeshGlassMaterial'].map(item => ({
- label: item,
- value: item,
- })),
- },
- metalness: { name: '金属度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- roughness: { name: '粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- clearcoat: { name: '清晰度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- clearcoatRoughness: { name: '清晰度粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- reflectivity: { name: '反射率', com: 'Slider', min: 0, max: 1, step: 0.01 },
- opacity: { name: '透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- jsonText: { name: '数据配置', com: 'jsonText' },
- },
- },
- {
- name: '高级树组件',
- type: 'ezTreeCom',
- comFile: './src/components/ezTreeCom.vue',
- previewPath: './preview/ezTreeCom.png',
- description: `<a style="color: #5384ff;" href="https://github.com/dgreenheck/ez-tree" target="_blank">开源 ez-tree</a> 组件,实现高级树模型展示,<a style="color: #03765b;" href="https://www.eztree.dev" target="_blank">配置生成器</a>,SavePreset 导出配置。`,
- default: {
- isUpdate: true,
- jsonText: `{
- "seed": 36330,
- "type": "deciduous",
- "bark": {
- "type": "oak",
- "tint": 13552830,
- "flatShading": false,
- "textured": true,
- "textureScale": {
- "x": 0.5,
- "y": 5
- }
- },
- "branch": {
- "levels": 3,
- "angle": {
- "1": 48,
- "2": 75,
- "3": 60
- },
- "children": {
- "0": 7,
- "1": 4,
- "2": 3
- },
- "force": {
- "direction": {
- "x": 0,
- "y": 1,
- "z": 0
- },
- "strength": -0.06
- },
- "gnarliness": {
- "0": 0.03,
- "1": 0.25,
- "2": 0.2,
- "3": 0.09
- },
- "length": {
- "0": 43.47,
- "1": 27.14,
- "2": 9.51,
- "3": 4.6
- },
- "radius": {
- "0": 2,
- "1": 0.63,
- "2": 0.76,
- "3": 0.7
- },
- "sections": {
- "0": 12,
- "1": 8,
- "2": 6,
- "3": 4
- },
- "segments": {
- "0": 12,
- "1": 6,
- "2": 4,
- "3": 3
- },
- "start": {
- "1": 0.23,
- "2": 0.33,
- "3": 0
- },
- "taper": {
- "0": 0.7,
- "1": 0.7,
- "2": 0.7,
- "3": 0.7
- },
- "twist": {
- "0": 0.09,
- "1": -0.07,
- "2": 0,
- "3": 0
- }
- },
- "leaves": {
- "type": "ash",
- "billboard": "double",
- "angle": 55,
- "count": 16,
- "start": 0,
- "size": 2.67,
- "sizeVariance": 0.72,
- "tint": 16777215,
- "alphaTest": 0.5
- },
- "trellis": {
- "enabled": false,
- "position": {
- "x": 0,
- "y": 0,
- "z": -2
- },
- "width": 10,
- "height": 20,
- "spacing": 2,
- "force": {
- "strength": 0.02,
- "maxDistance": 3,
- "falloff": 1
- },
- "cylinderRadius": 0.05,
- "visible": true,
- "color": 9127187
- }
- }`,
- },
- defaultObject3D: {},
- config: {
- randomizeAction: {
- name: '随机生成树',
- com: 'ActionButton',
- action: 'randomizeTreeConfig',
- },
- isUpdate: { name: '摆动', com: 'Switch' },
- jsonText: { name: 'ez-tree配置', com: 'jsonText' },
- },
- },
- {
- name: '超级能量盾组件',
- type: 'superEnergyShieldComponent',
- comFile: './src/components/superEnergyShieldComponent.vue',
- previewPath: './preview/superEnergyShieldComponent.gif',
- default: {
- color: '#26aeff',
- edgeWidth: 0.06,
- enableSelfHit: false,
- fadeStart: 0,
- flashIntensity: 0.11,
- flashSpeed: 0.6,
- flowIntensity: 4,
- flowScale: 2.4,
- flowSpeed: 1.13,
- fresnelPower: 1.8,
- fresnelStrength: 1.75,
- hexOpacity: 0.13,
- hexScale: 3,
- hitDuration: 1.8,
- hitImpactRadius: 0.3,
- hitIntensity: 4.1,
- hitMaxRadius: 0.85,
- hitRingSpeed: 1.75,
- hitRingWidth: 0.12,
- noiseEdgeColor: '#26aeff',
- noiseEdgeIntensity: 10,
- noiseEdgeSmoothness: 0.5,
- noiseEdgeWidth: 0.02,
- noiseScale: 1.3,
- opacity: 0.76,
- showHex: true,
- },
- defaultObject3D: {
- position: { x: 0, y: 2, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- color: { name: '护盾颜色', com: 'ColorPicker' },
- opacity: { name: '整体透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- showHex: { name: '显示六边形', com: 'Switch' },
- hexScale: { name: '六边形密度', com: 'Slider', min: 1, max: 20, step: 0.5 },
- hexOpacity: { name: '六边形强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- edgeWidth: { name: '六边形边缘宽度', com: 'Slider', min: 0.01, max: 0.2, step: 0.005 },
- fresnelPower: { name: '菲涅耳幂值', com: 'Slider', min: 0.5, max: 5, step: 0.1 },
- fresnelStrength: { name: '菲涅耳强度', com: 'Slider', min: 0, max: 3, step: 0.05 },
- fadeStart: { name: '底部渐隐起点', com: 'Slider', min: -1, max: 1, step: 0.01 },
- flashSpeed: { name: '光闪速度', com: 'Slider', min: 0.5, max: 8, step: 0.1 },
- flashIntensity: { name: '光闪强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- noiseScale: { name: '噪声缩放', com: 'Slider', min: 0.5, max: 10, step: 0.1 },
- noiseEdgeColor: { name: '噪声边缘颜色', com: 'ColorPicker' },
- noiseEdgeWidth: { name: '噪声边缘宽度', com: 'Slider', min: 0.01, max: 0.5, step: 0.01 },
- noiseEdgeIntensity: { name: '噪声边缘强度', com: 'Slider', min: 0, max: 10, step: 0.1 },
- noiseEdgeSmoothness: { name: '噪声边缘柔滑', com: 'Slider', min: 0, max: 1, step: 0.01 },
- flowScale: { name: '流动噪声缩放', com: 'Slider', min: 0.1, max: 8, step: 0.1 },
- flowSpeed: { name: '流动速度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- flowIntensity: { name: '流动强度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- hitRingSpeed: { name: '冲击环扩散速度', com: 'Slider', min: 0.1, max: 6, step: 0.05 },
- hitRingWidth: { name: '冲击环宽度', com: 'Slider', min: 0.01, max: 0.5, step: 0.01 },
- hitMaxRadius: { name: '冲击最大扩散半径', com: 'Slider', min: 0.2, max: 3.14, step: 0.05 },
- hitDuration: { name: '冲击持续时间', com: 'Slider', min: 0.5, max: 6, step: 0.1 },
- hitIntensity: { name: '冲击强度', com: 'Slider', min: 0, max: 8, step: 0.1 },
- hitImpactRadius: { name: '命中区域半径', com: 'Slider', min: 0.1, max: 1.5, step: 0.05 },
- enableSelfHit: { name: '启用自点击冲击', com: 'Switch' },
- },
- },
- {
- name: '光速护盾展开组件',
- type: 'lightSpeedShieldDeployComponent',
- comFile: './src/components/lightSpeedShieldDeployComponent.vue',
- previewPath: './preview/lightSpeedShieldDeployComponent.jpg',
- default: {
- autoAnimate: true,
- collapseDuration: 0.35,
- coreColor: '#69f6ff',
- coreIntensity: 2.2,
- coreRadiusRatio: 0.58,
- deployDuration: 0.86,
- deployProgress: 1,
- deployToken: 0,
- fresnelStrength: 1.9,
- hexColor: '#2e91ff',
- hexOpacity: 0.86,
- hexScale: 5.7,
- hexWidth: 0.075,
- holdDuration: 1.15,
- hotColor: '#e7ffff',
- noiseScale: 2.1,
- noiseSpeed: 0.62,
- opacity: 0.78,
- pulseIntensity: 0.8,
- pulseSpeed: 1.15,
- radius: 1.8,
- rimColor: '#baf7ff',
- shellColor: '#48c8ff',
- startScale: 0.32,
- sweepIntensity: 1.55,
- sweepWidth: 0.18,
- },
- defaultObject3D: {
- position: { x: 0, y: 1.8, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoAnimate: { name: '自动循环展开', com: 'Switch' },
- triggerDeploy: { name: '重播展开', com: 'ActionButton', action: 'triggerDeployAction' },
- deployProgress: { name: '手动展开进度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- deployDuration: { name: '展开时长', com: 'Slider', min: 0.12, max: 5, step: 0.01 },
- holdDuration: { name: '保持时长', com: 'Slider', min: 0, max: 6, step: 0.05 },
- collapseDuration: { name: '收回时长', com: 'Slider', min: 0.08, max: 3, step: 0.01 },
- radius: { name: '护盾半径', com: 'Slider', min: 0.2, max: 8, step: 0.05 },
- coreRadiusRatio: { name: '内核尺寸比例', com: 'Slider', min: 0.1, max: 0.95, step: 0.01 },
- startScale: { name: '初始收束比例', com: 'Slider', min: 0.02, max: 1, step: 0.01 },
- opacity: { name: '整体透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- shellColor: { name: '外壳颜色', com: 'ColorPicker' },
- hexColor: { name: '六边形颜色', com: 'ColorPicker' },
- rimColor: { name: '边缘辉光颜色', com: 'ColorPicker' },
- coreColor: { name: '内核颜色', com: 'ColorPicker' },
- hotColor: { name: '内核高光颜色', com: 'ColorPicker' },
- hexScale: { name: '六边形密度', com: 'Slider', min: 1, max: 18, step: 0.1 },
- hexWidth: { name: '六边形边宽', com: 'Slider', min: 0.01, max: 0.2, step: 0.005 },
- hexOpacity: { name: '六边形强度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- fresnelStrength: { name: '菲涅尔强度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- sweepWidth: { name: '展开扫光宽度', com: 'Slider', min: 0.02, max: 0.8, step: 0.01 },
- sweepIntensity: { name: '展开扫光强度', com: 'Slider', min: 0, max: 5, step: 0.05 },
- noiseScale: { name: '流动噪声尺度', com: 'Slider', min: 0.1, max: 10, step: 0.1 },
- noiseSpeed: { name: '流动噪声速度', com: 'Slider', min: 0, max: 4, step: 0.01 },
- pulseSpeed: { name: '脉冲速度', com: 'Slider', min: 0, max: 5, step: 0.01 },
- pulseIntensity: { name: '脉冲强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- coreIntensity: { name: '内核发光强度', com: 'Slider', min: 0, max: 8, step: 0.05 },
- },
- },
- {
- name: '箱式隔间容器',
- type: 'binsContainerComponent',
- comFile: './src/components/binsContainer/index.vue',
- previewPath: './preview/binsContainerComponent.png',
- default: {
- width: 320,
- height: 130,
- depth: 560,
- binColor: '#60a5fa',
- radius: 25,
- thickness: 5,
- divideWidth: 0.55,
- divideDepth: 0.45,
- outerGap: 2.5,
- innerGap: 2.5,
- generationType: 'Recursive',
- iterations: 1,
- rows: 2,
- cols: 2,
- showOuterBox: true,
- showInnerBins: true,
- showMeasurements: true,
- showIndexNumbers: true,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.12, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- width: { name: 'Box Width (mm)', com: 'Slider', min: 60, max: 1200, step: 1 },
- height: { name: 'Box Height (mm)', com: 'Slider', min: 35, max: 450, step: 1 },
- depth: { name: 'Box Depth (mm)', com: 'Slider', min: 100, max: 850, step: 1 },
- binColor: { name: 'Bin Material Color', com: 'ColorPicker' },
- radius: { name: 'Bin Radius (mm)', com: 'Slider', min: 0, max: 150, step: 1 },
- thickness: { name: 'Bin Thickness (mm)', com: 'Slider', min: 2, max: 20, step: 0.1 },
- divideWidth: { name: 'Width Division', com: 'Slider', min: 0.1, max: 0.9, step: 0.01 },
- divideDepth: { name: 'Depth Division', com: 'Slider', min: 0.1, max: 0.9, step: 0.01 },
- outerGap: { name: 'Outer Gap (mm)', com: 'Slider', min: 0, max: 20, step: 0.1 },
- innerGap: { name: 'Inner Gap (mm)', com: 'Slider', min: 0, max: 20, step: 0.1 },
- generationType: {
- name: 'Generation Type',
- com: 'Select',
- options: ['Recursive', 'Grid'].map(item => ({
- label: item,
- value: item,
- })),
- },
- iterations: { name: 'Iterations', com: 'Slider', min: 0, max: 3, step: 1 },
- rows: { name: 'Rows', com: 'Slider', min: 1, max: 10, step: 1 },
- cols: { name: 'Columns', com: 'Slider', min: 1, max: 10, step: 1 },
- showOuterBox: { name: 'Show Outer Box', com: 'Switch' },
- showInnerBins: { name: 'Show Inner Bins', com: 'Switch' },
- showMeasurements: { name: 'Show Measurements', com: 'Switch' },
- showIndexNumbers: { name: 'Show Index Numbers', com: 'Switch' },
- },
- },
- {
- name: '聚能光球汇聚组件',
- type: 'chargeOrbGatherComponent',
- comFile: './src/components/chargeOrbGatherComponent.vue',
- previewPath: './preview/chargeOrbGatherComponent.gif',
- default: {
- autoAnimate: true,
- chargeProgress: 0.72,
- cycleDuration: 2.4,
- orbMaxSize: 0.4,
- glowEnabled: false,
- glowSizeMult: 1.7,
- glowColorInner: '#cb5151',
- glowColorOuter: '#000000',
- glowEmission: 1.6,
- glowFalloffPower: 6,
- glowEdgeSoftness: 4,
- orbCoreColor: '#eaf8fc',
- orbRimColor: '#0c61f5',
- fresnelEmission: 1.8,
- fresnelPower: 0.1,
- bodyFalloff: 5.6,
- coreFalloff: 4.4,
- coreBoost: 2.3,
- noiseColor: '#128bff',
- noiseScale: 0.4,
- noiseSpeed: 1.35,
- flowIntensity: 4.7,
- warpStrength: 2.3,
- particleCount: 16,
- particleWidth: 0.1,
- particleLength: 0.13,
- particleSpeed: 3.9,
- particleSpawnRadius: 2.1,
- particleColor: '#59afff',
- particleLifetime: 0.6,
- particleTurbulence: 1.1,
- particleEmission: 3,
- },
- defaultObject3D: {
- position: { x: 0, y: 1.15, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoAnimate: { name: '自动蓄力', com: 'Switch' },
- chargeProgress: { name: '外部蓄力进度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- cycleDuration: { name: '自动循环时长', com: 'Slider', min: 0.6, max: 8, step: 0.05 },
- orbMaxSize: { name: '光球最大尺寸', com: 'Slider', min: 0.01, max: 3, step: 0.01 },
- glowEnabled: { name: '开启外层辉光', com: 'Switch' },
- glowSizeMult: { name: '辉光尺寸倍率', com: 'Slider', min: 1, max: 10, step: 0.1 },
- glowColorInner: { name: '辉光内层颜色', com: 'ColorPicker' },
- glowColorOuter: { name: '辉光外层颜色', com: 'ColorPicker' },
- glowEmission: { name: '辉光发光强度', com: 'Slider', min: 0, max: 8, step: 0.05 },
- glowFalloffPower: { name: '辉光衰减曲线', com: 'Slider', min: 0.1, max: 8, step: 0.1 },
- glowEdgeSoftness: { name: '辉光边缘柔化', com: 'Slider', min: 0.1, max: 8, step: 0.1 },
- orbCoreColor: { name: '球心颜色', com: 'ColorPicker' },
- orbRimColor: { name: '边缘颜色', com: 'ColorPicker' },
- fresnelEmission: { name: '菲涅尔发光', com: 'Slider', min: 0.1, max: 30, step: 0.1 },
- fresnelPower: { name: '菲涅尔曲线', com: 'Slider', min: 0.1, max: 4, step: 0.05 },
- bodyFalloff: { name: '主体衰减', com: 'Slider', min: 0.1, max: 8, step: 0.1 },
- coreFalloff: { name: '球心收束', com: 'Slider', min: 0.5, max: 10, step: 0.1 },
- coreBoost: { name: '球心增强', com: 'Slider', min: 0, max: 10, step: 0.1 },
- noiseColor: { name: '流动噪声颜色', com: 'ColorPicker' },
- noiseScale: { name: '噪声尺度', com: 'Slider', min: 0.1, max: 20, step: 0.1 },
- noiseSpeed: { name: '噪声速度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- flowIntensity: { name: '流动强度', com: 'Slider', min: 0, max: 15, step: 0.1 },
- warpStrength: { name: '扭曲强度', com: 'Slider', min: 0, max: 8, step: 0.1 },
- particleCount: { name: '粒子数量', com: 'Slider', min: 1, max: 40, step: 1 },
- particleWidth: { name: '粒子宽度', com: 'Slider', min: 0.005, max: 0.3, step: 0.005 },
- particleLength: { name: '粒子长度', com: 'Slider', min: 0.005, max: 0.5, step: 0.005 },
- particleSpeed: { name: '粒子汇聚速度', com: 'Slider', min: 0.1, max: 10, step: 0.1 },
- particleSpawnRadius: { name: '粒子生成半径', com: 'Slider', min: 0.1, max: 5, step: 0.05 },
- particleColor: { name: '粒子颜色', com: 'ColorPicker' },
- particleLifetime: { name: '粒子寿命', com: 'Slider', min: 0.1, max: 3, step: 0.05 },
- particleTurbulence: { name: '粒子扰动', com: 'Slider', min: 0, max: 5, step: 0.05 },
- particleEmission: { name: '粒子发光', com: 'Slider', min: 0.1, max: 20, step: 0.1 },
- },
- },
- {
- name: '充能爆裂环组件',
- type: 'chargedBlastRingsComponent',
- comFile: './src/components/chargedBlastRingsComponent.vue',
- previewPath: './preview/chargedBlastRingsComponent.png',
- default: {
- autoPlay: true,
- burstToken: 0,
- loopInterval: 1.6,
- fireDirectionX: 0,
- fireDirectionY: 0,
- fireDirectionZ: -1,
- fireSpeed: 11,
- maxDistance: 60,
- carrierRadius: 0.5,
- carrierTailLength: 1.2,
- ringMaxRadius: 0.6,
- ringTubeRatio: 0.15,
- ringInterval: 0.27,
- ringLifetime: 0.75,
- ringSpeed: 3.5,
- ringColorA: '#a9ffff',
- ringColorB: '#03ffff',
- ringEmission: 4,
- ringGradientAngle: -30,
- ringPeakAt: 2.5,
- ringMaxCount: 2,
- },
- defaultObject3D: {
- position: { x: 0, y: 1.15, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoPlay: { name: '自动循环发射', com: 'Switch' },
- loopInterval: { name: '循环间隔', com: 'Slider', min: 0.2, max: 10, step: 0.05 },
- fireDirectionX: { name: '发射方向 X', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionY: { name: '发射方向 Y', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionZ: { name: '发射方向 Z', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireSpeed: { name: '发射速度', com: 'Slider', min: 0.1, max: 60, step: 0.1 },
- maxDistance: { name: '最远距离', com: 'Slider', min: 0.5, max: 120, step: 0.5 },
- carrierRadius: { name: '环起始半径', com: 'Slider', min: 0.01, max: 2, step: 0.01 },
- carrierTailLength: { name: '环回扫尾长', com: 'Slider', min: 0.05, max: 4, step: 0.05 },
- ringMaxRadius: { name: '圆环最大尺寸', com: 'Slider', min: 0.01, max: 2, step: 0.01 },
- ringTubeRatio: { name: '圆环厚度比', com: 'Slider', min: 0.01, max: 0.3, step: 0.01 },
- ringInterval: { name: '生成间隔', com: 'Slider', min: 0.01, max: 2, step: 0.01 },
- ringLifetime: { name: '圆环寿命', com: 'Slider', min: 0.05, max: 3, step: 0.05 },
- ringSpeed: { name: '回扫速度', com: 'Slider', min: 0.1, max: 15, step: 0.1 },
- ringColorA: { name: '圆环颜色 A', com: 'ColorPicker' },
- ringColorB: { name: '圆环颜色 B', com: 'ColorPicker' },
- ringEmission: { name: '圆环发光', com: 'Slider', min: 0, max: 20, step: 0.1 },
- ringGradientAngle: { name: '渐变角度', com: 'Slider', min: -180, max: 180, step: 1 },
- ringPeakAt: { name: '扩散峰值偏移', com: 'Slider', min: 1, max: 8, step: 0.1 },
- ringMaxCount: { name: '同屏最大数量', com: 'Slider', min: 1, max: 16, step: 1 },
- },
- },
- {
- name: '充能爆裂炮弹组件',
- type: 'chargedBlastProjectileComponent',
- comFile: './src/components/chargedBlastProjectileComponent.vue',
- previewPath: './preview/chargedBlastProjectileComponent.png',
- default: {
- autoPlay: true,
- shotToken: 0,
- loopInterval: 1.6,
- fireDirectionX: 0,
- fireDirectionY: 0,
- fireDirectionZ: -1,
- fireSpeed: 11,
- maxDistance: 60,
- projRadius: 0.5,
- projTailLength: 1.2,
- projColorA: '#0051dc',
- projColorC: '#a9ffff',
- projColorB: '#e0ffff',
- projGradientSpeed: 1.9,
- projBandWidth: 0.25,
- projFresnelColor: '#abe5ff',
- projFresnelPower: 2,
- projFresnelEmit: 1.3,
- projPulseScale: 1.2,
- projPulseSpeed: 16,
- trailColor: '#32bef0',
- trailOpacity: 0.54,
- trailWidth: 1.17,
- trailLength: 3.2,
- trailSegments: 20,
- trailEdgeSoftness: 4.7,
- },
- defaultObject3D: {
- position: { x: 0, y: 1.15, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoPlay: { name: '自动循环发射', com: 'Switch' },
- loopInterval: { name: '循环间隔', com: 'Slider', min: 0.2, max: 10, step: 0.05 },
- fireDirectionX: { name: '发射方向 X', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionY: { name: '发射方向 Y', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionZ: { name: '发射方向 Z', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireSpeed: { name: '发射速度', com: 'Slider', min: 0.1, max: 60, step: 0.1 },
- maxDistance: { name: '最远距离', com: 'Slider', min: 0.5, max: 120, step: 0.5 },
- triggerShot: { name: '发射一次', com: 'ActionButton', action: 'triggerShotAction' },
- projRadius: { name: '炮弹半径', com: 'Slider', min: 0.01, max: 1, step: 0.01 },
- projTailLength: { name: '炮弹尾长', com: 'Slider', min: 0.05, max: 3, step: 0.05 },
- projColorA: { name: '炮弹颜色 A', com: 'ColorPicker' },
- projColorC: { name: '炮弹颜色 C', com: 'ColorPicker' },
- projColorB: { name: '炮弹颜色 B', com: 'ColorPicker' },
- projGradientSpeed: { name: '渐变流速', com: 'Slider', min: 0, max: 10, step: 0.1 },
- projBandWidth: { name: '色带宽度', com: 'Slider', min: 0.05, max: 3, step: 0.05 },
- projFresnelColor: { name: '边缘颜色', com: 'ColorPicker' },
- projFresnelPower: { name: '边缘曲线', com: 'Slider', min: 0.1, max: 10, step: 0.1 },
- projFresnelEmit: { name: '边缘发光', com: 'Slider', min: 0, max: 5, step: 0.05 },
- projPulseScale: { name: '脉冲缩放', com: 'Slider', min: 1, max: 2, step: 0.01 },
- projPulseSpeed: { name: '脉冲速度', com: 'Slider', min: 0.5, max: 20, step: 0.1 },
- trailColor: { name: '尾迹颜色', com: 'ColorPicker' },
- trailOpacity: { name: '尾迹透明', com: 'Slider', min: 0, max: 1, step: 0.01 },
- trailWidth: { name: '尾迹宽度', com: 'Slider', min: 0.01, max: 2, step: 0.01 },
- trailLength: { name: '尾迹长度', com: 'Slider', min: 0.1, max: 10, step: 0.1 },
- trailSegments: { name: '尾迹分段', com: 'Slider', min: 3, max: 64, step: 1 },
- trailEdgeSoftness: { name: '尾迹边缘柔化', com: 'Slider', min: 0.1, max: 8, step: 0.1 },
- },
- },
- {
- name: '充能爆裂释放组件',
- type: 'chargedBlastReleaseComponent',
- comFile: './src/components/chargedBlastReleaseComponent.vue',
- previewPath: './preview/chargedBlastReleaseComponent.gif',
- default: {
- autoPlay: true,
- shotToken: 0,
- loopInterval: 1.6,
- fireDirectionX: 0,
- fireDirectionY: 0,
- fireDirectionZ: -1,
- fireSpeed: 11,
- maxDistance: 60,
- blastRadius: 0.5,
- blastLength: 1.2,
- blastColor: '#0051dc',
- coreColor: '#a9ffff',
- accentColor: '#e0ffff',
- energy: 1,
- pulseScale: 1.2,
- ringInterval: 0.27,
- },
- defaultObject3D: {
- position: { x: 0, y: 1.15, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoPlay: { name: '自动循环发射', com: 'Switch' },
- loopInterval: { name: '循环间隔', com: 'Slider', min: 0.2, max: 10, step: 0.05 },
- fireDirectionX: { name: '发射方向 X', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionY: { name: '发射方向 Y', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireDirectionZ: { name: '发射方向 Z', com: 'Slider', min: -1, max: 1, step: 0.01 },
- fireSpeed: { name: '发射速度', com: 'Slider', min: 0.1, max: 60, step: 0.1 },
- maxDistance: { name: '最远距离', com: 'Slider', min: 0.5, max: 120, step: 0.5 },
- triggerShot: { name: '发射一次', com: 'ActionButton', action: 'triggerShotAction' },
- blastRadius: { name: '炮弹半径', com: 'Slider', min: 0.01, max: 1, step: 0.01 },
- blastLength: { name: '炮弹尾长', com: 'Slider', min: 0.05, max: 3, step: 0.05 },
- blastColor: { name: '主体颜色', com: 'ColorPicker' },
- coreColor: { name: '能量颜色', com: 'ColorPicker' },
- accentColor: { name: '高光颜色', com: 'ColorPicker' },
- energy: { name: '整体能量', com: 'Slider', min: 0.3, max: 2.5, step: 0.01 },
- pulseScale: { name: '脉冲缩放', com: 'Slider', min: 1, max: 2, step: 0.01 },
- ringInterval: { name: '环生成间隔', com: 'Slider', min: 0.01, max: 2, step: 0.01 },
- },
- },
- {
- name: '眩目光环',
- type: 'vertigoHaloComponent',
- comFile: './src/components/vertigoHaloComponent.vue',
- previewPath: './preview/vertigoHaloComponent.svg',
- default: {
- voidColor: '#220033',
- baseColor: '#cc1133',
- accentColor: '#ff2244',
- highlightColor: '#c8956c',
- opacity: 0.92,
- gradientSpeed: 0.2,
- tunnelSpeed: 0.15,
- rotationSpeed: 0.35,
- ringFrequency: 10,
- segmentCount: 16,
- pulseIntensity: 1,
- flashIntensity: 1,
- edgeGlow: 1,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.08, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- gradientSpeed: { name: '渐变速度', com: 'Slider', min: -1, max: 1, step: 0.01 },
- tunnelSpeed: { name: '隧道推进', com: 'Slider', min: 0, max: 1.5, step: 0.01 },
- rotationSpeed: { name: '旋转漂移', com: 'Slider', min: 0, max: 1.5, step: 0.01 },
- ringFrequency: { name: '环带密度', com: 'Slider', min: 4, max: 24, step: 1 },
- segmentCount: { name: '角向分段', com: 'Slider', min: 6, max: 32, step: 1 },
- pulseIntensity: { name: '脉冲强度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- flashIntensity: { name: '闪爆强度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- edgeGlow: { name: '边缘辉光', com: 'Slider', min: 0, max: 2, step: 0.01 },
- opacity: { name: '整体透明', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- voidColor: { name: '暗部颜色', com: 'ColorPicker' },
- baseColor: { name: '主体颜色', com: 'ColorPicker' },
- accentColor: { name: '霓虹颜色', com: 'ColorPicker' },
- highlightColor: { name: '高光颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '公交线网',
- type: 'busLineNetworkComponent',
- comFile: './src/components/busLineNetworkComponent.vue',
- previewPath: './preview/busLineNetworkComponent.svg',
- description: '基于 Mars3D 北京公交 GeoJSON 数据渲染的三维线网组件,支持原始定位、采样、分层高度与脉冲效果。',
- default: {
- baseHeight: 0.06,
- colorTheme: 'green',
- dataUrl: 'https://dcser.icegl.cn/data/bj-bus.json',
- dataUrlDraft: 'https://dcser.icegl.cn/data/bj-bus.json',
- heightGroups: 9,
- heightStep: 0.055,
- lineWidth: 0.01,
- lineWidthScale: 1,
- mapScale: 0.00003,
- maxRoutes: 1222,
- opacity: 0.82,
- pointSampleStep: 2,
- pulseIntensity: 0.28,
- pulseSpeed: 0.55,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.02, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- dataUrlDraft: { name: '数据源URL', com: 'Text' },
- applyDataUrl: { name: '确认生成', com: 'ActionButton', action: 'applyDataUrlAction' },
- applyNativeGeoPosition: { name: '原始定位', com: 'ActionButton', action: 'applyNativeGeoPosition' },
- mapScale: { name: '地图缩放', com: 'Slider', min: 0.000005, max: 0.00008, step: 0.000001 },
- maxRoutes: { name: '线路数量', com: 'Slider', min: 10, max: 1222, step: 1 },
- pointSampleStep: { name: '点采样步长', com: 'Slider', min: 1, max: 8, step: 1 },
- heightGroups: { name: '分层数量', com: 'Slider', min: 1, max: 12, step: 1 },
- baseHeight: { name: '基础高度', com: 'Slider', min: 0, max: 0.5, step: 0.005 },
- heightStep: { name: '分层高度', com: 'Slider', min: 0, max: 0.2, step: 0.005 },
- lineWidth: { name: '线宽', com: 'Slider', min: 0.001, max: 0.05, step: 0.001 },
- lineWidthScale: { name: '线宽倍数', com: 'Slider', min: 1, max: 30, step: 1 },
- opacity: { name: '透明度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- colorTheme: {
- name: '配色',
- com: 'Select',
- options: [
- { label: '绿阶', value: 'green' },
- { label: '青蓝', value: 'cyan' },
- { label: '暖光', value: 'warm' },
- ],
- },
- pulseSpeed: { name: '脉冲速度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- pulseIntensity: { name: '脉冲强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- },
- },
- {
- name: '光晕线',
- type: 'polylineGlowComponent',
- comFile: './src/components/polylineGlowComponent.vue',
- previewPath: './preview/polylineGlowComponent.svg',
- description: '参考 Mars3D PolylineGlow 发光线 (ex_4_1_1):基于 GeoJSON 数据源渲染,支持确认生成与原始定位。',
- default: {
- color: '#FF4500',
- dataUrl: 'https://dcser.icegl.cn/data/wuhan-line3.json',
- dataUrlDraft: 'https://dcser.icegl.cn/data/wuhan-line3.json',
- glowColor: '#FFD27A',
- glowPower: 0.1,
- opacity: 0.9,
- width: 0.05,
- widthScale: 1,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.02, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- dataUrlDraft: { name: '数据源URL', com: 'Text' },
- applyDataUrl: { name: '确认生成', com: 'ActionButton', action: 'applyDataUrlAction' },
- applyNativeGeoPosition: { name: '原始定位', com: 'ActionButton', action: 'applyNativeGeoPosition' },
- width: { name: '线宽', com: 'Slider', min: 0.001, max: 1, step: 0.001 },
- widthScale: { name: '线宽倍数', com: 'Slider', min: 0.1, max: 30, step: 0.1 },
- glowPower: { name: '发光强度', com: 'Slider', min: 0.01, max: 1, step: 0.01 },
- opacity: { name: '透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- color: { name: '线本体颜色', com: 'ColorPicker' },
- glowColor: { name: '反光颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '电流纹波面板',
- type: 'currentRipplePanelComponent',
- comFile: './src/components/currentRipplePanelComponent.vue',
- previewPath: './preview/currentRipplePanelComponent.gif',
- default: {
- baseColor: '#081321',
- currentColor: '#18c8ff',
- flowSpeed: 1,
- gridDensity: 26,
- highlightColor: '#f0fcff',
- length: 4,
- opacity: 0.95,
- pulseFrequency: 0.48,
- pulseIntensity: 1.12,
- rippleScale: 1,
- shimmerIntensity: 1.18,
- width: 4,
- wireWidth: 0.08,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.105, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- length: { name: '面板长度', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- width: { name: '面板宽度', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- gridDensity: { name: '网格密度', com: 'Slider', min: 6, max: 72, step: 1 },
- wireWidth: { name: '导线宽度', com: 'Slider', min: 0.02, max: 0.22, step: 0.005 },
- pulseFrequency: { name: '脉冲频率', com: 'Slider', min: 0.05, max: 3, step: 0.01 },
- pulseIntensity: { name: '脉冲强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- rippleScale: { name: '纹波尺度', com: 'Slider', min: 0.4, max: 3, step: 0.01 },
- flowSpeed: { name: '流动速度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- shimmerIntensity: { name: '高光强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- opacity: { name: '整体透明', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- baseColor: { name: '基底颜色', com: 'ColorPicker' },
- currentColor: { name: '电流颜色', com: 'ColorPicker' },
- highlightColor: { name: '高光颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '月光涟漪水面',
- type: 'moonlitRippleWaterPanelComponent',
- comFile: './src/components/moonlitRippleWaterPanelComponent.vue',
- previewPath: './preview/moonlitRippleWaterPanelComponent.gif',
- default: {
- cameraTilt: 0.15,
- deepColor: '#07131f',
- fresnelStrength: 1,
- moonColor: '#eef6ff',
- moonGlow: 1,
- opacity: 0.95,
- rippleSpeed: 0.5,
- shallowColor: '#2f7ca6',
- size: 4,
- waveIntensity: 1,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.04, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- size: { name: '水面尺寸', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- rippleSpeed: { name: '涟漪速度', com: 'Slider', min: 0.1, max: 1.5, step: 0.05 },
- moonGlow: { name: '月光强度', com: 'Slider', min: 0.3, max: 2, step: 0.05 },
- cameraTilt: { name: '视角倾斜', com: 'Slider', min: -0.3, max: 1, step: 0.01 },
- waveIntensity: { name: '波浪强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- fresnelStrength: { name: '菲涅尔强度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- opacity: { name: '整体透明', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- deepColor: { name: '深水颜色', com: 'ColorPicker' },
- shallowColor: { name: '浅水颜色', com: 'ColorPicker' },
- moonColor: { name: '月光颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '水滴玻璃材质',
- type: 'waterDropGlassMaterialComponent',
- comFile: './src/components/waterDropGlassMaterialComponent/index.vue',
- previewPath: './preview/waterDropGlassMaterialComponent.gif',
- default: {
- "attenuationDistance": 3.26,
- "clearcoat": 1,
- "clearcoatRoughness": 0.3,
- "collisionRadius": 0.47000000000000003,
- "collisionRadiusIncrease": 0.0014,
- "dropletGlow": 0.08,
- "dropletRoughness": 0.21,
- "dropletSizeMax": 5,
- "dropletSizeMin": 2,
- "dropletsRate": 120,
- "glassColor": "#dff4ff",
- "globalTimeScale": 1.43,
- "ior": 2.174,
- "length": 4.5,
- "maxDropRadius": 50,
- "metalness": 0.17,
- "minDropRadius": 20,
- "normalStrength": 1.37,
- "opacity": 1,
- "rainAmount": 1.1400000000000001,
- "rainChance": 0.29999999999999993,
- "rainLimit": 6,
- "roughness": 0.18,
- "thickness": 0.15,
- "trailRate": 1,
- "transmission": 0.98,
- "width": 3.3000000000000003
- },
- defaultObject3D: {
- position: { x: 0, y: 1.7, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- length: { name: '玻璃长度', com: 'Slider', min: 0.5, max: 12, step: 0.1 },
- width: { name: '玻璃宽度', com: 'Slider', min: 0.5, max: 12, step: 0.1 },
- thickness: { name: '玻璃厚度', com: 'Slider', min: 0.02, max: 1, step: 0.01 },
- glassColor: { name: '玻璃染色', com: 'ColorPicker' },
- transmission: { name: '透射强度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- ior: { name: '折射率', com: 'Slider', min: 1, max: 2.333, step: 0.001 },
- roughness: { name: '基础粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- metalness: { name: '金属度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- clearcoat: { name: '清漆层', com: 'Slider', min: 0, max: 1, step: 0.01 },
- clearcoatRoughness: { name: '清漆粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- attenuationDistance: { name: '吸收距离', com: 'Slider', min: 0, max: 12, step: 0.01 },
- normalStrength: { name: '雨滴法线强度', com: 'Slider', min: 0, max: 2, step: 0.01 },
- dropletRoughness: { name: '雨滴粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- dropletGlow: { name: '雨滴高光增强', com: 'Slider', min: 0, max: 1, step: 0.01 },
- rainAmount: { name: '雨量强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- minDropRadius: { name: '最小雨滴半径', com: 'Slider', min: 6, max: 60, step: 1 },
- maxDropRadius: { name: '最大雨滴半径', com: 'Slider', min: 10, max: 100, step: 1 },
- rainChance: { name: '落滴概率', com: 'Slider', min: 0, max: 1, step: 0.01 },
- rainLimit: { name: '单帧落滴上限', com: 'Slider', min: 0, max: 20, step: 1 },
- dropletsRate: { name: '微滴生成速率', com: 'Slider', min: 0, max: 400, step: 1 },
- dropletSizeMin: { name: '微滴最小尺寸', com: 'Slider', min: 0.5, max: 12, step: 0.1 },
- dropletSizeMax: { name: '微滴最大尺寸', com: 'Slider', min: 1, max: 18, step: 0.1 },
- globalTimeScale: { name: '全局时间倍率', com: 'Slider', min: 0, max: 3, step: 0.01 },
- trailRate: { name: '拖尾速率', com: 'Slider', min: 0, max: 3, step: 0.01 },
- collisionRadius: { name: '碰撞半径', com: 'Slider', min: 0.1, max: 1.2, step: 0.01 },
- collisionRadiusIncrease: { name: '碰撞增量', com: 'Slider', min: 0, max: 0.01, step: 0.0001 },
- opacity: { name: '整体透明度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- },
- },
- {
- name: '魔法炫光技能',
- type: 'radiantSwirlSkillComponent',
- comFile: './src/components/radiantSwirlSkillComponent.vue',
- previewPath: './preview/radiantSwirlSkillComponent.png',
- description: '基于 shader 的 4 阶段技能炫光效果:从散射光叶逐步汇聚到完整能量环与核心光球。',
- default: {
- animationSpeed: 0.6,
- autoAnimate: true,
- baseColor: '#0d3b1a',
- bladeCount: 9,
- coreColor: '#e8ffc7',
- coreIntensity: 1.8,
- glowColor: '#7cff4c',
- highlightColor: '#d6ff86',
- noiseScale: 1.2,
- opacity: 1,
- progress: 0.5,
- radius: 4,
- sparkleIntensity: 1,
- swirlIntensity: 2.4,
- },
- defaultObject3D: {
- position: { x: 0, y: 0.05, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- autoAnimate: { name: '自动循环', com: 'Switch' },
- animationSpeed: { name: '动画速度', com: 'Slider', min: -1, max: 1, step: 0.01 },
- progress: { name: '手动进度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- radius: { name: '可视范围', com: 'Slider', min: 0.5, max: 30, step: 0.1 },
- bladeCount: { name: '叶片条数', com: 'Slider', min: 1, max: 32, step: 1 },
- swirlIntensity: { name: '螺旋强度', com: 'Slider', min: 0, max: 8, step: 0.05 },
- noiseScale: { name: '细节粒度', com: 'Slider', min: 0.1, max: 6, step: 0.05 },
- coreIntensity: { name: '核心强度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- sparkleIntensity: { name: '火花亮度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- opacity: { name: '整体透明度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- baseColor: { name: '底色', com: 'ColorPicker' },
- glowColor: { name: '叶片光色', com: 'ColorPicker' },
- highlightColor: { name: '高光色', com: 'ColorPicker' },
- coreColor: { name: '核心色', com: 'ColorPicker' },
- },
- },
- {
- name: '视频2D投射',
- type: 'video2DProjectionComponent',
- comFile: './src/components/video2DProjectionComponent.vue',
- previewPath: './preview/video2DProjectionComponent.svg',
- description: '参考 Mars3D Video2D 的视频投射可视化组件,使用 VideoTexture 将示例视频投射到视锥远端平面。',
- default: {
- angle: 46,
- angle2: 25,
- distance: 6,
- flipX: false,
- frustumColor: '#00ffff',
- heading: 0,
- opacity: 0.95,
- pitch: -20,
- showFrustum: true,
- stRotationDegree: 0,
- videoTint: '#ffffff',
- },
- defaultObject3D: {
- position: { x: 0, y: 3, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- videoPlay: { name: '播放', com: 'ActionButton', action: 'videoPlay' },
- videoPause: { name: '暂停', com: 'ActionButton', action: 'videoPause' },
- videoStop: { name: '停止', com: 'ActionButton', action: 'videoStop' },
- showFrustum: { name: '视锥线框', com: 'Switch' },
- flipX: { name: '水平镜像', com: 'Switch' },
- angle: { name: '水平张角°', com: 'Slider', min: 1, max: 120, step: 0.1 },
- angle2: { name: '垂直张角°', com: 'Slider', min: 1, max: 120, step: 0.1 },
- heading: { name: '方向角°', com: 'Slider', min: -180, max: 180, step: 0.1 },
- pitch: { name: '俯仰角°', com: 'Slider', min: -89, max: 89, step: 0.1 },
- distance: { name: '投射距离', com: 'Slider', min: 0.1, max: 100, step: 0.1 },
- stRotationDegree: { name: '贴图旋转°', com: 'Slider', min: 0, max: 360, step: 1 },
- opacity: { name: '视频透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- videoTint: { name: '视频染色', com: 'ColorPicker' },
- frustumColor: { name: '视锥颜色', com: 'ColorPicker' },
- },
- },
- {
- name: '模型生三维粒子器',
- type: 'modelParticleGeneratorComponent',
- comFile: './src/components/modelParticleGeneratorComponent/index.vue',
- previewPath: './preview/modelParticleGeneratorComponent.svg',
- description: '通过 URL 加载一个 GLB 模型(支持 DRACO 压缩),对其网格表面采样,生成随风飘动的粒子拖尾效果。',
- default: {
- "modelUrl": "https://oss.icegl.cn/p/modelServer/models/3%E8%88%B9/models/游轮C.glb",
- "modelUrlDraft": "https://oss.icegl.cn/p/modelServer/models/3%E8%88%B9/models/游轮C.glb",
- "outlineDensity": 0.08,
- "particleSpeed": 1.5,
- "trailLength": 2.5,
- "windAzimuth": -90,
- "windElevation": 0,
- "particleDensity": 0.62,
- "trailDensity": 0.05,
- "colorScheme": "ice",
- "particleSize": 0.1,
- "particleSizeMultiplier": 0.05,
- "opacity": 1,
- "turbulence": 0.05,
- "showModel": true,
- "modelOpacity": 1,
- "offsetX": -1.3,
- "offsetY": 0,
- "offsetZ": 0
- },
- defaultObject3D: {
- position: { x: 0, y: 0.5, z: 0 },
- scale: { x: 1, y: 1, z: 1 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- modelUrlDraft: { name: '模型 URL', com: 'Text' },
- applyModelUrl: { name: '确认生成', com: 'ActionButton', action: 'applyModelUrlAction' },
- clearModel: { name: '清除模型', com: 'ActionButton', action: 'clearModel' },
- showModel: { name: '显示模型', com: 'Switch' },
- modelOpacity: { name: '模型透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- colorScheme: {
- name: '渐变色系',
- com: 'Select',
- options: [
- { label: '火焰', value: 'fire' },
- { label: '冰蓝', value: 'ice' },
- { label: '星云', value: 'nebula' },
- { label: '毒绿', value: 'toxic' },
- { label: '黄金', value: 'gold' },
- { label: '彩虹', value: 'rainbow' },
- ],
- },
- outlineDensity: { name: '轮廓抽稀密度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- particleDensity: { name: '粒子密度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- trailDensity: { name: '拖尾密度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- particleSize: { name: '粒子尺寸', com: 'Slider', min: 0.1, max: 2, step: 0.01 },
- particleSizeMultiplier: { name: '粒子大小倍数', com: 'Slider', min: 0.05, max: 20, step: 0.05 },
- opacity: { name: '粒子不透明度', com: 'Slider', min: 0.05, max: 1, step: 0.01 },
- particleSpeed: { name: '粒子速度', com: 'Slider', min: 0, max: 6, step: 0.05 },
- trailLength: { name: '拖尾长度', com: 'Slider', min: 0.1, max: 20, step: 0.1 },
- windAzimuth: { name: '风向方位角°', com: 'Slider', min: -180, max: 180, step: 1 },
- windElevation: { name: '风向仰角°', com: 'Slider', min: -89, max: 89, step: 1 },
- turbulence: { name: '扰动强度', com: 'Slider', min: 0, max: 4, step: 0.05 },
- offsetX: { name: '粒子偏移 X', com: 'Slider', min: -10, max: 10, step: 0.05 },
- offsetY: { name: '粒子偏移 Y', com: 'Slider', min: -10, max: 10, step: 0.05 },
- offsetZ: { name: '粒子偏移 Z', com: 'Slider', min: -10, max: 10, step: 0.05 },
- },
- },
- {
- name: 'GNM 参数化人头',
- type: 'gnmHeadComponent',
- comFile: './src/components/gnmHeadComponent/index.vue',
- previewPath: './preview/gnmHeadComponent.svg',
- description: '基于 Google GNM Head 浏览器数值实现的参数化人头组件;动态载入后立即显示轻量 3D loading,主模型与语义采样器分阶段按需下载,支持确定性身份/表情、头眼姿态、皮肤透明度与非皮肤解剖显隐,不创建相机、灯光、控制器或场景级 UI。',
- default: {
- ...GNM_HEAD_DEFAULTS,
- },
- defaultObject3D: {
- position: { x: 0, y: -1.15, z: 0 },
- scale: { x: 5, y: 5, z: 5 },
- rotation: { x: 0, y: 0, z: 0 },
- },
- config: {
- headUrl: { name: '头部模型 URL', com: 'Text' },
- samplerUrl: { name: '语义采样器 URL', com: 'Text' },
- identitySeed: { name: '身份种子', com: 'Slider', min: 0, max: 100000, step: 1 },
- identityStrength: { name: '身份强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- expressionSeed: { name: '表情种子', com: 'Slider', min: 0, max: 100000, step: 1 },
- expressionClass: {
- name: '表情类别',
- com: 'Select',
- options: GNM_EXPRESSION_OPTIONS.map(option => ({ ...option })),
- },
- expressionStrength: { name: '表情强度', com: 'Slider', min: 0, max: 3, step: 0.01 },
- headPitch: { name: '头部俯仰°', com: 'Slider', min: -45, max: 45, step: 1 },
- headYaw: { name: '头部偏航°', com: 'Slider', min: -70, max: 70, step: 1 },
- headRoll: { name: '头部翻滚°', com: 'Slider', min: -45, max: 45, step: 1 },
- eyePitch: { name: '眼球俯仰°', com: 'Slider', min: -35, max: 35, step: 1 },
- eyeYaw: { name: '眼球偏航°', com: 'Slider', min: -45, max: 45, step: 1 },
- skinColor: { name: '皮肤颜色', com: 'ColorPicker' },
- irisColor: { name: '虹膜颜色', com: 'ColorPicker' },
- roughness: { name: '材质粗糙度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- metalness: { name: '材质金属度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- skinOpacity: { name: '皮肤透明度', com: 'Slider', min: 0, max: 1, step: 0.01 },
- showEyes: { name: '显示双眼', com: 'Switch' },
- showTeethGums: { name: '显示牙齿牙龈', com: 'Switch' },
- showTongue: { name: '显示舌头', com: 'Switch' },
- },
- },
- ],
- }
- export default config
|