贝塞尔曲面

所属分类:OpenGL
开发工具:WINDOWS
文件大小:129KB
下载次数:32
上传日期:2017-12-09 21:17:46
上 传 者flyin
说明:  利用OpenGL实现简单的Bezier曲面并添加纹理映射
(bezier surface based on OpenGL)

文件列表:
Data (0, 2017-11-10)
Data\123.jpg (143029, 2017-11-10)
main.cpp (5724, 2017-11-12)

程序说明: 利用OpenGL实现贝赛尔曲面的绘制 实验步骤: 1.给定25个控制点坐标 GLfloat ctrlPoints2[5][5][3] = {{{-0.80, -0.80, -0.50}, {-0.40, -0.80, -0.20},{0.00,-0.80,0.00}, {0.40, -0.80,-0.20}, {0.80, -0.80, -0.50}}, {{-0.80, -0.40, -1.00}, {-0.40, -0.40, 0.00},{0.00,-0.40,0.50}, {0.40, -0.40, 0.00}, {0.80, -0.40, -1.00}}, {{-0.80, 0.00, -0.50}, {-0.40, 0.00, -0.20},{0.00,0.00,0.00}, {0.40, 0.00, -0.20}, {0.80, 0.00, -0.50}}, {{-0.80, 0.40, 0.00}, {-0.40, 0.40, -0.30},{0.00,0.40,-0.50}, {0.40,0.40, -0.30}, {0.80, 0.40, 0.00}}, {{-0.80, 0.80, -0.50}, {-0.40, 0.80, -0.20}, {0.00,0.80,0.00},{0.40,0.80, -0.20}, {0.80, 0.80, -0.50}}}; 2.给定相应纹理坐标: GLfloat interval = (GLfloat)1/(GLfloat)4; GLfloat textureCoordinates[5][5][2] = {{{0.0f, 0.0f}, {interval, 0.0f}, {2*interval, 0.0f}, {3*interval, 0.0f},{1.0f, 0.0f}}, {{0.0f, interval}, {interval, interval}, {2*interval, interval},{3*interval, interval}, {1.0f, interval}}, {{0.0f, 2*interval}, {interval, 2*interval}, {2*interval, 2*interval},{3*interval, 2*interval}, {1.0f, 2*interval}}, {{0.0f, 3*interval}, {interval, 3*interval}, {2*interval, 3*interval},{3*interval, 3*interval}, {1.0f, 3*interval}}, {{0.0f, 1.0f}, {interval, 1.0f}, {2*interval, 1.0f},{3*interval, 1.0f}, {1.0f, 1.0f}}}; 3.配置求值器 glMap2f(GL_MAP2_VERTEX_3, 0.0f, 1.0f, 3, 5, 0.0f, 1.0f, 15, 5, &ctrlPoints2[0][0][0]); //map vertex glMap2f(GL_MAP2_TEXTURE_COORD_2, 0.0f, 1.0f, 2, 5, 0.0f, 1.0f, 10, 5, &textureCoordinates[0][0][0]); //map texture coordinate 实验环境:Windows10 visual studio2012

近期下载者

相关文件


收藏者