[問題] 在Direct3D載入.obj檔的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2008
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
Direct3D(不過不太重要)
問題(Question):
是這樣的
我正在照著這個網站的教學寫Direct3D的程式
http://www.directxtutorial.com/Tutorial9/B-Direct3DBasics/dx9B7.aspx
這裡是我寫的程式
http://nopaste.info/9f5a6f9ac7.html
基本上其他地方都和教學差不多
自己有改的部分只有258行開始的init_graphics()函式
也只是改一些點的位置而已
跑出來的東西很奇怪,不過那不是重點
主要是在這個程式裡面記載各個vertex和index的陣列是寫死的
而我希望能夠讓程式載入外部的obj檔
並從obj檔裡面parse出需要的資料
於是我寫了一個parser
http://nopaste.info/d6d3bb5ff5.html
而拿來做測試資料的obj檔內容如下:
v 1 1 1
v 1 1 -1
v 1 -1 1
v 1 -1 -1
v -1 1 1
v -1 1 -1
v -1 -1 1
v -1 -1 -1
f 1 3 4 2
f 5 7 8 6
f 1 5 6 2
f 3 7 8 4
f 1 5 7 3
f 2 6 8 4
(理論上,這個obj檔的內容會跑出和上面那支程式一樣的結果)
這個parser很單純的把obj檔裡面的各個數字做分類
v開頭的話
就把後面三個數字放到vertices[]陣列的三個座標裡面
而f開頭的話
就存到indices[]陣列裡面
這個parser我已經執行過很多次了,沒有問題
但是當我把parser部分整合到Direct3D程式的時候
卻出現了很大的問題
下面是我整合後的程式
http://nopaste.info/19c1bf377a.html
有換掉的地方就是把原本寫死的陣列換成讀進obj檔的程式而已
但是這樣在compile的時候會出現錯誤
stack around the variable 'temp' was corrupted
為什麼會發生這樣的錯誤呢?
我想錯誤應該不是在處理檔案的部分
因為我把parser獨立執行是可以的
所以我想是我做的陣列和原本寫死的陣列不同
但是比對了很多次,感覺都沒有什麼不一樣的地方
想請教板上的各位網友自己是在哪裡犯了錯誤這樣
在這邊先感謝各位的解答m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 70.162.57.56
推
01/15 13:39, , 1F
01/15 13:39, 1F
→
01/15 13:48, , 2F
01/15 13:48, 2F
→
01/15 13:50, , 3F
01/15 13:50, 3F
→
01/15 13:51, , 4F
01/15 13:51, 4F
推
01/15 14:56, , 5F
01/15 14:56, 5F
→
01/15 14:57, , 6F
01/15 14:57, 6F
→
01/15 14:58, , 7F
01/15 14:58, 7F
→
01/15 15:01, , 8F
01/15 15:01, 8F
→
01/15 17:00, , 9F
01/15 17:00, 9F
→
01/16 01:38, , 10F
01/16 01:38, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章