1. 程式人生 > >Web端720°VR全景新手入門踩坑記錄:three.js+photo-sphere-viewer.js

Web端720°VR全景新手入門踩坑記錄:three.js+photo-sphere-viewer.js

如果對three.js一無所知的同學可以先看一篇關於three.js的介紹(什麼是three.js):

photo-sphere-viewer介紹可以直接看官網:

依賴包:

doT.js JS模板語言,類似於jade

uEvent(事件發射器庫,設計模式這本書中講過觀察者模式)

觀察者模式的介紹:

觀察者模式又叫釋出訂閱模式(Publish/Subscribe),
它定義了一種一對多的關係,讓多個觀察者物件同時監聽某一個主題物件,
這個主題物件的狀態發生變化時就會通知所有的觀察者物件,
使得它們能夠自動更新自己。

使用觀察者模式的好處:

支援簡單的廣播通訊,自動通知所有已經訂閱過的物件。
頁面載入後目標物件很容易與觀察者存在一種動態關聯,增加了靈活性。
目標物件與觀察者之間的抽象耦合關係能夠單獨擴充套件以及重用。

D.js Promises/A+規範

挽起袖子擼起來:

1.

啥!?馬上就報錯了?

找了一下原因,是因為 Photo-Sphere-Viewer-master 資料夾下也有three.min.js這個檔案,就是檔案拿錯了。

解決辦法:

three.min.js 在 three.js-dev > build 下面

js/photo-sphere-viewer.min.js 在 photo-sphere-viewer 直接資料夾下面

2.報錯沒有了,但是新的問題又來了,頁面內部還是一片空白,看看API文件

  2.1原來是少了size,把size新增進去以後就出現了黑色的寬580,高300的黑色框框,因為效果圖沒有意義,就不放了,但是黑色的框框還是沒有圖片

<script>
    var viewer = new PhotoSphereViewer({
        container: 'viewer',
        panorama: 'images/index/72.jpg',
        size:{
            width:580,
            height:300
        }
    });
</script>

  2.2原來是PSV只接受2:1比例的圖片,接著來

2.3從官網上下載了一張6000*3000的圖片,又報錯了:

THREE.WebGLRenderer: image is not power of two (6000x3000). Resized to 4096x2048

這段話的意思是讓我把6000*3000的圖片改成4096*2048大小的,我一直以為是圖片被自動重置為4096*2048,後來幻神幫我上了一堂英語課,Σ( ° △ °|||)︴

2.4改完了,還是黑屏一塊,但是報錯沒有了,真是個悲慘的訊息!

好了,到了這裡解決問題的手段就非常尷尬了,只能場外求助了遠在東海邊緣的師尊,直接上程式碼吧。

老師指出的第一點,就是檔案順序排列方式不能亂來,PSV的css移到head裡面是沒有問題的,但是腳本里面

1:three.js

2:D.min.js

3:doT.min.js

4:uevent.min.js

5:photo-sphere-viewer.min.js

6:JQ指令碼

其實這裡多說一句,three.js官網的指令碼和PSV官網的指令碼,我下載下來一起用發現會報錯,我不知道是不是版本的原因,如果遇到相同問題的同學可以加我QQ455988586,我把手裡的指令碼給你

最後就是呼叫一下:

如果不想讓圖片自動旋轉可以去掉後面的viewer.on...這段程式碼,具體API還是看官方文件。

另外附上一組網上的中文API呼叫介面:

相關推薦

Web720°VR全景新手入門記錄three.js+photo-sphere-viewer.js

