国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
鑰匙要點(diǎn)
如果您想直接進(jìn)入代碼並嘗試一下,則可以在GitHub上使用。
結(jié)論
經(jīng)常詢(xún)問(wèn)有關(guān)awe.js
awe.js在功能和性能方面與ar.js有何不同?
>的靈活性相同的靈活性,我可以使用awe.js開(kāi)發(fā)AR Web應(yīng)用程序嗎?您可以使用awe.js開(kāi)發(fā)AR Web應(yīng)用程序。 awe.js是一個(gè)JavaScript庫(kù),可讓您直接在瀏覽器中創(chuàng)建AR體驗(yàn),而無(wú)需任何其他插件或下載。這使其成為開(kāi)發(fā)基於Web的AR應(yīng)用程序的絕佳選擇。您可以使用它來(lái)創(chuàng)建廣泛的AR體驗(yàn),從簡(jiǎn)單的2D覆蓋到復(fù)雜的3D場(chǎng)景。
>可以使用awe.js?
>我如何為awe.js項(xiàng)目做出貢獻(xiàn)?如果您是開(kāi)發(fā)人員,則可以通過(guò)提交錯(cuò)誤報(bào)告,建議新功能或編寫(xiě)代碼來(lái)做出貢獻(xiàn)。如果您不是開(kāi)發(fā)人員,那麼您仍然可以通過(guò)編寫(xiě)文檔,創(chuàng)建教程或幫助宣傳有關(guān)awe.js的信息來(lái)做出貢獻(xiàn)。任何貢獻(xiàn)都非常感謝,並有助於使awe.js成為每個(gè)人的更好工具。
首頁(yè) web前端 js教程 awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)

awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)

Feb 19, 2025 pm 12:07 PM

awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)

鑰匙要點(diǎn)

    可以使用AWE.JS庫(kù)在移動(dòng)瀏覽器中實(shí)現(xiàn)
  • 增強(qiáng)現(xiàn)實(shí)(AR),該庫(kù)利用設(shè)備的攝像頭和三個(gè)。
  • awe.js庫(kù)支持多種AR體驗(yàn),包括基於地理的AR,與Oculus Rift,Leap Motion Controller和基於標(biāo)記的AR集成,該體驗(yàn)用於演示。
  • 對(duì)於演示,您需要Google Chrome用於移動(dòng),一個(gè)IFTTT帳戶(hù)和印刷AR標(biāo)記。該演示還可以在Chrome和Opera等一些桌面瀏覽器上使用。
  • >
  • 演示涉及一個(gè)3D控制板,該板出現(xiàn)在物理標(biāo)記上,並且可以與諸如IFTTT之類(lèi)的外部服務(wù)進(jìn)行交互以更改設(shè)置,例如淺色。
  • awe.js需要設(shè)置瀏覽器中的設(shè)備類(lèi)型,相機(jī)位置和燈光設(shè)置等各種參數(shù),並且它使用感興趣的點(diǎn)(POI)和投影來(lái)管理AR元素。 現(xiàn)在,Chrome現(xiàn)在要求訪(fǎng)問(wèn)相機(jī)的網(wǎng)頁(yè)https,需要進(jìn)行調(diào)整,例如使用HTTPS隧道進(jìn)行本地測(cè)試。 >
  • 增強(qiáng)現(xiàn)實(shí)是一個(gè)整潔的概念。我們欣賞周?chē)氖澜?,並用圖像,文字,聲音和視頻補(bǔ)充它。科技公司開(kāi)始使用Meta眼鏡,Microsoft Hololens和Magic Leap等設(shè)備來(lái)探索AR的可能性。這些非常令人興奮的AR耳機(jī)還沒(méi)有準(zhǔn)備好釋放消費(fèi)者,因此可能要有一對(duì),也許還有一對(duì)。但是,還有另一種方法是介紹世界來(lái)使用它們可能更容易訪(fǎng)問(wèn)的東西來(lái)增強(qiáng)現(xiàn)實(shí) - 移動(dòng)瀏覽器。
  • >我以前曾在我的文章中使用JavaScript和Trix.js在我的文章中使用Google Cardboard和Trix.js將VR帶到Web的文章中,並使用JavaScript和Google Cardboard過(guò)濾現(xiàn)實(shí)。在本文中,我將展示如何使用名為awe.js的JavaScript庫(kù)在移動(dòng)網(wǎng)絡(luò)上創(chuàng)建增強(qiáng)現(xiàn)實(shí)體驗(yàn)。我們將創(chuàng)建一個(gè)3D控制板,該板在紙張標(biāo)記的頂部打開(kāi)。我們可以將其連接到幾乎可以通過(guò)JavaScript HTTP請(qǐng)求啟用的任何操作,因此我將其設(shè)置為使用IFTTT。
  • 您需要的

