index.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. const base = {
  2. name: '基础能力',
  3. tag: 'func',
  4. childArr: [
  5. {
  6. name: 'Geometry',
  7. label: '基础图形',
  8. path: '/pages/basic/scene-basic/index',
  9. },
  10. {
  11. name: 'Alpha',
  12. label: '透明画布',
  13. path: '/pages/basic/scene-basic-alpha/index',
  14. },
  15. {
  16. name: 'Light',
  17. label: '多光源',
  18. path: '/pages/basic/scene-basic-light/index',
  19. },
  20. {
  21. name: 'Animation',
  22. label: '动画',
  23. path: '/pages/basic/scene-basic-animation/index',
  24. },
  25. {
  26. name: 'Video',
  27. label: '视频纹理',
  28. path: '/pages/basic/scene-basic-video/index',
  29. },
  30. {
  31. name: 'Interaction',
  32. label: '交互',
  33. path: '/pages/basic/scene-basic-touch/index',
  34. },
  35. {
  36. name: 'Share',
  37. label: '录屏和截频',
  38. path: '/pages/basic/scene-basic-share/index',
  39. },
  40. {
  41. name: 'VisibleLayer',
  42. label: '显示和图层',
  43. path: '/pages/basic/scene-basic-visible-layer/index',
  44. },
  45. {
  46. name: 'Shadow',
  47. label: '动态节点',
  48. path: '/pages/basic/scene-basic-shadow/index',
  49. },
  50. {
  51. name: 'RenderTexture',
  52. label: '渲染目标',
  53. path: '/pages/basic/scene-basic-render-texture/index',
  54. },
  55. {
  56. name: 'PostProcessing',
  57. label: '后处理效果',
  58. path: '/pages/basic/scene-basic-postprocessing/index'
  59. },
  60. {
  61. name: 'EnvData',
  62. label: '全局环境数据与局部环境数据',
  63. path: '/pages/basic/scene-basic-envData/index',
  64. },
  65. ],
  66. };
  67. const gltf = {
  68. name: 'glTF能力',
  69. tag: 'func',
  70. childArr: [{
  71. name: 'Standard',
  72. label: '标准金属头盔',
  73. path: '/pages/gltf/scene-gltf-damageHelmet/index',
  74. },
  75. {
  76. name: 'Unlit',
  77. label: '无光照材质卡通模型',
  78. path: '/pages/gltf/scene-gltf-unlit/index',
  79. },
  80. {
  81. name: 'Loading',
  82. label: '加载界面与多光源场景',
  83. path: '/pages/gltf/scene-gltf-light-loading/index',
  84. },
  85. {
  86. name: 'Animation',
  87. label: 'gltf动画',
  88. path: '/pages/gltf/scene-gltf-animation/index',
  89. },
  90. {
  91. name: 'Morph',
  92. label: 'gltf morph',
  93. path: '/pages/gltf/scene-gltf-morph/index',
  94. },
  95. {
  96. name: '扩展',
  97. label: '压缩纹理',
  98. path: '/pages/gltf/scene-gltf-compressTextures/index',
  99. },
  100. {
  101. name: '扩展',
  102. label: 'KHR_texture_transform',
  103. path: '/pages/gltf/scene-gltf-textureTransform/index',
  104. },
  105. {
  106. name: '扩展',
  107. label: 'KHR_materials_pbrSpecularGlossiness',
  108. path: '/pages/gltf/scene-gltf-specularGlossiness/index',
  109. },
  110. {
  111. name: '扩展',
  112. label: 'KHR_materials_sheen',
  113. path: '/pages/gltf/scene-gltf-sheen/index',
  114. },
  115. {
  116. name: '扩展',
  117. label: 'KHR_materials_transmission',
  118. path: '/pages/gltf/scene-gltf-transmission/index',
  119. },
  120. {
  121. name: '扩展',
  122. label: 'KHR_lights_punctual',
  123. path: '/pages/gltf/scene-gltf-lightsPunctual/index',
  124. },
  125. ],
  126. };
  127. const ar = {
  128. name: 'AR能力',
  129. tag: 'func',
  130. childArr: [{
  131. name: 'Camera',
  132. label: 'AR 相机渲染',
  133. path: '/pages/ar/scene-ar-camera/index',
  134. },
  135. {
  136. name: 'Basic',
  137. label: 'AR 平面识别',
  138. path: '/pages/ar/scene-ar-basic/index',
  139. },
  140. {
  141. name: 'ThreeDof',
  142. label: 'AR 相机旋转',
  143. path: '/pages/ar/scene-ar-threeDof/index',
  144. },
  145. {
  146. name: '2DMarker',
  147. label: 'AR 2DMarker',
  148. path: '/pages/ar/scene-ar-2dmarker/index',
  149. },
  150. {
  151. name: 'OSDMarker',
  152. label: 'AR OSDMarker',
  153. path: '/pages/ar/scene-ar-osdmarker/index',
  154. },
  155. {
  156. name: 'Face',
  157. label: 'AR 人脸',
  158. path: '/pages/ar/scene-ar-face/index',
  159. },
  160. {
  161. name: 'Hand',
  162. label: 'AR 人手',
  163. path: '/pages/ar/scene-ar-hand/index',
  164. },
  165. {
  166. name: 'Body',
  167. label: 'AR 人体',
  168. path: '/pages/ar/scene-ar-body/index',
  169. },
  170. {
  171. name: 'Plane+Marker',
  172. label: 'AR 平面 Marker融合',
  173. path: '/pages/ar/scene-ar-vio-marker/index',
  174. },
  175. {
  176. name: 'Plane+Depth',
  177. label: 'AR 平面深度剔除',
  178. path: '/pages/ar/scene-ar-vio-depth/index',
  179. },
  180. ],
  181. };
  182. const physics = {
  183. name: '物理能力',
  184. tag: 'func',
  185. childArr: [
  186. {
  187. name: 'Shoot',
  188. label: '射击积木',
  189. path: '/pages/physics/scene-physics-shoot/index'
  190. },
  191. {
  192. name: 'Throw',
  193. label: '投球入筐',
  194. path: '/pages/physics/scene-physics-throw/index'
  195. }
  196. ]
  197. };
  198. const particle = {
  199. name: '粒子能力',
  200. tag: 'func',
  201. childArr: [
  202. {
  203. name: 'Firework',
  204. label: '喷射烟火',
  205. path: '/pages/particle/scene-particle-firework/index'
  206. },
  207. {
  208. name: 'Portal',
  209. label: '传送门',
  210. path: '/pages/particle/scene-particle-portal/index'
  211. },
  212. {
  213. name: 'Orb',
  214. label: '闪电光球',
  215. path: '/pages/particle/scene-particle-orb/index'
  216. },
  217. {
  218. name: 'ShapeEmitter',
  219. label: '球形发射器',
  220. path: '/pages/particle/scene-particle-shapeEmitter/index'
  221. },
  222. {
  223. name: 'MeshEmitter',
  224. label: '网格发射器',
  225. path: '/pages/particle/scene-particle-meshEmitter/index'
  226. },
  227. {
  228. name: 'HumanFace',
  229. label: '自定义粒子系统',
  230. path: '/pages/particle/scene-particle-custom/index'
  231. },
  232. ]
  233. };
  234. const customParticle = {
  235. name: '粒子定制能力',
  236. tag: 'func',
  237. childArr: [
  238. {
  239. name: 'Firework',
  240. label: '喷射烟火',
  241. path: '/pages/customParticle/scene-customParticle-firework/index'
  242. },
  243. {
  244. name: 'Portal',
  245. label: '传送门',
  246. path: '/pages/customParticle/scene-customParticle-portal/index'
  247. },
  248. {
  249. name: 'Orb',
  250. label: '闪电光球',
  251. path: '/pages/customParticle/scene-customParticle-orb/index'
  252. },
  253. {
  254. name: 'ShapeEmitter',
  255. label: '球形发射器',
  256. path: '/pages/customParticle/scene-customParticle-shapeEmitter/index'
  257. },
  258. {
  259. name: 'MeshEmitter',
  260. label: '网格发射器',
  261. path: '/pages/customParticle/scene-customParticle-meshEmitter/index'
  262. }
  263. ]
  264. };
  265. const custom = {
  266. name: '高级定制',
  267. tag: 'func',
  268. childArr: [
  269. {
  270. name: 'Logic',
  271. label: '定制组件和元素',
  272. path: '/pages/custom/scene-custom-logic/index',
  273. },
  274. {
  275. name: 'Render',
  276. label: '定制渲染资源',
  277. path: '/pages/custom/scene-custom-render/index',
  278. }
  279. ]
  280. };
  281. const messageTemplate = {
  282. name: '混合通信、资源加载、互动',
  283. tag: 'template',
  284. childArr: [
  285. {
  286. name: 'Message',
  287. label: '小程序混合通信',
  288. path: '/pages/template/xr-template-message/index',
  289. },
  290. {
  291. name: 'Loading',
  292. label: '动态资源加载与使用',
  293. path: '/pages/template/xr-template-loading/index',
  294. },
  295. {
  296. name: 'Controller',
  297. label: '第一人称漫游',
  298. path: '/pages/template/xr-template-control/index',
  299. },
  300. {
  301. name: 'Touch',
  302. label: '点选物体与动画控制',
  303. path: '/pages/template/xr-template-select/index',
  304. },
  305. ],
  306. };
  307. const arTemplate = {
  308. name: '常用AR定制能力',
  309. tag: 'template',
  310. childArr: [
  311. {
  312. name: 'Marker',
  313. label: '动态多Tracker切换(图片识别)',
  314. path: '/pages/template/xr-template-tracker/index',
  315. },
  316. {
  317. name: 'Marker',
  318. label: '识别后固定模型,在屏幕中间',
  319. path: '/pages/template/xr-template-markerCenter/index',
  320. },
  321. {
  322. name: 'Plane+Marker',
  323. label: '识别后固定模型,在世界空间',
  324. path: '/pages/template/xr-template-markerLock/index',
  325. },
  326. {
  327. name: 'Plane',
  328. label: '世界空间,动态创建连线',
  329. path: '/pages/template/xr-template-arLine/index',
  330. },
  331. {
  332. name: 'Plane',
  333. label: '模型摆放与手势控制',
  334. path: '/pages/template/xr-template-arPreview/index',
  335. },
  336. {
  337. name: 'AR',
  338. label: '模型控制朝向(面向屏幕的面片与模型)',
  339. path: '/pages/template/xr-template-lookat/index',
  340. },
  341. {
  342. name: 'AR',
  343. label: '平面模式下的 UI 面板',
  344. path: '/pages/template/xr-template-arui/index',
  345. },
  346. ],
  347. };
  348. const customTemplate = {
  349. name: '常用定制(材质、几何体、流程)',
  350. tag: 'template',
  351. childArr: [
  352. {
  353. name: 'Geometry',
  354. label: '定制每帧变化的Geometry',
  355. path: '/pages/template/xr-template-geometry/index',
  356. },
  357. {
  358. name: 'Effect',
  359. label: '模型切换为卡通渲染(自定义多pass)',
  360. path: '/pages/template/xr-template-toon/index',
  361. },
  362. {
  363. name: 'Effect',
  364. label: '透明平面阴影',
  365. path: '/pages/template/xr-template-planeShadow/index',
  366. },
  367. {
  368. name: 'Effect',
  369. label: '序列帧动画(雪碧图、GIF)',
  370. path: '/pages/template/xr-template-frameEffect/index',
  371. },
  372. {
  373. name: 'Video',
  374. label: '过滤黑色背景视频',
  375. path: '/pages/template/xr-template-removeBlack/index',
  376. },
  377. ],
  378. };
  379. const gltfEditTemplate = {
  380. name: 'glTF动态修改',
  381. tag: 'template',
  382. childArr: [
  383. {
  384. name: 'glTF',
  385. label: '模型更换贴图',
  386. path: '/pages/template/xr-template-gltfEdit/index',
  387. },
  388. {
  389. name: 'glTF',
  390. label: '模型动画(脚本、骨骼)',
  391. path: '/pages/template/xr-template-gltfAnimation/index',
  392. },
  393. {
  394. name: 'glTF',
  395. label: '设置 glTF 为遮挡模型',
  396. path: '/pages/template/xr-template-gltfOcclusion/index',
  397. },
  398. {
  399. name: 'glTF',
  400. label: '添加模型内UV动画',
  401. path: '/pages/template/xr-template-gltfUVAnimation/index',
  402. },
  403. {
  404. name: 'glTF',
  405. label: '双面半透明模型渲染',
  406. path: '/pages/template/xr-template-blendDouble/index',
  407. },
  408. ],
  409. };
  410. const toolTemplate = {
  411. name: '通用基础能力',
  412. tag: 'template',
  413. childArr: [
  414. {
  415. name: 'Share',
  416. label: '截图与分享',
  417. path: '/pages/template/xr-template-share/index',
  418. }
  419. // {
  420. // name: 'Video',
  421. // label: '滤色视频(定制化渲染流程)',
  422. // path: '/pages/scene-custom-render/index',
  423. // },
  424. // {
  425. // name: 'Video',
  426. // label: '视频羽化(自定义材质)',
  427. // path: '/pages/template/xr-template-featherVideo/index',
  428. // },
  429. ]
  430. };
  431. const classic = {
  432. name: 'AR典型案例',
  433. tag: 'case',
  434. childArr: [
  435. {
  436. name: 'Perspect',
  437. label: '扫描透视模型',
  438. path: '/pages/ar-classic/scene-classic-perspect/index',
  439. },
  440. {
  441. name: 'Portal',
  442. label: '平面传送门',
  443. path: '/pages/ar-classic/scene-classic-portal/index',
  444. },
  445. {
  446. name: 'Video',
  447. label: '扫描图片视频',
  448. path: '/pages/ar-classic/scene-classic-video/index',
  449. },
  450. {
  451. name: 'OSD',
  452. label: '扫描物体查看信息',
  453. path: '/pages/ar-classic/scene-classic-osd/index',
  454. },
  455. {
  456. name: 'Face',
  457. label: '人脸穿戴案例',
  458. path: '/pages/ar-classic/scene-classic-face/index',
  459. },
  460. {
  461. name: 'Ball',
  462. label: '扫描微信球',
  463. path: '/pages/ar-classic/scene-classic-wxball/index',
  464. }
  465. ],
  466. };
  467. const scan = {
  468. name: '扫描还原案例',
  469. tag: 'case',
  470. childArr: [
  471. {
  472. name: 'Render',
  473. label: '扫描渲染案例(全景、模型)',
  474. path: '/pages/scan/scene-scan-render/index',
  475. },
  476. {
  477. name: 'XRFrameTeam',
  478. label: '卡其脱离太',
  479. path: '/pages/scan/scene-scan-team/index',
  480. }
  481. ],
  482. };
  483. const production = {
  484. name: '产品级案例',
  485. tag: 'case',
  486. childArr: [
  487. {
  488. name: 'Beside Edge',
  489. label: '边缘迷走',
  490. path: '/pages/scene-beside-edge/index'
  491. },
  492. {
  493. name: '',
  494. label: '■■■■',
  495. path: '/pages/scene-last-record/index'
  496. }
  497. ]
  498. };
  499. export default [base, ar, gltf, physics, particle, customParticle, custom, messageTemplate, arTemplate, customTemplate, gltfEditTemplate, toolTemplate, classic, scan, production];