OpenGL step to step
Posted 什么刀枪棍棒,我都耍的不怎么样
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL step to step相关的知识,希望对你有一定的参考价值。
?这是一个类似于地球绕太阳旋转的demo
原有的例子是用键盘接受事件,我做了修改,使用了timer把他变成一个动态旋转的
#import <Foundation/Foundation.h> #include <GLUT/GLUT.h> static int year=0,day=0; void init() { glClearColor(0,0,0,0); glShadeModel(GL_FLAT); } void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1,1,1); glPushMatrix(); glutWireSphere(1,20,16); glRotatef((GLfloat)year,0,1,0); glTranslated(2,0,0); glRotatef((GLfloat)day,0,1,0); glutWireSphere(0.2,10,8); glPopMatrix(); glutSwapBuffers(); } void reshape(int w,int h) { glViewport(0, 0, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60,(GLfloat)w/(GLfloat)h,1,20); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,0,5,0,0,0,0,1,0); } void fishboard() { day=(day+10)%360; year=(year+5)%360; glutPostRedisplay(); } void timerProc(int id) { fishboard(); glutTimerFunc(50,timerProc,1);//需要在函数中再调用一次,才能保证循环 } int main(int argc,char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500, 500); glutInitWindowPosition(100,100); glutCreateWindow("Xcode Glut Demo"); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutTimerFunc(50,timerProc,1); glutMainLoop(); return 0; }
以上是关于OpenGL step to step的主要内容,如果未能解决你的问题,请参考以下文章
初识OpenGL 片段着色器(Fragment Shader)
初识OpenGL 片段着色器(Fragment Shader)
IDEA单步断点调试Step Into/Step Out/Step Over/Run to Cursor
IDEA单步断点调试Step Into/Step Out/Step Over/Run to Cursor