對(duì)於此演示,您目前需要Google Chrome才能進(jìn)行移動(dòng)。它也可能在Firefox上用於移動(dòng)設(shè)備,但是當(dāng)我在HTC One M9上嘗試時(shí),我發(fā)現(xiàn)點(diǎn)擊事件並沒(méi)有觸發(fā)我。它還可以在一些桌面瀏覽器(Chrome和Opera在我的Mac上運(yùn)作良好),但絕對(duì)與帶有觸摸事件的智能手機(jī)的體驗(yàn)絕對(duì)不太相同。不過(guò),它可能在平板電腦上整潔。

>您還需要一個(gè)IFTTT帳戶(hù)以及如何使用觸發(fā)HTTP請(qǐng)求的規(guī)則來(lái)設(shè)置製造商渠道的知識(shí)。如果您是IFTTT的新手,我們以前介紹了使用IFTTT將LIFX燈泡連接到IoT的文章中的基礎(chǔ)知識(shí)。對(duì)於那些新的製造商頻道的人,我們還介紹了將IoT和node.js連接到IFTTT。 最後,您需要將標(biāo)記打印到一張紙上。我們要使用的標(biāo)記是這個(gè):

>

代碼awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)

如果您想直接進(jìn)入代碼並嘗試一下,則可以在GitHub上使用。

。

awe.js

awe.js是一個(gè)JavaScript庫(kù),使用三個(gè)。 JS,您的設(shè)備的相機(jī)和一些非常智能的技術(shù)來(lái)在瀏覽器中創(chuàng)建增強(qiáng)現(xiàn)實(shí)。您可以在awe.js github存儲(chǔ)庫(kù)上下載圖書(shū)館和一些示例。它提供了四種不同種類(lèi)的AR體驗(yàn),每種體驗(yàn)都有自己的榜樣:>

geo_ar - 允許您將對(duì)象放置在Set Compass Point。

grift_ar - 與Oculus Rift兼容。
    >
  • leap_ar - 與Leap Motion Controller集成。
  • > Marker_AR - 允許您創(chuàng)建一種位於增強(qiáng)現(xiàn)實(shí)標(biāo)記的體驗(yàn)。這是我們將在此演示中與之合作的。
  • >
  • 我們的增強(qiáng)現(xiàn)實(shí)演示代碼
  • 我們的演示代碼長(zhǎng)300行,但其中很多是針對(duì)類(lèi)似對(duì)象的重複代碼。我建議您從演示的GitHub存儲(chǔ)庫(kù)中下載演示代碼,並隨後提供此處提供的說(shuō)明。一旦您了解了一切的工作原理,請(qǐng)嘗試修補(bǔ)並建立自己的東西。 >
>所有內(nèi)容都始於我們窗口上的加載事件。我們包括的第一件事是一個(gè)變量,可以跟蹤我們的AR控制面板(我稱(chēng)之為“簡(jiǎn)稱(chēng)此處的菜單”)是開(kāi)放的。最初,它是關(guān)閉的。

然後,我們開(kāi)始使用awe.js庫(kù)。我們所做的一切都是在window.awe.init()函數(shù)中定義的。我們從我們的AR場(chǎng)景的一些全局設(shè)置開(kāi)始。

