原创 [CG] 用 Docker 配置 Ubuntu OpenGL 環境

成功在 MacOS 的 Docker 中運行 OpenGL 程序並顯示這裏記錄一下: 我用的是 https://hub.docker.com/r/thewtex/opengl 這個鏡像非常好,大部分工作都做好了,這裏用的是基於 CPU 的渲

原创 [CG從零開始] 6. 加載一個柴犬模型學習UV貼圖

在第 5 篇文章中,我們成功加載了 fbx 模型,並且做了 MVP 變換,將立方體按照透視投影渲染了出來。但是當時只是隨機給頂點顏色,並且默認 fbx 文件裏只有一個 mesh,這次我們來加載一個柴犬模型,並且給模型貼圖,模型可以從 ske

原创 [CG從零開始] 5. 搞清 MVP 矩陣理論 + 實踐

在 4 中成功繪製了三角形以後,下面我們來加載一個 fbx 文件,然後構建 MVP 變換(model-view-projection)。簡單介紹一下: 從我們拿到模型(主要是網格信息)文件開始,模型網格(Mesh)裏記錄模型的頂點位置信息

原创 [CG從零開始] 4. pyopengl 繪製一個正方形

在做了 1~3 的基礎工作後,我們的開發環境基本 OK 了,我們可以開始嘗試利用 pyopengl 來進行繪製了。 本文主要有三個部分 利用 glfw 封裝窗口類,並打開窗口; 封裝 shader 類,進行編譯、鏈接、使用; 封裝 VAO

原创 [CG從零開始] 3. 安裝 pyassimp 庫加載模型文件

assimp 是一個開源的模型加載庫,支持非常多的格式,還有許多語言的 binding,這裏我們選用 assimp 的 python 的 binding 來加載模型文件。不過社區主要是在維護 assimp 的 C++ 代碼,對於這些 bin

原创 [CG從零開始] 2. 徹底弄清OpenGL 涉及的工具庫

1. 跨平臺窗口管理 爲了將 OpenGL 渲染的內容在操作系統的窗口中顯示出來,我們不可避免的需要調用操作系統的 API 創建窗口、渲染上下文等等,每個操作系統的 API 都不一樣,爲了減少繁瑣工作以及爲了程序的可以移植性,有一些工具庫幫

原创 [CG從零開始] 1. 安裝 pyopengl

因爲只是爲了驗證原理和想法,實在不願意折騰 C++ 去編譯、鏈接找庫......,並且爲了配合今後一系列關於 CG 的文章,決定用 python 的 opengl wrapper 來進行實踐,所以第一步就是安裝 pyopengl 了。 pi

原创 [Golang] GO 語言工作環境的基本概念

1. GOPATH 和 GOROOT(環境變量) 1. GOROOT go 編譯器、標準庫等安裝的地方,所有我們寫的代碼其實都是文本文件而已,需要編譯器等工具將其加工成可執行文件或者庫文件才能使用,每種語言都有自己的這樣一套“工具”。GOR

原创 [Golang] cgo 調用 .so 捕獲異常問題

最近需要在 go 中去調用 .so 庫去完成一些事情,go 方面,利用 cgo 可以順利的調用 .so 中的方法,但是有個問題是 go 沒法捕獲 .so 那邊出現的異常。如果 .so 那邊異常了,那麼會帶崩 go 程序,這不是我們想看到的。

原创 [Blender] 在 腳本中創建 Mesh

有時候需要在 Blender 中創建一些 Mesh 進行下步操作,這個數據的來源是多要的,甚至可能是網絡傳輸過來的 Mesh 的信息,因此需要在腳本中動態的創建 Mesh,這裏簡單記錄一些如何在 Blender 的腳本中創建 Mesh。 h

原创 [Blender] Blender 獲取 Instance 的信息

最近希望用 Blender 生成 Instance 的能力,將生成的導入遊戲引擎中來渲染。Instance Rendering 是個好東西,特別是針對大場景,渲染成批的基本相同的物體的時候非常有用。 希望能用 Blender 做一些模板出來

原创 [HTTP] 文件下載-中文名的處理

在利用 python HTTP 下載文件的時候(如 Django),遇到文件名是中文的時候會遇到一些問題,比如亂碼等,在這裏記錄一下解決版本,和使用的編程語言沒有關係,關鍵是要把 Content-Disposition 給設置一下。需要將中

原创 [HTTP] HTTP 中的超時時間

1. Connection Timeout 對於一般的 HTTP 請求 API 來說,這個 Connection Timeout 代表客戶端最大的等待時長,如果超過了這個時間,那麼就會拋出異常,不會再繼續等待下去。因爲有的請求的 API 是

原创 利用VTK和PyQt5對醫學體數據進行渲染並展示

簡介 在一些醫學相關的簡單的項目(也許是學生的作業?畢業設計?)中,有時候可能需要集成一些可視化的功能,本文簡單介紹一下,如何利用PyQt5和VTK來渲染體數據(三維數據),並集成進PyQt的UI框架中。 代碼在倉庫 https://gi

原创 學習HTTP——HTTPS

前言 因爲工作需要,需要用到大量的關於 HTTP 協議的知識,目前掌握的關於 HTTP 請求以及協議的知識都是零散的,打算針對知識盲區系統的學習一些,理清概念。 爲什麼會出現 HTTPS 因爲 HTTP 存在一些難以解決的問題,以下是安全性