OpenGL 讀取 .obj 3D 模型檔

今天要來介紹如何使用 OpenGL 來讀取 3D 模型檔(.obj),一般來說,3D 繪圖軟體都會有很多種輸出的模型檔的檔案格式,
有的是給 3D 列印的列印格式,有的是跨繪圖軟體的通用格式,副檔名為.obj是其中一種格式,
下面文章將學到怎麼讀取 obj 檔。

參考
opengl-tutorial: tutorial-7-model-loading
(C++\openGL)讀取.obj模型檔

快速開發 PyQt 的 UI - 使用 Qt Designer

開發環境:Ubuntu 16.04
語言版本:Python 2.7.12
其他版本:Qt Designer 4.8.7

安裝 qt-designer (不是Qt Creator唷)

1
sudo apt-get install python-qt4 qt4-designer

安裝 pyuic 指令 (看你使用pyqt4還是pyqt5, 裝下列對應的工具)

1
2
3
sudo apt install pyqt4-dev-tools
or
sudo apt install pyqt5-dev-tools

開啟 qt-designer 設計好 ui 後存檔 pyqtdesigner.ui
再用下列指令將 .ui 檔 轉成 .py 檔

1
2
3
pyuic4 -x pyqtdesigner.ui -o pyqtdesigner.py
or
pyuic5 -x pyqtdesigner.ui -o pyqtdesigner.py

開啟 pyqtdesigner.py 就可以看到已經有 ui 的程式碼了, 也可以直接執行起來試看看效果.
接著就可以著手進行開發功能的部份了!

深度相機列表

結構光 (Structured-light)

基本原理是透過紅外雷射投影器,將具有一定結構特徵的光線投射到被拍攝物體上,再由紅外攝影機進行拍攝。這種具備一定結構的光線,會因被拍攝物體的不同深度區域,進而換算成深度資訊。

微軟 Kinect-1代

Intel RealSense R200 camera

  • 一個彩色相機 (有IR Cut),30 fps
  • 一個紅外線投影器與兩個紅外線相機所組成的深度相機,30 fps / 60 fps

雙目視覺 (Stereo)

Leap Motion

ZED camera

  • 兩顆RGB (有IR Cut)
  • 2560x720 (720p) 60 fps
  • 1344x376 (WVGA) 100 fps
  • 使用 SLAM 技術
  • Frequency Up to 100Hz (解析度應該是1344x376)

光飛行時間法(TOF)

微軟 Kinect-2代

參考
https://www.cnblogs.com/li-yao7758258/p/11191878.html
http://www.vision263.com/2084.html

Ubuntu 安裝 nginx

本篇紀錄一下如何在 Ubuntu 安裝 nginx,配置 nginx,最後啟動 nginx。

安裝 nginx

1
2
sudo apt-get update
sudo apt-get install nginx

配置 nginx

/var/www/blog 目錄用於放置生成的靜態文件

1
mkdir /var/www/blog

編寫 nginx 配置文件

1
vim /etc/nginx/conf.d/blog.conf

1
2
3
4
5
server
{
listen 8080;
root /var/www/blog;
}

重新啟動 nginx

ubuntu 16.04

1
systemctl restart nginx

ubuntu 14.04

1
sudo service nginx restart

PyGetMyPublicIP

介紹

這個程式用來取得自己的電腦對外 IP
需要知道自己電腦連到外面的IP的情形, 而且需用程式的方式取得, (不是開網頁的方式取得)

取得 IP 的網站

以下為常用的取得IP的網站與本程式支援情況
https://whatismyipaddress.com/ # 支援
https://www.whatismyip.com/ # 尚未支援
http://www.whatismyip.com.tw/ # 尚未支援
https://myip.com.tw/ # 支援
https://www.rus.net.tw/myip.php # 支援
https://api.ipify.org # 支援

Github 連結:https://github.com/shengyu7697/PyGetMyPublicIP

Windows 編譯 cmake-gui

本篇介紹 Windows 編譯 cmake-gui 的步驟,

系統環境

作業系統:Win 7
版本:cmake 3.10.2

下載原始碼

官網下載
解壓縮 cmake-3.10.2.zipC:\

編譯

打開 Git Bash 執行下列指令產生 Visual Studio 專案檔

1
2
3
4
5
6
7
cd /c/cmake-3.10.2
mkdir -p build
cd build
cmake .. \
-G "Visual Studio 14 2015" \
-DCMAKE_INSTALL_PREFIX="../../install" \
-DBUILD_QtDialog

打開 C:\cmake-3.10.2\build\CMake.sln 進行編譯

如果編譯 Release 版本的話, 輸出的執行檔在 C:\cmake-3.10.2\build\bin\Release\cmake-gui.exe

相關文章
撰寫 cmake 的 CMakeLists.txt
CMake 專案裡 include .cmake 檔案

Vagrant 教學

本篇紀錄在 Ubuntu 下使用 Vagrant 基本指令與流程,

官網最新的 vagrant 下載
vagrant box 列表 這是別人做好的 box image

作業系統: Ubuntu 16.04
版本:vagrant 2.0.2

Step 1. 下載 box image (只有第一次需要做)

box image 會下載到 ~/.vagrant.d/boxes/
Ubuntu 14.04

1
vagrant box add u1404 https://github.com/kraksoft/vagrant-box-ubuntu/releases/download/14.04/ubuntu-14.04-amd64.box

Ubuntu 12.04

1
vagrant box add u1204 http://files.vagrantup.com/precise64.box

Setp 2. 初始一個虛擬機 與 啟動

啟動一個 虛擬環境 (使用 u1404 這個 box 樣本)

1
2
vagrant init u1404 # 初始化生成一個 Vagrantfile 檔案
vagrant up # 開機啟動

他會生成的虛擬機器檔在 ~/VirtualBox VMs 這個目錄下

以下為一些常用的基本指令:

1
2
3
4
vagrant halt # 關機
vagrant ssh # 登入
vagrant destroy # 刪除
vagrant reload # 重啟

修改虛擬機的 Ram Size

修改 Vagrantfile 裡的 vb.memory = "1024", 再重啟

參考
https://about.gitlab.com/downloads/#ubuntu1404

cmder 安裝

本篇紀錄在 Windows 7 下安裝 cmder,cmder 用來取代內建的 terminal,實在是好用很多,
作業系統: Win 7
版本:cmder v1.3.5

官網

讓 ls 可以顯示中文

Settings > Startup > Environment 加入 set LANG=zh_TW.UTF8
修改後如下:

1
2
set PATH=%ConEmuBaseDir%\Scripts;%PATH%
set LANG=zh_TW.UTF8

參考
http://wentaoma.com/2016/08/31/cmder-chinese-encode/
https://jeffjade.com/2016/01/13/2016-01-13-windows-software-cmder/

Ubuntu 安裝 C Sharp 環境 (使用 Mono)

本篇紀錄在 Ubuntu 下安裝 C Sharp 環境 (使用 Mono),
詳細安裝步驟可參考這裡
以下為我的環境安裝方式:

使用系統: Ubuntu 16.04
加入 repository

1
2
3
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt-get update

安裝 Mono

1
sudo apt-get install mono-devel

開啟 monoDevelope 使用!