OpenGL中gltranslate()的函数代码,我会用这个函数,我要的是这个函数的实现代码
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/07 08:26:13
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代码.
但并不是没有办法了,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代码.
matlab中能否用fzero求导函数零点,请来看一下我的代码
如何用matlab求函数最小值最大值啊?帮忙编一下这个函数的代码,
matlab中把这段代码保存到m文件后,要输入什么代码才能使用这段函数,我的矩阵怎样才能利用这段代码运算?
如何运用Mathematica制作一个心形的数学函数图像?我要代码
lingo 目标函数的代码编写
求Matlab中regress函数的源程序代码
C语言.函数定义.long fact(int n) 用这个怎么编出求阶乘的代码,另外编译
函数定义 函数定义:函数是一个独立的、自主式代码段,用于完成特定的任务.每个函数都有名称,函数中的代码是通过程序语句中包
关于matlab 建立函数M文件 实现两个矩阵相乘.请给出具体的代码,
关于matlab中solve函数求解方程组的问题,代码如下,而显示结果如图所示,为什么.我用的版本R2013a
openGL的glNormal3f()函数的理解问题。
再问你个问题呗,在matlab中怎么建立y=b(1)*[x-b(2)]这个模型的M函数,代码怎么写啊?