国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

three.js實現(xiàn)vr全景圖(vue)

這篇具有很好參考價值的文章主要介紹了three.js實現(xiàn)vr全景圖(vue)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

方法: 可以利用Threejs中的立方體或者球體實現(xiàn)全景圖功能,把立方體或球體當成天空盒子,將無縫銜接的圖片貼上,看起來就像在一個場景中,相機一般放置在中央。
three.js中文網(wǎng)

1、立方體實現(xiàn)

立方體6個面要貼上6個方向的圖片,這6個圖片如下所示:
threejs 全景漫游,javascript,vr,開發(fā)語言
實現(xiàn)代碼如下:

<template>
  <div>
    <div class="container"></div>
  </div>
</template>

<script>
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader'
export default {
  data() {
    return {
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init() {
      // 獲取容器
      const container = document.querySelector('.container')
      // 初始場景
      const scene = new THREE.Scene()
      // 初始化相機
      const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
      // 相機位置
      camera.position.z = 5
      // 初始化渲染器
      const renderer = new THREE.WebGLRenderer()
      renderer.setSize(window.innerWidth, window.innerHeight)
      // 添加立方體
      const geometry = new THREE.BoxGeometry(10, 10, 10)
      let arr = ['4_l', '4_r', '4_u', '4_d', '4_b', '4_f']
      let boxMaterials = []
      arr.forEach(item => {
        // 紋理加載
        let texture = new THREE.TextureLoader().load(`./house/${item}.jpg`) // 這里圖片的地址默認位置在public文件下方,所以測試的圖片直接添加在public文件夾內(nèi)部即可
        boxMaterials.push(new THREE.MeshBasicMaterial({ map: texture }))
      })
      const cube = new THREE.Mesh(geometry, boxMaterials)
      // 改變視角,進入立方體內(nèi)部
      cube.geometry.scale(1, 1, -1)
      // 放置到場景上面
      scene.add(cube) 
      // 添加控制器,實現(xiàn)視角的縮放,旋轉(zhuǎn)
      const controls = new OrbitControls(camera, container)
      // controls.enableDamping = true
      // 容器上面添加渲染器
      container.appendChild(renderer.domElement)
      // 逐幀渲染
      const circleRender = () => {
        renderer.render(scene, camera)
        requestAnimationFrame(circleRender)
      }
      circleRender()
    },
  }
}
</script>

<style>

</style>

圖片的存放位置:
threejs 全景漫游,javascript,vr,開發(fā)語言

效果演示:

houseMovie

2、球體實現(xiàn)

下面這張圖片將6個面合成到一張圖片中,這樣的圖片也可以由球體來實現(xiàn)
threejs 全景漫游,javascript,vr,開發(fā)語言
代碼實現(xiàn):

<template>
  <div>
    <div class="container"></div>
  </div>
</template>

<script>
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader'
export default {
  data() {
    return {
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init() {
      const container = document.querySelector('.container')
      // 初始場景
      const scene = new THREE.Scene()
      // 初始化相機
      const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
      // 相機位置
      camera.position.z = 5
      // 初始化渲染器
      const renderer = new THREE.WebGLRenderer()
      renderer.setSize(window.innerWidth, window.innerHeight)
      // 添加球體方式一:對于.hdr圖片
      // const geometry = new THREE.SphereGeometry(5, 32, 32)
      // const loader = new RGBELoader()
      // // to do
      // loader.load('./images/prefix_hdr.hdr', (texture) => {
      //   const meterial = new THREE.MeshBasicMaterial({ map: texture })
      //   const sphere = new THREE.Mesh(geometry, meterial)
      //   sphere.geometry.scale(1, 1, -1)
      //   scene.add(sphere)
      // })

      // 添加球體方式二:對于.jpg .png圖片
      const geometry = new THREE.SphereGeometry(5, 32, 32)
      const meterial = new THREE.MeshBasicMaterial()
      // 這里圖片的地址默認位置在public文件下方,所以測試的圖片直接添加在public文件夾內(nèi)部即可
      let texture = new THREE.TextureLoader().load('./images/prefix.jpg')
      meterial.map = texture
      const sphere = new THREE.Mesh(geometry, meterial)
      // 改變視角,進入球體內(nèi)部
      sphere.geometry.scale(1, 1, -1)
      scene.add(sphere)
      // 添加控制器,控制視角
      const controls = new OrbitControls(camera, container)
      // controls.enableDamping = true
      // 容器上面添加渲染器
      container.appendChild(renderer.domElement)
      // 逐幀渲染
      const circleRender = () => {
        renderer.render(scene, camera)
        requestAnimationFrame(circleRender)
      }
      circleRender()
    },
  }
}
</script>

<style>

</style>

圖片的存放位置:
threejs 全景漫游,javascript,vr,開發(fā)語言
效果演示:
threejs 全景漫游,javascript,vr,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-651122.html

到了這里,關(guān)于three.js實現(xiàn)vr全景圖(vue)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【js&three.js】全景vr看房進階版

    【js&three.js】全景vr看房進階版

    Scene場景 指包含了所有要渲染和呈現(xiàn)的三維對象、光源、相機以及其他相關(guān)元素的環(huán)境;場景可以被渲染引擎或圖形庫加載和處理,以生成最終的圖像或動畫 常見屬性: 常見方法: Geometry? 幾何體 指的是表示和描述三維對象形狀的數(shù)據(jù), 描述了對象的形狀 常用的Geometry(幾

    2024年02月10日
    瀏覽(25)
  • 微信小程序集成three.js--VR全景項目源碼

    微信小程序集成three.js--VR全景項目源碼

    小程序集成Three.js,展示不同貼圖材質(zhì)的運用 實現(xiàn)VR全景效果的部分,主要實現(xiàn)步驟如下: 1 創(chuàng)建一個正方體 2加載6個不同面的圖片作為正方體的材質(zhì) 3設(shè)置正方體屬性?cube.geometry.scale(1,1,-1),即完成了正方體面的反轉(zhuǎn) 4將camera的位置設(shè)置在正方體內(nèi)部,即實現(xiàn)了從內(nèi)部觀察正

    2024年02月11日
    瀏覽(44)
  • VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    目錄 一、Three.js是什么? 二、VUE簡單使用Three.js步驟 1.npm安裝 2.template模板 3.引入庫 4.定義全局變量 5.初始化場景 6.初始化相機 7.初始化燈光 8.初始化渲染器 9.創(chuàng)建模型(這里我搭建的模型是一個簡單雙面貨架模型) 10.根據(jù)瀏覽器窗口自適應(yīng) 11.初始化函數(shù),頁面加載完成時調(diào)用

    2024年02月03日
    瀏覽(104)
  • VR全景、3D漫游到底有什么區(qū)別?如何選擇?

    VR全景、3D漫游到底有什么區(qū)別?如何選擇?

    VR全景,全稱為Virtual Reality Panorama,即虛擬現(xiàn)實全景。它通過360度無死角拍攝和展示場景,使用戶仿佛置身于現(xiàn)場。國內(nèi)主要有720云、眾去、如是等平臺提供了VR全景的編輯、展示、存儲服務(wù);廣泛的應(yīng)用于旅游、房地產(chǎn)、教育、醫(yī)療等多個領(lǐng)域。 720云VR虛擬樣板房 例如,在

    2024年02月03日
    瀏覽(22)
  • Three.js 實戰(zhàn)【1】—— 3D全景視圖開發(fā)

    Three.js 實戰(zhàn)【1】—— 3D全景視圖開發(fā)

    在現(xiàn)代開發(fā)過程當中,3D開發(fā)是越來越不可或缺的一部門,在前面的文章當中簡單的說明了一些threeJs的基礎(chǔ),從這里開始,我們將對ThreeJs整體進行一定的應(yīng)用。 我們先看一下這篇文章主要要實現(xiàn)的一個demo效果,現(xiàn)如今在第三方租房、買房App、或者百度、高德地圖上會出現(xiàn)這

    2024年02月12日
    瀏覽(23)
  • Three.js--》前端開發(fā)者掌握3d技術(shù)不再是夢,初識threejs

    Three.js--》前端開發(fā)者掌握3d技術(shù)不再是夢,初識threejs

    ????????這十年來 web 得到了快速的發(fā)展,隨著 webgl 的普及,網(wǎng)頁的表現(xiàn)能力越來越強大,網(wǎng)頁上已經(jīng)開始可以做出很多復(fù)雜的動畫和精美的效果,還可以通過 webgl 在網(wǎng)頁中繪制高性能的3d圖形,別的不說,凡是入門程序員都離不開github這個網(wǎng)站,細心的人都會發(fā)現(xiàn),gi

    2024年02月01日
    瀏覽(98)
  • 教你一招,如何將vr網(wǎng)站中的360全景圖圖片和全景漫游文件下載到本地電腦

    教你一招,如何將vr網(wǎng)站中的360全景圖圖片和全景漫游文件下載到本地電腦

    如果你打開vr全景平臺,看到好的作品想將360全景圖片下載保存到本地,直接右鍵另存是下載不下來的,因為上傳的圖片已經(jīng)過服務(wù)器端碎片化處理,在瀏覽器端訪問時通過js腳本動態(tài)的加載碎片組合成全景漫游的效果,那么將全景圖下載到本地呢? 這里要用到一個專用的下

    2024年02月11日
    瀏覽(37)
  • three.js實現(xiàn)3D室內(nèi)全景看房

    three.js實現(xiàn)3D室內(nèi)全景看房

    首先我們先搭建一個項目,我選擇使用vite來進行項目的搭建,執(zhí)行命令如下: 這樣一個基本的項目就搭建成功了,目錄如下所示 然后,下載一下three.js工具,執(zhí)行如下命令 頁面中引入 先搭建一個立體圖形,并畫出輔助線,如下所示 ?實現(xiàn)代碼如下: 接著,給我們的立體圖

    2024年02月12日
    瀏覽(27)
  • 【js&threeJS】入門three,并實現(xiàn)3D汽車展示廳,附帶全碼

    【js&threeJS】入門three,并實現(xiàn)3D汽車展示廳,附帶全碼

    首先放個最終效果圖: ? 三維(3D)概念: 三維(3D)是一個描述物體在三個空間坐標軸上的位置和形態(tài)的概念。相比于二維(2D)只有長度和寬度的平面,三維增加了高度或深度這一維度 在三維空間中,我們使用三個獨立的坐標軸來描述物體的位置。通常使用笛卡爾坐標系

    2024年02月11日
    瀏覽(703)
  • VUE3+ThreeJs實現(xiàn)3D全景場景,可自由旋轉(zhuǎn)視角

    VUE3+ThreeJs實現(xiàn)3D全景場景,可自由旋轉(zhuǎn)視角

    three.js是一個用于在Web上創(chuàng)建三維圖形的JavaScript庫。它可以用于創(chuàng)建各種類型的三維場景,包括游戲、虛擬現(xiàn)實、建筑和產(chǎn)品可視化等。three.js提供了許多功能和特性,包括3D渲染、光照、材質(zhì)、幾何形狀、動畫、交互和相機控制等。使用three.js,開發(fā)人員可以輕松地創(chuàng)建復(fù)雜

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包