>

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>
  • device_type - 所有示例將其設(shè)置為awe.auto_detect_device_type,請(qǐng)求它自動(dòng)檢測(cè)設(shè)備。到目前為止,我還沒(méi)有看到需要更改。
  • >設(shè)置 - 我們實(shí)際上可能想在此處更改現(xiàn)場(chǎng)。其中包括:
    • container_id - 我們的整個(gè)體驗(yàn)將在內(nèi)部生成的元素ID。
    • fps - 我們所需的每秒幀(可選)。
    • >
    • > default_camera_position - 我們將從(我們以(0,0,0)啟動(dòng)它的默認(rèn)攝像機(jī)位置)。
    • > default_lights - 我們可以為我們的場(chǎng)景設(shè)置一個(gè)不同的三個(gè)燈的數(shù)組,給出了每個(gè)ID,並定義了它的光線(xiàn)及其顏色的類(lèi)型。我們的演示只有一個(gè)白色三。有多種選擇可用於光的類(lèi)型,它們對(duì)應(yīng)於不同類(lèi)型的三種燈光 - '區(qū)域',“定向”,“半球”,“點(diǎn)”和“斑點(diǎn)”。
    • >
  • >我們的設(shè)置到位後,我們將定義在A(yíng)we.js初始化時(shí)該怎麼做。所有內(nèi)容都包裹在awe.util.require()函數(shù)中,該功能定義了在加載我們需要的其他JavaScript文件之前所需的瀏覽器功能。請(qǐng)小心僅定義演示所需的瀏覽器功能,因?yàn)槿绻褂闷渌恍〨itHub示例中列出的功能錯(cuò)誤地定義了這些功能,則可以不必要地防止AR應(yīng)用程序在某些瀏覽器中工作。例如,為了使元素基於指南針點(diǎn)定位,您需要訪(fǎng)問(wèn)“陀螺”功能。這對(duì)大多數(shù)桌面瀏覽器都無(wú)法使用。在此演示中,我們不需要這一點(diǎn),因此我們將其排除在外。
>

在awe.js的特定功能中定義的文件- lib/awe-standard dipendencies.js,lib/awe-sandard.js和lib/awe-standard-standard-window_resized.js eres.js每個(gè)都很常見(jiàn),定義敬畏和處理窗口大小的標(biāo)準(zhǔn)零件。我們的演示使用標(biāo)記,這需要下面列出的其他兩個(gè)文件。
<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>
>

