3D虛擬環境中的選擇技術分類

2022-08-21 14:06:15 字數 1796 閱讀 9173

我們在3d虛擬環境(virtual environment, ve)中需要完成的操作有3種:選擇物體,操縱(改變)物體,移位(locomotion)。這裡來總結一下3d ve中的選擇技術的種類。本文根據argelaguet和andujar於2023年發表的survey1,以及相關文獻總結。

ryan,kopper和bowan提出的分類2(以使用者指出物體的方式分類)

1. virtual hand 虛擬手

像現實中一樣,用虛擬手來接觸ve中的物體來做選擇。

2. pointing 隔空指物

不直接接觸物體,隔空指物來做選擇。一般是raycasting,從手上發射一條射線指向物體,也有利用視線來選擇的。

3. occlusion 三點一線

眼睛發射射線,但是用手來控制射線的方向。眼、手和物體在同一直線上時選擇該物體。

4. volume-based 創造體積

讓遠處的物體或者小的物體更好選擇,給物體乙個額外的選擇範圍(虛擬體積)。這種就需要解決乙個問題,就是空間內有多個物體時,虛擬體積重合了,如何做選擇的問題。現有的方法有,選擇接近選擇射線的,選擇離使用者近的,以及列出獨立的物體列表進行二次選擇。

5. indirect 非直接選擇

用一些其他方式來做非直接選擇,比如設計好按某個按鈕,某物體就被選擇。

我們可以看出,這些選擇分類並不是互斥的,比如虛擬手和隔空指物都可以和創造體積的方式結合起來。

poupyrev和ichikawa提出的分類3(通過中心性進行分類)

這是二人在2023年發表的**中提出的分類。

1. exocentric 非自我中心

直接理解比較抽象,舉個例子吧,一種微縮世界(world-in-miniature)的選擇技術就是屬於這一類。使用者從上帝視角俯視面前的微縮世界副本,然後在這個副本中選擇想要的物體,選中後本來的世界中的物體也會被選中。這種把使用者脫離出選擇空間的方式就是非自我中心的方式。按照poupyrev和ichikawa的分類,該類包含微縮世界技術(world-in-miniature)和縮放世界抓取技術(scaled-world grab)。

2. egocentric 自我中心

這一條就是和上面相對的,以使用者自我中心來進行的選擇。包括虛擬手(virtual hand)和虛擬指標(virtual pointer)。其中虛擬手包括了標準的虛擬手和可以延伸的虛擬手(著名的有如go-go技術4),虛擬指標包含了射線(ray-casting)等技術。

1 argelaguet, f., & andujar, c. (2013). a survey of 3d object selection techniques for virtual environments. computers & graphics, 37(3), 121-136.

2 mcmahan, r., kopper, r., & bowman, d. (2014). principles for designing effective 3d interaction techniques. in k. hale & k. stanney, handbook of virtual environments (vol. 20143245, pp. 285–311). crc press.

3 poupyrev, i., & ichikawa, t. (1999). manipulating objects in virtual worlds: categorization and empirical evaluation of interaction techniques. journal of visual languages & computing, 10(1), 19-35.

Halcon中的3D技術

對於檢測一些產品的3d資訊,我們通過3d相機能獲取其點雲資料或一張帶有高度資訊的影象。這邊我們用smartray相機,獲取到一張16位的png影象。實際上就是一張高度資訊圖。這邊x y縮放比例為0.019,z方向為0.0016,意思就是你xyz乘這係數就是相對距離。在那個相機軟體中能看到如上的3d圖...

Python3中的虛擬環境

使用虛擬環境是為了隔離不同專案之間的python庫 python3 內建了venv模組,首先建立專案目錄,進入目錄後,執行 python m venv venv python m venv venv system site packages 繼承系統包在開始工作前,先要啟用相應的虛擬環境 venv ...

Ubuntu中python3安裝虛擬環境

1.首先安裝虛擬環境 sudo pip3 install virtualenv 2.安裝虛擬環境擴充套件包 3.修改使用者家目錄下的配置檔案.bashrc 例 sudo vim home python bashrc 4.bashrc檔案中新增如下內容 export workon home home ...