glrotatef 函数好像没有起任何作用,求高手指点
-(bool) activeDraw
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode(GL_MODELVIEW);
RGBF clf[7];
vertex *vet ;
vector<int>::iterator itr ;
for( itr = crc->vi_still.begin () ; itr != crc->vi_still.end() ; itr++ )
{
crc->rb_buf[*itr].GetShowData( vet, clf) ;
/ [self ShowBlock:vet :clf];
}
crc->rot_deta += -0.144*fabs( crc->rot_alpha - 25 )+3.6 ;
crc->rot_alpha ++ ;
glPushMatrix();
glLoadIdentity();
glRotatef(crc->rot_alpha , crc->rot_x , crc->rot_y , crc->rot_z);
for( itr = crc->vi_rot.begin () ; itr != crc->vi_rot.end() ; itr++ )
{
crc->rb_buf[*itr].GetShowData( vet, clf) ;
[self ShowBlock:vet :clf];
}
glPopMatrix();
if( crc->rot_alpha == 50 )
{
return true ;
}
glFinish();
}
解决方案:40分
本人写一般是用glm数学库构造一个rotate matrix,然后用uniform函数传到shader里面,给全部顶点都乘上这个uniform,就完成旋转了。