>成功加載了所有這些文件後,我們將運(yùn)行恰當(dāng)命名的Success()awe.js函數(shù)。準(zhǔn)備開(kāi)始顯示元素時(shí),您將始終運(yùn)行的第一個(gè)功能設(shè)置awe.js場(chǎng)景。
<span>ready: function() {
</span>    awe<span>.util.require([
</span>      <span>{
</span>        <span>capabilities: ['gum','webgl'],</span>

>我給了它一個(gè)“標(biāo)記”的ID,但是只要您在代碼中對(duì)此POI的其他參考中保持一致,就可以稱(chēng)其為您想要的任何東西。我們將其初始位置設(shè)置為(0,0,10000),它將其定位到遠(yuǎn)處,直到我們準(zhǔn)備好使用它為止。我們還將其設(shè)置為看不見(jiàn)的,直到發(fā)現(xiàn)標(biāo)記。

>
<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>
我們添加到pois中的

元素被稱(chēng)為awe.js中的“預(yù)測(cè)”。我們添加到場(chǎng)景中的第一個(gè)投影我稱(chēng)為“蟲(chóng)洞”,因?yàn)檫@是一個(gè)平坦的黑色廣場(chǎng),我們的菜單項(xiàng)將神奇地出現(xiàn)。就像POI的ID一樣,只要您將其與代碼中的其他參考保持一致,您就可以將其命名。我們使用函數(shù)awe.project.add()。

<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>
>我們可以添加作為預(yù)測(cè)的對(duì)像有很多選擇,因此我將更詳細(xì)地解釋它們。請(qǐng)注意 - 在此處進(jìn)行定位和旋轉(zhuǎn)的所有X,Y和Z值都與其POI有關(guān)。該P(yáng)OI在其ID上定義為{poi_id:'marker'}。

    幾何 - 這是指投影的三個(gè)幾何選項(xiàng)。每種類(lèi)型的幾何形狀所需的選項(xiàng)與Awe.js中提供的選項(xiàng)相匹配。例如,三個(gè)j中的球體測(cè)量法表示為{shape:'sphere',radius',radius:10}在awe.js中。對(duì)於使用最新三個(gè)JS的人來(lái)說(shuō),要注意的一件事,在當(dāng)前可用版本的AWE.JS中,BoxSethemetry仍在使用CubeGeometry。因此,要?jiǎng)?chuàng)建框,我們使用格式{shape:'cube',x:20,y:30,z:5}(儘管名稱(chēng),它不需要是“ cube”)。
  • >位置 - 您可以根據(jù)其POI調(diào)整項(xiàng)目的X,Y和Z軸。
  • 旋轉(zhuǎn) - 您可以通過(guò)其X,Y和Z軸旋轉(zhuǎn)與其POI相關(guān)的X,Y和Z軸。我在其X軸上旋轉(zhuǎn)90度的蟲(chóng)洞90度,以使其平坦地坐在桌子上,並用Z軸坐在45度上,因?yàn)槲艺J(rèn)為它看起來(lái)更自然(它始終與標(biāo)記始終與標(biāo)記完全保持一致,因此擁有它在對(duì)角線(xiàn)上會(huì)變得不那麼明顯)。
  • 材料 - 這定義了投影的三個(gè)材料。我一直堅(jiān)持使用“ phong”(三分之二的meshphongmaterial),但是看起來(lái)“蘭伯特”,“著色器”,“ sprite”和“ sprite_canvas”也有可能作為選項(xiàng)可用。我們還可以在十六進(jìn)制中定義其顏色。
  • >紋理 - 演示中不使用它,但我想將其包括在本文中以進(jìn)行完整。要定義紋理,您可以包括紋理:{路徑:'yourtexturefilename.png'}。
  • 在演示中,我在場(chǎng)景中添加了七個(gè)不同的盒子/立方體,每個(gè)盒子高30像素,並在y軸上放置31像素,以便最初被蟲(chóng)洞隱藏。它們的寬度都略有不同,使它們看起來(lái)有點(diǎn)像燈泡。

    >我通過(guò)X和Z坐標(biāo)將它們從蟲(chóng)洞的中心移動(dòng)一點(diǎn),但老實(shí)說(shuō),如果您的漏洞-5蟲(chóng)子,那可能還不錯(cuò)。我在y軸上旋轉(zhuǎn)了45度,因此它在蟲(chóng)洞的頂部以一個(gè)好角度的角度。

    <span>window.addEventListener('load', function() {
    </span>    <span>var menu_open = false;
    </span>    
        <span>// Our code continues here
    </span>  <span>});</span>
    >其中每個(gè)都有一個(gè)'ar_button_ {number}'的ID,其中數(shù)字是從底部到頂部的菜單按鈕的索引。我們將在對(duì)IFTTT的http調(diào)用中使用此ID,因此保持這些一致和準(zhǔn)確很重要!

    >

    定義了預(yù)測(cè)後,我們定義了AR拼圖的一個(gè)相當(dāng)重要的部分 - 我們的標(biāo)記檢測(cè)事件。我們將其添加為一個(gè)陣列傳遞到函數(shù)awe.events.add()。

    >

    <span>window.awe.init({
    </span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
    </span>    <span>settings: {
    </span>      <span>container_id: 'container',
    </span>      <span>fps: 30,
    </span>      <span>default_camera_position: { x:0, y:0, z:0 },
    </span>      <span>default_lights: [{
    </span>        <span>id: 'point_light',
    </span>        <span>type: 'point',
    </span>        <span>color: 0xFFFFFF
    </span>      <span>}]
    </span>    <span>},</span>
    >我們只有一個(gè)awe.js事件,因此這裡只有一個(gè)事件。該事件的定義是我們可以稱(chēng)呼任何東西的ID。我稱(chēng)其為“ ar_tracking_marker”。我們定義適用的設(shè)備類(lèi)型。到目前為止,在所有敬畏的示例中,這似乎是相同的,所以我將其與PC和Android設(shè)置為1一樣。

    然後,我們有register()和unregister()函數(shù)添加和刪除正在關(guān)注標(biāo)記的事件偵聽(tīng)器。
    <span>ready: function() {
    </span>    awe<span>.util.require([
    </span>      <span>{
    </span>        <span>capabilities: ['gum','webgl'],</span>

    然後,我們定義事件處理程序,該事件處理程序?qū)⒃谖覀儼l(fā)現(xiàn)標(biāo)記後運(yùn)行。我們尋找“ 64”標(biāo)記,只有在找到響應(yīng)時(shí)才能運(yùn)行。

    >
    <span>files: [ 
    </span>    <span>['lib/awe-standard-dependencies.js', 'lib/awe-standard.js'],
    </span>    <span>'lib/awe-standard-window_resized.js',
    </span>    <span>'lib/awe-standard-object_clicked.js',
    </span>    <span>'lib/awe-jsartoolkit-dependencies.js',
    </span>    <span>'lib/awe.marker_ar.js'
    </span>  <span>],</span>

    在我們對(duì)找到標(biāo)記的回應(yīng)中,我們希望將我們稱(chēng)為“標(biāo)記”的POI使用我們的物理紙標(biāo)記物,使其可見(jiàn)。我們使用event.detail ['64']將其轉(zhuǎn)換為與物理標(biāo)記保持一致。 transform。

    >
    <span>success: function() {
    </span>    <span>window.awe.setup_scene();</span>

    我們還將“蟲(chóng)洞”投影設(shè)置為可見(jiàn)。

    >
    awe<span>.pois.add({id: 'marker', position: {x: 0, y: 0, z: 10000}, visible: false});</span>

    如果我們看不到標(biāo)記,但我們的菜單開(kāi)放,我們將其設(shè)置為保持打開(kāi)狀態(tài),但請(qǐng)隱藏蟲(chóng)洞。這樣做的主要理由是,隨著一些光的變化,標(biāo)記可能難以辨認(rèn)。我們不想將自己陷入特定的顏色燈光,無(wú)法轉(zhuǎn)彎!

    >
    awe<span>.projections.add({ 
    </span>    <span>id: 'wormhole',
    </span>    <span>geometry: {shape: 'plane', height: 400, width: 400},
    </span>    <span>position: {x: 0, y: 0, z: 0},
    </span>    <span>rotation: {x: 90, z: 45},
    </span>    <span>material: {
    </span>      <span>type: 'phong',
    </span>      <span>color: 0x000000
    </span>    <span>}
    </span>  <span>}, {poi_id: 'marker'});</span>

    如果沒(méi)有標(biāo)記,並且我們的菜單沒(méi)有打開(kāi),那麼整個(gè)POI都隱藏了等待我們查看。

    awe<span>.projections.add({
    </span>    <span>id: 'ar_button_one',
    </span>    <span>geometry: {shape: 'cube', x: 60, y: 30, z: 5},
    </span>    <span>rotation: {y: 45},
    </span>    <span>position: {x: -5, y: -31, z: -5},
    </span>    <span>material: {
    </span>      <span>type: 'phong',
    </span>      <span>color: 0xFF0000
    </span>    <span>}
    </span>  <span>}, {poi_id: 'marker'});</span>
    我們通過(guò)告訴awe.js更新場(chǎng)景來(lái)結(jié)束。

    >

    我們要設(shè)置的實(shí)際功能的最後位置是我們的點(diǎn)擊事件。所有這些都在object_clicked事件中。
    awe<span>.events.add([
    </span>    <span>// Our events here
    </span>  <span>]);</span>

    我們的點(diǎn)擊事件包含在e.detail.proctiond_id中單擊的投影的ID。我們使用開(kāi)關(guān)語(yǔ)句確定如何對(duì)單擊反應(yīng)。單擊蟲(chóng)洞打開(kāi)並關(guān)閉虛擬菜單,而“虛擬菜單”按鈕上的單擊將觸發(fā)我們的淺色。我們使用開(kāi)關(guān)語(yǔ)句,因?yàn)槊總€(gè)按鈕都會(huì)運(yùn)行相同的響應(yīng)代碼。
    <span>id: 'ar_tracking_marker',
    </span>  <span>device_types: {
    </span>    <span>pc: 1,
    </span>    <span>android: 1
    </span>  <span>},</span>
    >
    <span>window.addEventListener('load', function() {
    </span>    <span>var menu_open = false;
    </span>    
        <span>// Our code continues here
    </span>  <span>});</span>

    >我們的蟲(chóng)洞單擊事件打開(kāi)並根據(jù)菜單_OPEN是TRUE還是FALSE關(guān)閉菜單。如果是錯(cuò)誤的,那麼我們使用awe.js awe.project.update()函數(shù)來(lái)在一秒鐘內(nèi)將每個(gè)按鈕上的每個(gè)按鈕動(dòng)畫(huà)。這將其從蟲(chóng)洞中移出。每個(gè)投影的移動(dòng)之間的唯一區(qū)別是每個(gè)對(duì)像在y軸上移動(dòng)多少。

    <span>window.awe.init({
    </span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
    </span>    <span>settings: {
    </span>      <span>container_id: 'container',
    </span>      <span>fps: 30,
    </span>      <span>default_camera_position: { x:0, y:0, z:0 },
    </span>      <span>default_lights: [{
    </span>        <span>id: 'point_light',
    </span>        <span>type: 'point',
    </span>        <span>color: 0xFFFFFF
    </span>      <span>}]
    </span>    <span>},</span>
    否則,如果菜單打開(kāi),我們將它們?nèi)恳浦料x(chóng)洞下的初始位置,並從視圖中隱藏。

    <span>ready: function() {
    </span>    awe<span>.util.require([
    </span>      <span>{
    </span>        <span>capabilities: ['gum','webgl'],</span>
    在我們的if else語(yǔ)句之後,我們將菜單_open切換到與之相反的相反,因此我們跟蹤它的到底位置。

    在我們的按鈕單擊事件中,我們向IFTTT提出HTTP請(qǐng)求,其中包括我們的按鈕ID作為事件名稱(chēng),以及訪(fǎng)問(wèn)IFTTT服務(wù)的鍵。我們並沒(méi)有真正使用返回的數(shù)據(jù),而是將其記錄到控制臺(tái)進(jìn)行調(diào)試目的,但實(shí)際上,實(shí)際結(jié)果來(lái)自IFTTT對(duì)HTTP呼叫的反應(yīng)。 >
    <span>files: [ 
    </span>    <span>['lib/awe-standard-dependencies.js', 'lib/awe-standard.js'],
    </span>    <span>'lib/awe-standard-window_resized.js',
    </span>    <span>'lib/awe-standard-object_clicked.js',
    </span>    <span>'lib/awe-jsartoolkit-dependencies.js',
    </span>    <span>'lib/awe.marker_ar.js'
    </span>  <span>],</span>
    在所有這些之後

    是https time
    <span>success: function() {
    </span>    <span>window.awe.setup_scene();</span>

    截至2015年底 - 我正在回到本文中,以添加新的相當(dāng)重要的信息 - Chrome現(xiàn)在要求使用攝像頭的網(wǎng)頁(yè)通過(guò)HTTPS提供。因此,在嘗試運(yùn)行此操作之前,您需要找到一種通過(guò)HTTPS運(yùn)行服務(wù)的方法。到目前為止,我用於測(cè)試的一種方法是Ngrok,它可以為您的Localhost提供HTTPS隧道。我們有一個(gè)指南,可以從這裡的任何地方訪(fǎng)問(wèn)Localhost,這可以幫助您入門(mén)。

    演示的演示
    awe<span>.pois.add({id: 'marker', position: {x: 0, y: 0, z: 10000}, visible: false});</span>

    如果我們?cè)贕oogle Chrome上運(yùn)行此代碼,以將其指向我們的標(biāo)記,則應(yīng)出現(xiàn)蟲(chóng)洞。

    如果我們單擊蟲(chóng)洞,我們的菜單按鈕應(yīng)將其動(dòng)畫(huà)成正確的斑點(diǎn)。

    如果我們單擊其中一個(gè)菜單項(xiàng)……

    awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)它應(yīng)該更改我們的lifx燈的顏色!

    awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)

    結(jié)論

    >這就是您使用awe.js中瀏覽器中增強(qiáng)現(xiàn)實(shí)開(kāi)始的一切所需的一切。它具有很大的潛力,如今技術(shù)界的許多發(fā)展都在做! Awe.js團(tuán)隊(duì)一直在插入插件,很快就會(huì)有一個(gè)更新甚至更完整的版本!也可以在Google紙板中設(shè)置三個(gè)。 JS立體效果,並將其與Awe.js的某些功能相結(jié)合以構(gòu)建AR耳機(jī)體驗(yàn)。我認(rèn)為一篇文章可能有點(diǎn)多,所以請(qǐng)留意將來(lái)的文章!

    >

    >如果您使用此代碼嘗試一些AR魔術(shù)或進(jìn)一步進(jìn)行,請(qǐng)?jiān)谠u(píng)論中留下便條或在Twitter上與我聯(lián)繫(@thatpatrickguy),我很想檢查一下!

    >

    經(jīng)常詢(xún)問(wèn)有關(guān)awe.js

    的瀏覽器中有關(guān)增強(qiáng)現(xiàn)實(shí)的問(wèn)題

    awe.js在功能和性能方面與ar.js有何不同?

    awe.js和ar.js都是在瀏覽器中創(chuàng)建增強(qiáng)現(xiàn)實(shí)體驗(yàn)的強(qiáng)大工具。但是,它們?cè)趲追N方面有所不同。 awe.js是一個(gè)更全面的框架,為創(chuàng)造身臨其境的AR體驗(yàn)提供了廣泛的功能。它支持多種跟蹤方法,包括GPS,Compass和陀螺儀跟蹤,並且還支持3D模型。另一方面,AR.JS更專(zhuān)注於基於標(biāo)記的跟蹤,並以其高性能和效率而聞名。它也更容易用於初學(xué)者,但是它可能不會(huì)提供與awe.js.

    >的靈活性相同的靈活性,我可以使用awe.js開(kāi)發(fā)AR Web應(yīng)用程序嗎?您可以使用awe.js開(kāi)發(fā)AR Web應(yīng)用程序。 awe.js是一個(gè)JavaScript庫(kù),可讓您直接在瀏覽器中創(chuàng)建AR體驗(yàn),而無(wú)需任何其他插件或下載。這使其成為開(kāi)發(fā)基於Web的AR應(yīng)用程序的絕佳選擇。您可以使用它來(lái)創(chuàng)建廣泛的AR體驗(yàn),從簡(jiǎn)單的2D覆蓋到復(fù)雜的3D場(chǎng)景。

    >我如何從awe.js?

    開(kāi)始,以敬畏開(kāi)始。 JS,您首先需要從官方的GitHub存儲(chǔ)庫(kù)下載庫(kù)。完成此操作後,您可以通過(guò)編寫(xiě)JavaScript代碼開(kāi)始創(chuàng)建AR場(chǎng)景。 awe.js提供了一系列API和功能,您可以使用這些功能來(lái)控制AR體驗(yàn),包括用於創(chuàng)建對(duì)象,控制相機(jī)和處理用戶(hù)輸入的功能。

    >可以使用awe.js?

    awe.js構(gòu)建應(yīng)用程序的一些示例,是一種多功能工具,可用於創(chuàng)建各種AR應(yīng)用程序。例如,您可以使用它來(lái)創(chuàng)建AR導(dǎo)遊應(yīng)用程序,用戶(hù)可以在其中將手機(jī)指向不同的地標(biāo)以獲取有關(guān)它們的信息。您也可以使用它來(lái)創(chuàng)建AR遊戲,用戶(hù)可以在現(xiàn)實(shí)世界中與虛擬對(duì)象進(jìn)行交互。其他可能的應(yīng)用程序包括AR購(gòu)物應(yīng)用程序,AR教育應(yīng)用程序等??赡艿?。但是,由於它使用了WebGL和WeBRTC等高級(jí)Web技術(shù),因此它可能無(wú)法在不支持這些技術(shù)的較舊瀏覽器上使用。為了獲得最佳效果,建議使用awe.js與Chrome,F(xiàn)irefox或Safari(例如Chrome,F(xiàn)irefox或Safari)等現(xiàn)代,最新的瀏覽器。

    我可以與其他JavaScript庫(kù)或框架一起使用awe.js? >>我如何與awe.js進(jìn)行問(wèn)題排除問(wèn)題?

    >如果您在awe.js方面遇到麻煩,則有幾種資源可以尋求幫助。 awe.js的官方GitHub存儲(chǔ)庫(kù)包括一份涵蓋圖書(shū)館各個(gè)方面的綜合文檔。您還可以在Github上查看問(wèn)題跟蹤器,以查看其他人是否遇到了同樣的問(wèn)題。如果您在那裡找不到解決方案,則可以嘗試在堆棧溢出或其他在線(xiàn)開(kāi)發(fā)人員社區(qū)上尋求幫助。

    > awe.js是開(kāi)源的嗎?一個(gè)開(kāi)源項(xiàng)目。這意味著只要您遵守許可條款,就可以自由使用,修改和分發(fā)代碼。 awe.js的源代碼可在GitHub上找到,因此您也可以通過(guò)提交錯(cuò)誤報(bào)告,建議新功能甚至提交您自己的代碼來(lái)為項(xiàng)目做出貢獻(xiàn)。

    >

    >

    。如果您需要awe.js的幫助,則可以在項(xiàng)目的GitHub頁(yè)面或其他在線(xiàn)開(kāi)發(fā)人員社區(qū)上尋求幫助。在線(xiàn)上還有許多可用的教程和指南可以幫助您開(kāi)始敬畏。

    >我如何為awe.js項(xiàng)目做出貢獻(xiàn)?如果您是開(kāi)發(fā)人員,則可以通過(guò)提交錯(cuò)誤報(bào)告,建議新功能或編寫(xiě)代碼來(lái)做出貢獻(xiàn)。如果您不是開(kāi)發(fā)人員,那麼您仍然可以通過(guò)編寫(xiě)文檔,創(chuàng)建教程或幫助宣傳有關(guān)awe.js的信息來(lái)做出貢獻(xiàn)。任何貢獻(xiàn)都非常感謝,並有助於使awe.js成為每個(gè)人的更好工具。

    >

以上是awe.js在瀏覽器中增強(qiáng)現(xiàn)實(shí)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開(kāi)始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問(wèn)題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見(jiàn)錯(cuò)誤。

為什麼要將標(biāo)籤放在的底部? 為什麼要將標(biāo)籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。 1.事件捕獲通過(guò)addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助於精確控制JavaScript響應(yīng)用戶(hù)操作的時(shí)機(jī)和方式。

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在於加載方式和使用場(chǎng)景。 1.CommonJS是同步加載,適用於Node.js服務(wù)器端環(huán)境;2.ES模塊是異步加載,適用於瀏覽器等網(wǎng)絡(luò)環(huán)境;3.語(yǔ)法上,ES模塊使用import/export,且必須位於頂層作用域,而CommonJS使用require/module.exports,可在運(yùn)行時(shí)動(dòng)態(tài)調(diào)用;4.CommonJS廣泛用於舊版Node.js及依賴(lài)它的庫(kù)如Express,ES模塊則適用於現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問(wèn)題

如何在node.js中提出HTTP請(qǐng)求? 如何在node.js中提出HTTP請(qǐng)求? Jul 13, 2025 am 02:18 AM

在Node.js中發(fā)起HTTP請(qǐng)求有三種常用方式:使用內(nèi)置模塊、axios和node-fetch。 1.使用內(nèi)置的http/https模塊無(wú)需依賴(lài),適合基礎(chǔ)場(chǎng)景,但需手動(dòng)處理數(shù)據(jù)拼接和錯(cuò)誤監(jiān)聽(tīng),例如用https.get()獲取數(shù)據(jù)或通過(guò).write()發(fā)送POST請(qǐng)求;2.axios是基於Promise的第三方庫(kù),語(yǔ)法簡(jiǎn)潔且功能強(qiáng)大,支持async/await、自動(dòng)JSON轉(zhuǎn)換、攔截器等,推薦用於簡(jiǎn)化異步請(qǐng)求操作;3.node-fetch提供類(lèi)似瀏覽器fetch的風(fēng)格,基於Promise且語(yǔ)法簡(jiǎn)單

編寫(xiě)清潔和可維護(hù)的JavaScript代碼的最佳實(shí)踐是什麼? 編寫(xiě)清潔和可維護(hù)的JavaScript代碼的最佳實(shí)踐是什麼? Jun 23, 2025 am 12:35 AM

要寫(xiě)出乾淨(jìng)、可維護(hù)的JavaScript代碼,應(yīng)遵循以下四點(diǎn):1.使用清晰一致的命名規(guī)範(fàn),變量名用名詞如count,函數(shù)名用動(dòng)詞開(kāi)頭如fetchData(),類(lèi)名用PascalCase如UserProfile;2.避免過(guò)長(zhǎng)函數(shù)和副作用,每個(gè)函數(shù)只做一件事,如將更新用戶(hù)信息拆分為formatUser、saveUser和renderUser;3.合理使用模塊化和組件化,如在React中將頁(yè)面拆分為UserProfile、UserStats等小組件;4.寫(xiě)註釋和文檔時(shí)點(diǎn)到為止,重點(diǎn)說(shuō)明關(guān)鍵邏輯、算法選

垃圾收集如何在JavaScript中起作用? 垃圾收集如何在JavaScript中起作用? Jul 04, 2025 am 12:42 AM

JavaScript的垃圾回收機(jī)制通過(guò)標(biāo)記-清除算法自動(dòng)管理內(nèi)存,以減少內(nèi)存洩漏風(fēng)險(xiǎn)。引擎從根對(duì)像出發(fā)遍歷並標(biāo)記活躍對(duì)象,未被標(biāo)記的則被視為垃圾並被清除。例如,當(dāng)對(duì)像不再被引用(如將變量設(shè)為null),它將在下一輪迴收中被釋放。常見(jiàn)的內(nèi)存洩漏原因包括:①未清除的定時(shí)器或事件監(jiān)聽(tīng)器;②閉包中對(duì)外部變量的引用;③全局變量持續(xù)持有大量數(shù)據(jù)。 V8引擎通過(guò)分代回收、增量標(biāo)記、並行/並發(fā)回收等策略?xún)?yōu)化回收效率,降低主線(xiàn)程阻塞時(shí)間。開(kāi)發(fā)時(shí)應(yīng)避免不必要的全局引用、及時(shí)解除對(duì)象關(guān)聯(lián),以提升性能與穩(wěn)定性。

See all articles