一、开发环境说明

  • 操作系统:windows
  • 开发软件:Visual Studio 2017
  • 编程语言:基于控制台下的opengl
  • 用到的库: glut

opengl环境配置可参照上一篇博客:控制台+OPENGL配置说明[GLUT篇]

二、要求说明

  • 构造三维物体的几何模型,显示未消影的线框图,消影的线框图,构造较复杂模型或多模型;
  • 对三维模型设置光照模型,环境光,漫反射光,镜面反射光,材质设置,衰减等设置;
  • 对三维模型进行纹理,其他效果;
  • 三维物体真实感整体效果

三、内容说明

(1)功能介绍
--绘制 床、桌子、电脑、衣柜、电脑、椅子、灯
--实现纹理贴图
--实现按键交互
--实现光照模型
--显示线框、3D模型不同模式显示
--实现旋转、平移视角功能
--实现动画效果:钟表实时运动、椅子自动旋转
(2)操作说明
 --按键:'W'     --  控制视角前进--按键:'S'     --  控制视角后退--按键:'A'     --  控制视角左转--按键:'D'     --  控制视角右转--按键:'T'     --  旋转座椅--按键:'B'     --  开/关 灯--按键:'H'     --  3D显示--按键:'J'     --  未消隐的线框显示--按键:'K'     --   消隐的线框显示
(3)程序目录截图

(5)程序部分代码展示
void DrawDesk()//绘制桌子
{glPushMatrix();float ambientlight1[] = { 116.0/250.0,165.0/250.0 ,182.0 / 250.0,1.0f };glMaterialfv(GL_FRONT, GL_AMBIENT, ambientlight1);//桌子面glPushMatrix();glTranslatef(0, 0.73, 0);DrawCube(1, 0.1, 1, g_bitmap[0]);glPopMatrix();float ambientlight2[] = { 0.1, 0.1, 0.1,1.0f };glMaterialfv(GL_FRONT, GL_AMBIENT, ambientlight2);//桌子腿1glPushMatrix();glTranslatef(0.8, 0.0, 0.8);DrawCube(0.1, 0.8, 0.1, g_bitmap[0]);glPopMatrix();//桌子腿2glPushMatrix();glTranslatef(-0.8, 0.0, 0.8);DrawCube(0.1, 0.8, 0.1, g_bitmap[0]);glPopMatrix();//桌子腿3glPushMatrix();glTranslatef(-0.8, 0.0, -0.8);DrawCube(0.1, 0.8, 0.1, g_bitmap[0]);glPopMatrix();//桌子腿4glPushMatrix();glTranslatef(0.8, 0.0, -0.8);DrawCube(0.1, 0.8, 0.1, g_bitmap[0]);glPopMatrix();glPopMatrix();
}
(6) 运行效果展示

四、 测试用例及代码下载

  • 测试用例下载:点击exe文件,可以直接运行;
  • 整个代码工程下载

opengl 绘制房间 卧室 :桌椅板凳+床+衣柜相关推荐

  1. Opengl+glfw+glew 大作业 绘制房间卧室客厅+雪花雪人

    一.开发环境说明 操作系统:windows 开发软件:Visual Studio 2017 编程语言:基于控制台下的opengl 用到的库: glfw .glew 底部提供代码下载 opengl环境配 ...

  2. OpenGL(十八)——Qt OpenGL绘制一个3D世界

    OpenGL(十八)--Qt OpenGL绘制一个3D世界 一.说明 本篇介绍构建一个3D的世界. 二.简介 加载3D世界,并在其中漫游: 在这一课中,你将学会如何加载3D世界,并在3D世界中漫游. ...

  3. 如何用 OpenGL 绘制雪花?

    作者 | 许向武 责编 | 张红月 出品 | CSDN博客 看冬奥才知道,阿勒泰不但是中国的"雪都",还是"人类滑雪起源地".这个说法是否成立,姑且不论,阿勒泰 ...

  4. 使用OpenGL绘制圆环体(Torus)

    本篇介绍一下使用OpenGL绘制圆环体的方法.程序是在C#和OpenTK环境下编译的. 代码: /// <summary> /// 绘制圆环体 /// </summary> / ...

  5. 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )

    文章目录 一.绘制三角形 二.三角形绘制顺序 1.绘制正面 2.三个点逆时针方向排列 3.三个点顺时针方向排列 4.设置点的正面方向 三.绘制多个三角形 四.相关资源 一.绘制三角形 三角形绘制即绘制 ...

  6. 【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )

    文章目录 一.绘制单个点 二.绘制多个点 三.相关资源 在上一篇博客 [OpenGL]十.OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | ...

  7. 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )

    文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...

  8. 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )

    文章目录 一.OpenGL 状态机概念 二.OpenGL 矩阵概念 上一篇博客 [OpenGL]八.初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗 ...

  9. OpenGL绘制二个不同颜色的三角形的实例

    OpenGL绘制二个不同颜色的三角形 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #include & ...

最新文章

  1. C#调用控制面板选项
  2. linux下的CPU频率管理器
  3. ActionBarSherlock包的使用
  4. lhgdialog 4.2.0 正式版发布
  5. 数据结构与算法 -- 再论递归
  6. stm32f103r6最小系统原理图_超强PCB布线设计经验谈附原理图
  7. 【php数组函数序列】之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值...
  8. golang 指针总结(与C/C++区别不大,就是不可以p+1偏移)
  9. python一个等号和两个等号的区别_请问Python语言中is与双等号==有什么区别及作用...
  10. 安卓10不支持qmc解码_基于安卓10的LineageOS 17.1来了,支持一加、小米、LG等机型...
  11. 分布式计算机系统概要
  12. java工程师英文简历_软件工程师英文简历
  13. AFDX(ARINC664)的交换机规范
  14. Redis高可用群集——主从复制+哨兵模式
  15. 管理信息系统MIS复习总结
  16. 用计算机打字教案,使用打字软件练指法教案
  17. 帝国站长php主动推送,帝国CMS 链接主动推送插件设置帮助
  18. DCOS(centos 7.4/7.6)
  19. 《Hands-On Machine Learning with Scikit-Learn TensorFlow》读书笔记(三):分类
  20. 最高法规定网络转载涉嫌侵权需担责 10月10日起施行

热门文章

  1. hdu 2058 解题报告 - The sum problem
  2. 判断字母数字下划线python_如何验证字符串只包含字母、数字、下划线和破折号?...
  3. 2023年计算机、视觉与智能技术国际会议(ICCVIT 2023)
  4. 赢在数据(R+Hadoop)群电子刊物《数据赢家》第三期出炉
  5. 搜索引擎原理、技术与系统读书笔记(4)
  6. Oracle创建表空间/用户及导入导出
  7. Keras NLP——词袋模型
  8. java基于ssm+vue+elementui的旅游线路分享管理系统
  9. 数据可视化大屏设计、echarts大屏展示数据、炫酷的科技感大屏展示
  10. vin端口是什么意思_5G NR和4G LTE 协议中的天线端口定义