如果對three.js一無所知的同學可以先看一篇關於three.js的介紹(什麼是three.js): photo-sphere-viewer介紹可以直接看官網: 依賴包: doT.js JS模板語言,類似於jade uEvent(事件發射器庫,設計模式這

hiv記錄count(distinct col1,col2) 遇見某列中有null值,結果不準

count(distinct col1,col2) 遇見某列中中有null值,結果不準 SELECT count(DISTINCT col1,col2) from (SELECT 2 as col1,1 as col2 union all SELECT null as co

ABP項目入門

src load dbconnect 管理 .json fig 連接 登錄 admin 1.下載ABP項目模板, 打開網址https://aspnetboilerplate.com/Templates,選擇MultiPage Web Application,輸入項目名稱和驗

Office Web addin 替換後臺網站為MVC框架時遇到的問題

調試運行 pro add 9.png info img 但是 office 新建 Office Web Addin 模板程序的後臺本質上是一個網站,你在調試的時候可以發現它的進程是一個32位的IE進程 所以可以把它替換成Asp.net的網站。 替換方法: 1.點擊WordR

《Python量化交易教程》第一部分新手入門 第1天誰來給我講講Python?

一、量化投資視訊學習課程 二、Python手把手教學 第1天:誰來給我講講Python? PS: 1.注意使用方法,這個以後都有大用 2.注意符號的使用方式 3.儘量用英文表達 4.本日學習內容以及其他注意事項: 今天學習了Python的基本頁面、操作,以及幾種主要的容器型別,天還要學習Pyt

新手入門(一) git 以及 github 的基本使用(建立及克隆專案)

概念 git: 是一個輔助我們開發的工具,在開發的過程中記錄我們每次提交程式碼的相關內容,比如誰在什麼時候修改或者新增了什麼功能等等,通過git 可以對我們的程式碼進行管理,也能借助git 將之前上傳的專案克隆到本地 github: 一個網站,上面有很多的開源專案,可以供我們下載原始

MVVM Light 新手入門(2) ViewModel / Model 中定義屬性 ,並在View中呼叫 利刃 MVVMLight

今天學習MVVM架構中“屬性”的新增並呼叫,特記錄如下,學習資料均來自於網路,特別感謝翁智華的利刃 MVVMLight系列。   一個視窗的基本模型如下: View(檢視) -> ViewModel (檢視模型)-> 多個Model(模型) 注: 檢視是使用者在螢幕上看到

web - 返回上一步,點選返回,跳轉上個頁面 JS

1.方法一: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script>

web - 返回上一步,點擊返回,跳轉上個頁面 JS

href 返回 oca cat font color 頁面 span web 1.方法一: <script language="javascript" type="text/javascript"> window.location.href="log

Vue2配置axios跨域和從後取資料賦值(記一)

Vue2配置axios跨域 這個系列主要記錄自己實習期間的踩坑過程,不完全準確,只能說這個方法確實解決了我自己的問題,歡迎交流,但不喜勿噴: main.js import Axios from 'axios' Vue.config.productionTip =

小程式新手入門之“雲函式”

開發者可以使用雲開發來進行微信小程式的開發,無需搭建伺服器,就可以使用雲端能力。目前提供三大支援: 雲函式:在雲端執行的程式碼,開發者只需要編寫自身業務邏輯程式碼 資料庫:很省事,一個既可以在小程式前端操作,也能在雲函式中讀寫的JSON資料庫 儲存:在小程式前端直接上傳

微信小程式新手記錄(2)

此文用來記錄一個程式渣學習小程式的踩坑路程。 話不多說,開始記錄! ---------------------------------------------------------分割線----------------------------------------

《物聯網框架ServerSuperIO教程》-22.Web對感測器實時監測與控制。附v3.6.8版本,支援WebSocket

1.ServerSuperIO v3.6.8更新內容 1.1 增加WebSocket服務端功能,支援自控模式、併發模式、單例模式,不支援輪詢模式1.2 接收資料快取與現有的IO例項分離。1.3 優化程式碼。 2.監測與控制的結構圖 3.Web端對感測器監測與控制,視訊教程內容 外掛化驅

新手之display: inline-block

今日勵志語 往日不可追,來日猶可期,祝大家2019年繼往開來 迷之間隙 我們建立一個導航列表,並將其列表 item 設定為 inline-block,主要程式碼如下: &lt;div class="nav"&gt; &lt;div class="nav-item"&

微信小程式零基礎入門之路

微信小程式 小程式是一種新的開放能力,開發者可以快速地開發一個小程式。小程式可以在微信內被便捷地獲取和傳播,同時具有出色的使用體驗。 本人是一名忠實的Android研發,沒有出過軌,對於css html js等僅僅是一知半解,這是在業餘

新手須知】Spring Boot 2.0.0 + MyBatis + Shiro + Swagger 開發專案記錄

寫在前面 Swagger 2.8.0 Spring Boot 2.0.0.RELEASE Shiro 1.4.0 Mybatis 1.3.1 填坑 踩坑一: MyBatis xml檔案

ABP框架入門-配置數據庫表前綴

api zh-cn default tables sin sof table 利用 .html 配置數據庫表前綴 ABP踩坑記錄-目錄 本篇其實和ABP關系並不大,主要是EF Core的一些應用-.-。 起因 支持數據庫表前綴應該是很多應用中比較常見的功能,而在AB

Cocos2d-X LUA 入門之小遊戲

作為一個剛剛入門的新人,接觸cocos2d-x也就半個多月,在這裡純屬個人看法以及踩過的一些坑,大神勿噴! 剛開始接觸cocos2d-x的時候,在官網下載cocos2d-x最新版,發現與所學教程的版本不太一樣,跟著舊版本quick做出來的東西在新版本下根本跑不

RocketMQ初入門

本文主要是講在Centos中安裝RocketMQ並做簡單的示例。如果你按照本文安裝100%是可以成功的,如果按照阿里官方的說明,那隻能呵呵了~ 安裝 官方地址為:https://rocketmq.apache.org/docs/quick-start/ 本人安裝如下: //下載最新的rocketmq wg

Maya零基礎新手入門教程第一部分介面

第1步:選單 如果您曾經使用過一個軟體,那麼您將習慣選單!在Maya中,選單包含用於在場景中工作的工具和操作。與大多數程式一樣,主選單位於Maya視窗的頂部,然後還有面板和選項視窗的單獨選單。您還可以使用熱盒訪問主選單中包含的選單。通過按住視圖面板中的空格鍵開啟它。   選單設定很可能對