我需要幫助加載自定義文件格式到我的程序在C++中... 我知道有一個簡單的方法做到這一點,但我認爲我使用 錯誤的術語來尋找它的在線...需要幫助加載簡單的文本數據與c + +
我的3D對象的自定義格式如下:
NumVerts 6
//verts (float)
-1
-1
0
1
-1
0
-1
1
0
1
-1
0
1
1
0
-1
1
0
//texture (float)
0
0
1
0
0
1
1
0
1
1
0
1
//index (int)
0
1
2
1
3
2
而且爲四...(贊成票;我知道......太可怕了......格式,但這就是我用於安卓遊戲的原因)。
我想爲我的編輯器(SDL + OpenGL for windows)製作一個函數,將這些文件加載到數據中......不幸的是,儘管我知道如何用C++導出這種格式,但我無法弄清楚導入他們...我希望使用fstream命令...
如果有人能夠快速寫出一個簡單的版本,我會非常感激。
我只是把它做到以下幾點:從輸入字符串
- 查找文本文件
- 讀「NumVerts」,並抓住它
- 通過下一個循環之後寫的整數(NumVerts * 3)線並抓住每個號碼爲float
- 循環雖然下一個(NumVerts * 2)線和抓住每個號碼爲float
- 遍歷下一(NumVerts * 1)線並抓住每個號碼作爲一個Int
- (跳過以「//」開頭的任何行)
- 關閉文件。
謝謝您的閱讀和任何幫助將是非常不錯的,現在......還是relivent鏈接,很簡單,並讀取從他們的文件和爭奪數字的字符串被放置到內存...
我真的只想完成這個遊戲,它試圖找到有用的教程變得非常緊張。
更新:更新腳本...我不小心忘了單獨的1只0 ...
如果這是一個嚴重的項目,你應該考慮一個更有效的二進制格式(也許像NetCDF)。 –
@KerrekSB關於「嚴肅的項目」,我有點不願意使用二進制格式,因爲它們不一定是可移植的(endianess,浮點格式)。例如,COLLADA相當「嚴肅」,仍然將頂點存儲爲字符串。 – zerm
@zerm:像NetCDF這樣的自描述功能的設計考慮到了可移植性......無論如何,序列化可移植性僅僅是衡量作者記錄格式的能力的尺度! –