OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 11:47:55
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代码.