OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/28 14:40:50
OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码
x[OQǿOFq EHIHj j1U )KJAETl*E̹,O~Y-P] 33nC{e^;mjƫA.CP)E@\ɬt J{S$U6{4G6nF &@3ʁR'O` rJD0.H3%ڇZl oPoK',PHJBgYB#(,DLBGa,.D|%r/%Y}A@)O gat^3A>׎A1*,J;PB7LPXC ߭J(v62`93poN)ae7OP.* ݆1_NH8R^ɕwR#JP4H(8:xg|B-A\mwUwUb. a6m4#3W[Q9} axhu8:R;CDzC%3rn Oօ UWRT IWUFjWFz_H:EzVe'Hں%CӦH^OSyzk;7mۼIk1ZL.l7-}rJu9lZ^w*&t4w6P+ERkRjF.쮁 ɮ]^uN]N3

OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码
OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码

OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码
    是这样的,你电脑上OpenGL的实现代码其实是不可能看到的,它是跟着显卡走的,应该在显卡驱动程序里(或许是用汇编实现的),这是我的认识.
    但并不是没有办法了,Mesa一直以开源的形式实现了OpenGL的一些接口,我们可以拿来学习和参考,比如你说的这个translate接口,其实就是一个模型矩阵运算问题,我摘抄了Mesa的m_matrix.c文件里的实现:
void _math_matrix_translate( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z )
{
   GLfloat *m = mat->m;
   m[12] = m[0] * x + m[4] * y + m[8]  * z + m[12];
   m[13] = m[1] * x + m[5] * y + m[9]  * z + m[13];
   m[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
   m[15] = m[3] * x + m[7] * y + m[11] * z + m[15];

   mat->flags |= (MAT_FLAG_TRANSLATION |
 MAT_DIRTY_TYPE |
 MAT_DIRTY_INVERSE);
}
Mesa的网址是www.mesa3d.org,你可以去down代码.