日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)百度小程序教程:modelviewer VR 3D 模型-beta
  • modelviewer VR 3D 模型-beta
    • 使用方法
      • 1. 在項(xiàng)目中引用動態(tài)庫
      • 2. 在使用到模型組件的頁面配置動態(tài)庫
      • 3. 編寫 *.swan 文件
    • 動態(tài)庫配置文件詳細(xì)說明
      • 動態(tài)庫屬性列表
      • 總配置
      • 相機(jī)配置
      • 場景配置
      • 全景設(shè)置
      • 動畫設(shè)置
      • 光照設(shè)置
      • 熱點(diǎn)配置

    modelviewer VR 3D 模型-beta

    modelviewer 動態(tài)庫提供了在小程序中展示 3D 模型功能,底層基于百度 webVR SDK Hydreigon 實(shí)現(xiàn)。

    使用方法

    1. 在項(xiàng)目中引用動態(tài)庫

    使用動態(tài)庫的方法參見小程序文檔使用動態(tài)庫,在app.json中增添一項(xiàng)dynamicLib,與pages同級。

    • JSON
     
     
     
    1. "dynamicLib": {
    2. "myModelviewer": {
    3. "provider": "modelviewer"
    4. }
    5. },

    2. 在使用到模型組件的頁面配置動態(tài)庫

    在每個使用到模型組件的頁面,配置*.json文件如:

    • JSON
     
     
     
    1. {
    2. "usingSwanComponents": {
    3. "modelviewer": "dynamicLib://myModelviewer/modelviewer"
    4. }
    5. }

    3. 編寫 *.swan 文件

    • SWAN
     
     
     

    這是一種最基本的配置方式。style也可以在*.css中聲明,需要保證是有寬度和高度的。option*.js中綁定到頁面的 data 中:

    • JS
     
     
     
    1. const option = ...;
    2. Page({
    3. data: {
    4. option: option
    5. }
    6. });

    其中,option 是一個模型展示配置項(xiàng),定義了模型應(yīng)該如何展示,示例如下:

    • JS
     
     
     
    1. option = {
    2. "autoStart": true,
    3. "parent": "body",
    4. "backgroundImage": "https://bj.bcebos.com/v1/hydreigon-dev/sdk-dev/dist/assets/bg.jpg",
    5. "camera": {
    6. "fov": "65",
    7. "position": [
    8. 0,
    9. 0,
    10. 0
    11. ],
    12. "near": 1,
    13. "far": 10000
    14. },
    15. "scenes": [
    16. {
    17. "pano": {
    18. "url": "https://bj.bcebos.com/v1/hydreigon-dev/sdk-dev/dist/assets/model/bio/skybox.jpg",
    19. "radius": 800,
    20. "rotation": 0,
    21. "position": [0, 0, -0]
    22. },
    23. "scale": 1,
    24. "animationSettings": {
    25. "111": {
    26. "startAt": 0,
    27. "duration": 3.6
    28. }
    29. },
    30. "lights": [
    31. {
    32. "type": "AmbientLight",
    33. "params": {
    34. "color": 16777215,
    35. "intensity": 1
    36. }
    37. },
    38. {
    39. "type": "DirectionalLight",
    40. "params": {
    41. "color": 16777215,
    42. "intensity": 1,
    43. "position": [
    44. 1,
    45. 1,
    46. 1
    47. ]
    48. }
    49. },
    50. {
    51. "type": "SpotLight",
    52. "params": {
    53. "color": 16777215,
    54. "intensity": 1,
    55. "position": [
    56. 1,
    57. 1,
    58. 1
    59. ],
    60. "distance": 0,
    61. "angle": 1.57,
    62. "penumbra": 0.5,
    63. "decay": 1
    64. }
    65. }
    66. ],
    67. "backgroundImage": "https://bj.bcebos.com/v1/hydreigon-dev/sdk-dev/dist/assets/bg.jpg",
    68. "autoPlayAnimation": "111",
    69. "showLabels": false,
    70. "url": "https://hydreigon-publish.bj.bcebos.com/swan-hydreigon/model/new_robot/scene.gltf",
    71. "bg": "https://bj.bcebos.com/v1/hydreigon-dev/sdk-dev/dist/assets/bg.jpg",
    72. "offset": [
    73. 0,
    74. -25,
    75. 0
    76. ],
    77. "hotspots": [
    78. {
    79. "text": "右上臂",
    80. "position": [
    81. -0.7,
    82. 1.2,
    83. 0
    84. ],
    85. "parentName": "右上臂",
    86. "events": {
    87. "click": {
    88. "type": "highlight",
    89. "color": [
    90. 0.096,
    91. 0.359,
    92. 0.757
    93. ],
    94. "duration": 1000,
    95. "times": 3
    96. }
    97. }
    98. },
    99. {
    100. "text": "左下臂",
    101. "position": [
    102. 0.7,
    103. 0.6,
    104. 0
    105. ],
    106. "parentName": "左下臂",
    107. "events": {
    108. "click": {
    109. "type": "highlight",
    110. "color": [
    111. 0.096,
    112. 0.359,
    113. 0.757
    114. ],
    115. "duration": 1000,
    116. "times": 3
    117. }
    118. }
    119. },
    120. {
    121. "text": "膝蓋",
    122. "position": [
    123. 0,
    124. 0.5,
    125. 0
    126. ],
    127. "parentName": "膝蓋",
    128. "events": {
    129. "click": {
    130. "type": "highlight",
    131. "color": [
    132. 0.096,
    133. 0.359,
    134. 0.757
    135. ],
    136. "duration": 1000,
    137. "times": 3
    138. }
    139. }
    140. }
    141. ]
    142. }
    143. ]
    144. };

    動態(tài)庫配置文件詳細(xì)說明

    動態(tài)庫屬性列表

    上支持的屬性包括:

    屬性名稱類型說明
    optionObject配置項(xiàng),參見上方參數(shù)說明列表

    總配置

    屬性名稱必填默認(rèn)值說明
    autoStarttrue是否
    parent“body”父級容器的 dom 元素匹配 css 表達(dá)式
    backgroundImage“”設(shè)置全局 2D 背景圖,該背景圖設(shè)置全局有效,可被 scene 的配置覆蓋
    camera設(shè)置相機(jī)配置參數(shù),具體設(shè)置請看 camera 配置表
    scenes設(shè)置場景配置參數(shù),可以配置任意數(shù)量的場景,可以通過熱點(diǎn)進(jìn)行場景切換。所有的場景只會在用到時加載自己所需資源。且在切換為新場景時,舊場景不會被銷毀,從而再次進(jìn)入舊場景則可以直接展示,無需用戶等待

    相機(jī)配置

    屬性名稱必填默認(rèn)值說明
    fov65調(diào)整透視相機(jī) fov
    position{x: 0, y:0, z:0}相機(jī)初始位置坐標(biāo)
    near1調(diào)整相機(jī)近截面距離
    far10000調(diào)整相機(jī)遠(yuǎn)截面距離

    場景配置

    場景是一個數(shù)組,每個數(shù)組元素都是獨(dú)立的場景

    屬性名稱必填默認(rèn)值說明
    panonull全景設(shè)置。該全景圖會出現(xiàn)在場景里面,會覆蓋 2D 背景圖
    scale1模型縮放
    animationsnull用于額外修改模型動畫默認(rèn)參數(shù)的配置。詳見動畫設(shè)置
    lightsnull用于設(shè)置光照,是個數(shù)組,可以配置任意數(shù)量和不同類型的光照。如果不配置則會 SDK 默認(rèn)添加一組光照。詳見光照設(shè)置
    backgroundImagenull圖片的 url 。用于設(shè)置該場景的 2D 背景圖,該設(shè)置填寫之后會覆蓋全局配置
    autoPlayAnimationnull是否進(jìn)入該場景之后自動播放某個名稱的動畫
    showLabelsfalse是否進(jìn)入該場景后自動顯示所有熱點(diǎn)
    url模型的 url 。為了提高展示性能以及縮短用戶的等待時間,SDK 只支持 gltf 和 glb 格式。并且推薦開發(fā)者的模型進(jìn)行 draco 編碼壓縮
    offset{x: 0, y:0, z:0}模型默認(rèn)位置的偏移量。由于絕大部分情況模型建模的原點(diǎn)在模型的底部,從而在展示的時候總是偏向于上方。為了更好的用戶體驗(yàn)通常需要模型居中展示,通過次參數(shù)進(jìn)行調(diào)整
    hotspots[]可以配置任意數(shù)量的熱點(diǎn)進(jìn)行一些交互操作。具體的參數(shù)設(shè)置參見熱點(diǎn)配置

    全景設(shè)置

    屬性名稱必填默認(rèn)值說明
    url“”如果設(shè)置則會創(chuàng)建球面全景圖
    radius800設(shè)置全景圖球體的半徑
    rotation0全景圖球體在 y 軸上的旋轉(zhuǎn)弧度
    position[0, 0, -0]全景圖的位置偏移,數(shù)組長度為 3 ,對應(yīng) x,y,z 坐標(biāo)

    動畫設(shè)置

    動畫配置為鍵值對形式,通常情況無需配置,只有對某些動畫需要額外處理的時候才需要配置。其中 key 為某個動畫的名稱,其 value 值說明如下

    屬性名稱必填默認(rèn)值說明
    startAt0
    durationInfinity

    光照設(shè)置

    光照設(shè)置是個數(shù)組,可以設(shè)置點(diǎn)錐形源,平行光,環(huán)境光。不同的光有不同的配置參數(shù)。如下所示:

    錐形光

    屬性名稱必填默認(rèn)值說明
    typeSpotLighttype 必須為 SpotLight
    params.color0xffffff顏色值,可以為數(shù)字,也可以為#開頭的字符串,如#FFFFFF,也可以為顏色英文名稱,如white
    params.intensity1光照強(qiáng)度
    params.position[1, 1, 1]光源的位置,數(shù)組長度為 3 ,對應(yīng) x,y,z 坐標(biāo)
    distance0光的最遠(yuǎn)照射距離。0:無窮遠(yuǎn)
    angle1.57設(shè)置錐角弧度大小
    decay1衰減率。離光越遠(yuǎn),光照強(qiáng)度越弱。1:不衰減。取值為 0 到 1 之間

    平行光

    屬性名稱必填默認(rèn)值說明
    typeDirectionalLighttype 必須為 DirectionalLight
    params.color0xffffff顏色值,可以為數(shù)字,也可以為 # 開頭的字符串,如#FFFFFF,也可以為顏色英文名稱,如white
    params.intensity1光照強(qiáng)度
    params.position[1, 1, 1]光源的位置,數(shù)組長度為 3 ,對應(yīng) x,y,z 坐標(biāo)

    環(huán)境光

    屬性名稱必填默認(rèn)值說明
    typeDirectionalLighttype 必須為 AmbientLight
    params.color0xffffff顏色值,可以為數(shù)字,也可以為#開頭的字符串,如#FFFFFF,也可以為顏色英文名稱,如white
    params.intensity1光照強(qiáng)度

    熱點(diǎn)配置

    熱點(diǎn)目前支持 2 種交互操作,一種是模型部位的高亮。一種是場景的切換跳轉(zhuǎn)。整個的熱點(diǎn)配置是個數(shù)組,數(shù)組的每個元素對應(yīng)一個熱點(diǎn)。熱點(diǎn)是 dom 元素而非 WebGL 繪制,因此熱點(diǎn)始終會比模型的層級更高。具體配置如下。

    屬性名稱必填默認(rèn)值說明
    text用于熱點(diǎn)顯示的文本
    position熱點(diǎn)相對于 3D 場景掛載的模型節(jié)點(diǎn)的位置,數(shù)組長度為 3 ,對應(yīng) x,y,z 坐標(biāo)
    parentName熱點(diǎn)所掛載的模型節(jié)點(diǎn)的網(wǎng)格或組的名稱
    events{}用于配置熱點(diǎn)的交互。如果是{}則不會出現(xiàn)任何交互操作
    events.clickevents 可以設(shè)置一些交互操作名稱,例如 click ,則交互操作在 click 事件觸發(fā)
    events.click.type取值為 highlight 或者 jump ,分別對應(yīng)模型高度操作以及場景跳轉(zhuǎn)操作
    events.click.color[1,1,1]模型高亮的顏色,采用的是和著色器的顏色取值,必須是 0 到 1 之間的數(shù)字
    events.click.duration1000模型高亮是一種呼吸燈的忽明忽暗效果,這個是亮變暗的時間
    events.click.timesInfinity呼吸燈高亮次數(shù)

    網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)百度小程序教程:modelviewer VR 3D 模型-beta
    網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/dpdejjp.html