前面的工作做好之後,繪製的**就沒那麼麻煩了,但是要注意紋理座標和麵的節點座標是交替進行的,就是乙個紋理座標,乙個節點座標~否則顯示不出來紋理!(成功的圖就不發了,估計是要保密的~)
//渲染模型
void _gldraw(_glmodel* model, size_t mode)
if (mode & _gl_smooth && model->num_normals == 0)
if (mode & _gl_texture && model->num_textcoords == 0)
glpushmatrix();
//gltranslatef(model->center[0], model->center[1], model->center[2]);
for (size_t i = 0; i < model->num_faces; i++)
glbegin(gl_polygon);
//glbegin(gl_quads);
if (mode&_gl_flat)
for (int k = 0; k < f.list_index_points.size(); k++)
if (mode&_gl_smooth&&f.list_index_vertnormals.size()>0)
point3 p = model->list_vertices[f.list_index_points[k]];
glvertex3f(p._x, p._y, p._z);
}glend();
}glpopmatrix();
}
全部的**已經放在了github上了,戳我;
但是沒c++基礎確實看的很辛苦!!!
Qt實現讀取顯示obj檔案 說明
年後回來乙個多月基本上都在研究opengl的東西 由於c qt和三維的基礎基本都是0,所以有些吃力,好在在動手寫 將近20天之後總算做出了一點成績 由於obj格式雖然基本相同,但是還是有些大同小異的地方,我在參考了glm.c的原始碼和我需要讀取的obj格式之後寫出的 這是我的obj檔案的格式,v v...
Qt實現讀取顯示obj檔案 計算面的單位法向量
計算面的法向量是乙個數學過程,相信很多人都已經將這個知識還給老師了!此處應有乙個哭臉 其實主要的原理就是計算兩個向量的點積 dot product 我發誓這個概念真的第一次出現在我人生中 也就是交叉乘積!a a1,a2,a3 b b1,b2,b3 a b a2b3 a3b2,a3b1 a1b3,a1...
Qt實現讀取顯示obj檔案 歸一化座標
歸一化座標的最大用處就是將節點座標轉換在 1 1的範圍內,從而可以顯示在我們的視線範圍內!總體的思路就是找出節點中最大值作為基數,然後平移,縮放!將圖形移到螢幕中間來 float glunitize glmodel model w glmabs maxx glmabs minx h glmabs m...