讀取obj mtl 檔案 OpenGL C

2021-08-21 00:13:42 字數 1288 閱讀 2800

對於mtl以及obj檔案的格式在這裡就不細說了,網上也有更詳細的,這裡主要說一下我讀取檔案的基本思路。

mtl檔案的讀取,我們首先要做的就是分割每個資料,如下圖 我們需要按行分割,以及將每一行中的資料按空格切分。相當於分割字串。map_ka 表示引用。因此當讀取到map_ka 這個字串時,要把下乙個字串設為讀取紋理的位址。

其它的 例如ka kd等表示的都是材質光照之類的,有對應的opengl函式可以設定。如下:為乙個例子

glmaterialfv(gl_front_and_back, gl_ambient, m_mtls[i]->ka);

glmaterialfv(gl_front_and_back, gl_diffuse, m_mtls[i]->kd);

在讀取obj檔案中,除了要分割空格,還要分割 "/" ,當讀取的第乙個資料內容為f時,就需要分割「/」

f 1/1/1 2/2/1 3/3/1 4/4/1 

f 1/1/2 5/5/2 6/6/2 2/2/2

f 7/7/3 8/8/3 2/2/3 6/6/3

分割後,再進行儲存資料。

在obj中,三個頂點構成的面與四個頂點構成的面,我都用了三角麵片來表示。具體的看注釋。

先寫到這兒~有時間再繼續寫

讀取配置檔案並讀取檔案

配置檔案 url users z ten documents name myfile.txt url是讀寫檔案的檔案位址,name是讀寫檔案的檔名稱 fileinputstream is null try catch filenotfoundexception e2 properties pt ne...

Java檔案讀取 jar包內檔案讀取

最近遇到一些jar包內外配置檔案讀取的問題。索性自己測試總結一下,與大家分享。主要是關於classloader.getresource和class.getresource方法路徑區別的問題。1.絕對路徑檔案讀取,最簡單,最直接的方式 從絕對路徑讀取檔案,最基本的檔案讀取方式 author lihzh...

C 讀取檔案

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...