3D視覺感知小工具Tool
我們的3D視覺感知
小工具
這裏開源的工程是一個小工具,是在研究視覺感知算法時的輔助工具,是以OpenGL的紋理映射技術爲基礎,可以模擬投影儀或3D掃描儀。源碼請移步Github
OpenGL投影紋理映射
OpenGL加載圖片紋理後,根據投影原理,把其投射到可視空間內3D物體的表面(Surface),不同的表面形狀會對紋理產生各自不同的扭曲。
不同物體表面的投影:
小工具的功能與使用方法:
- 二維圖片紋理加載 ,使用SOIL加載,支持多種不同格式的圖片紋理;
- 着色器文件加載,GLSL實現的着色器程序以文件形式存儲,支持着色器文件加載;
鼠標操作
動作 | 功能 | 備註 |
---|---|---|
點擊左鍵+移動 | 轉換視角 | 可以左右上下切換視角 |
滾輪前後滾動 | 視角拉近拉遠 | 前滾拉遠視角&後滾拉近視角 |
點擊右鍵 | 視角重置 | 視角切換到原始狀態 |
點擊滾輪或中鍵 | 調出菜單 | 調出菜單後鼠標左鍵點擊選擇 |
多視角觀察投影:
鍵盤操作
動作 | 功能 | 備註 |
---|---|---|
點擊‘w’鍵 | Model上移 | 3D空間內的所有物體向上移動 |
點擊‘s’鍵 | Model下移 | 3D空間內的所有物體向下移動 |
點擊‘a’鍵 | Model左移 | 3D空間內的所有物體向左移動 |
點擊‘d’鍵 | Model右移 | 3D空間內的所有物體向右移動 |
鍵盤操作的代碼已經註釋,需要時可以打開。
glTranslatef(dx, dy, dz);
菜單操作
菜單簡單操作:
模擬投影儀
典型投影環境
平面正投
平面斜投
曲面投影
模擬3D掃描儀
同理,您可以自行實現模擬3D掃描儀的功能。
系統環境
- ubuntu 16.04 linux
- libGL
- libGLU
- libglut
- libGLEW
- libSOIL