扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国电波传播研究所郎锐 来源:天极网 2007年10月19日
关键字:
//节点序列 GLfloat Notes[8]={0.0f,0.0f,0.0f,0.0f,1.0f,1.0f,1.0f,1.0f}; //定义控制点 for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { LinchpinPt[i][j][0]=(GLfloat)(3.0f*(i-0.5f)); LinchpinPt[i][j][1]=(GLfloat)(3.0f*(j-0.5f)); if(0<i && i<3 && 0<j && j<3) LinchpinPt[i][j][2]=4.0f; else LinchpinPt[i][j][2]=-4.0f; } } |
//创建NURBS曲面对象 Nurb=gluNewNurbsRenderer(); //设置NURBS曲面对象属性 gluNurbsProperty(Nurb,GLU_SAMPLING_TOLERANCE,30.0f); gluNurbsProperty(Nurb,GLU_DISPLAY_MODE,GLU_FILL); //开始NURB区间绘制 gluBeginSurface(Nurb); //定义NURBS曲面的形状 gluNurbsSurface(Nurb,8,Notes,8, Notes,4*3,3, &LinchpinPt[0][0][0], 4,4,GL_MAP2_VERTEX_3); //结束曲面绘制 gluEndSurface(Nurb); glPopMatrix(); //强制绘图,不驻留缓存 glFlush(); |
void gluNurbsSurface( GLUnurbsObj * nobj, //NURBS曲面对象 GLint sknot_count, //u方向节点数目 GLfloat * sknot, //u方向节点数组指针 GLint tknot_count, //v方向节点数目 GLfloat * tknot, //v方向节点数组指针 GLint s_stride, //u方向控制点数据跨度 GLint t_stride, //v方向控制点数据跨度 GLfloat * ctlarray, //控制点数组指针 GLint sorder, //u方向上多项式阶数 GLint torder, //v方向上多项式阶数 GLenum type //确定求值器类型 ); |
GLfloat Light_position[]={1.0f,1.0f,1.0f,0.0f,}; GLfloat Light_diffuse[]={1.0f,1.0f,0.0f,1.0f,}; glLightfv(GL_LIGHT0,GL_POSITION,Light_position); //定义光源位置 glLightfv(GL_LIGHT0,GL_DIFFUSE,Light_diffuse); //定义光源漫射光 glEnable(GL_AUTO_NORMAL); //自动生成曲面法向量 glEnable(GL_LIGHTING); //启动光照模型; glEnable(GL_LIGHT0); //使光源GL_LIGHT0有效 |
//设置材质的反射成分 GLfloat mat_ambient[]={0.8f,0.8f,0.8f,1.0f}; GLfloat mat_diffuse[]={0.8f,0.0f,0.0f,1.0f}; //紫色 GLfloat mat_specular[]={1.0f,0.0f,1.0f,1.0f}; //镜面高光亮紫色 GLfloat mat_shininess[]={100.0f}; //高光指数 glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient); //定义环境光反射率 glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse); //定义漫射光反射率 glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); //定义镜面光反射率 glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); //定义高光指数 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者