opengl 绘制房间 卧室 :桌椅板凳+床+衣柜
一、开发环境说明
- 操作系统: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 绘制房间 卧室 :桌椅板凳+床+衣柜相关推荐
- Opengl+glfw+glew 大作业 绘制房间卧室客厅+雪花雪人
一.开发环境说明 操作系统:windows 开发软件:Visual Studio 2017 编程语言:基于控制台下的opengl 用到的库: glfw .glew 底部提供代码下载 opengl环境配 ...
- OpenGL(十八)——Qt OpenGL绘制一个3D世界
OpenGL(十八)--Qt OpenGL绘制一个3D世界 一.说明 本篇介绍构建一个3D的世界. 二.简介 加载3D世界,并在其中漫游: 在这一课中,你将学会如何加载3D世界,并在3D世界中漫游. ...
- 如何用 OpenGL 绘制雪花?
作者 | 许向武 责编 | 张红月 出品 | CSDN博客 看冬奥才知道,阿勒泰不但是中国的"雪都",还是"人类滑雪起源地".这个说法是否成立,姑且不论,阿勒泰 ...
- 使用OpenGL绘制圆环体(Torus)
本篇介绍一下使用OpenGL绘制圆环体的方法.程序是在C#和OpenTK环境下编译的. 代码: /// <summary> /// 绘制圆环体 /// </summary> / ...
- 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )
文章目录 一.绘制三角形 二.三角形绘制顺序 1.绘制正面 2.三个点逆时针方向排列 3.三个点顺时针方向排列 4.设置点的正面方向 三.绘制多个三角形 四.相关资源 一.绘制三角形 三角形绘制即绘制 ...
- 【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
文章目录 一.绘制单个点 二.绘制多个点 三.相关资源 在上一篇博客 [OpenGL]十.OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | ...
- 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...
- 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
文章目录 一.OpenGL 状态机概念 二.OpenGL 矩阵概念 上一篇博客 [OpenGL]八.初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗 ...
- OpenGL绘制二个不同颜色的三角形的实例
OpenGL绘制二个不同颜色的三角形 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #include & ...
最新文章
- C#调用控制面板选项
- linux下的CPU频率管理器
- ActionBarSherlock包的使用
- lhgdialog 4.2.0 正式版发布
- 数据结构与算法 -- 再论递归
- stm32f103r6最小系统原理图_超强PCB布线设计经验谈附原理图
- 【php数组函数序列】之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值...
- golang 指针总结(与C/C++区别不大,就是不可以p+1偏移)
- python一个等号和两个等号的区别_请问Python语言中is与双等号==有什么区别及作用...
- 安卓10不支持qmc解码_基于安卓10的LineageOS 17.1来了,支持一加、小米、LG等机型...
- 分布式计算机系统概要
- java工程师英文简历_软件工程师英文简历
- AFDX(ARINC664)的交换机规范
- Redis高可用群集——主从复制+哨兵模式
- 管理信息系统MIS复习总结
- 用计算机打字教案,使用打字软件练指法教案
- 帝国站长php主动推送,帝国CMS 链接主动推送插件设置帮助
- DCOS(centos 7.4/7.6)
- 《Hands-On Machine Learning with Scikit-Learn TensorFlow》读书笔记(三):分类
- 最高法规定网络转载涉嫌侵权需担责 10月10日起施行
热门文章
- hdu 2058 解题报告 - The sum problem
- 判断字母数字下划线python_如何验证字符串只包含字母、数字、下划线和破折号?...
- 2023年计算机、视觉与智能技术国际会议(ICCVIT 2023)
- 赢在数据(R+Hadoop)群电子刊物《数据赢家》第三期出炉
- 搜索引擎原理、技术与系统读书笔记(4)
- Oracle创建表空间/用户及导入导出
- Keras NLP——词袋模型
- java基于ssm+vue+elementui的旅游线路分享管理系统
- 数据可视化大屏设计、echarts大屏展示数据、炫酷的科技感大屏展示
- vin端口是什么意思_5G NR和4G LTE 协议中的天线端口定义