OpenGL设计房间 (虚拟现实大作业)
嘿嘿,课内虚拟现实课程的大作业,做了一个基于opengl房间,参考网上的一些资料,再进行一些扩充。还有一个unity3d的大作业将在之后上传。
项目说明:
本项目基于OpenGL实现,编辑器VS,使用gl/glut.h库。
实现up键前进,down键后退,left左移,right右移,w视角上转,s视角下转,a左转,d右转,o关灯或开灯。具体实现内容包含纹理映射、光照、材质、控制浏览,并显示墙壁、玻璃、卧室、客厅、厨房中二十余种物体。
效果展示:
部分代码:
主函数:
void main(int argc, char* argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutInitWindowPosition(100, 100);
glutCreateWindow("opengl room");
init();
glutReshapeFunc(reshape);
glutSpecialFunc(SpecialKeys);
glutKeyboardFunc(processNormalKeys);
glutDisplayFunc(draw);
glutMainLoop();
}
按键:
void processNormalKeys(unsigned char key, int x, int y) {
switch (key)
{
case 'w':
rotate_x -= 5;
break;
case 's':
rotate_x += 5;
break;
case 'a':
rotate_y -= 1;
break;
case 'd':
rotate_y += 1;
break;
case 'o':
lflag = !lflag;
break;
default:
break;
}
// 刷新
glutPostRedisplay();
}
/*生成棋盘纹理*/
void makeCheckImage(void) {
int i, j, c;
for (i = 0; i < checkImageHeight; i++) {
for (j = 0; j < checkImageWidth; j++) {
c = ((((i & 0x8) == 0) ^ ((j & 0x8)) == 0)) * 255;
checkImage[i][j][0] = (unsigned char)c;
checkImage[i][j][1] = (unsigned char)c;
checkImage[i][j][2] = (unsigned char)c;
checkImage[i][j][3] = (unsigned char)c;
}
}
}
完整代码和详细资料放在:
OpenGL设计房间 (虚拟现实大作业)相关推荐
- 虚拟现实大作业——VR游乐园之需求分析文档
虚拟现实大作业--VR游乐园之需求分析文档 一. 引言 1.1 编写的目的 本文编写的目的是为VR游乐园项目的开发提供: (1).软件要求:在Unity中,使用设备连接工具steamVR.VRTK电脑 ...
- 【网页设计】期末大作业html+css(B站首页 1页 带js轮播)
⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制 ...
- HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码...
HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...
- HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码
HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...
- web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)...
仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~游戏网页作业HTML+CSS+JavaScript实现,共有游戏首页 等页面! ...
- 港珠澳大桥介绍网站设计【期末大作业】源码
文章目录 前言 一.网站设计要求 二.信息等相关素材收集 三.个人网站的总体规划和步骤 1.设计的目的 2.设计布局 3.网站具体设计过程 总结 前言 网页预览 一.网站设计要求 1️⃣站点题目:自定 ...
- HTML网页设计期末课程大作业 :汽车网页——宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载
HTML网页设计期末课程大作业 :汽车网页--宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载 临近期末, 你还在为HTML网页设计结课作 ...
- 【网页设计】期末大作业html+css(我的音乐网站)
⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | | HTML期末大学生网页设计作业 HTML:结构 CSS:样 ...
- 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规
HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...
- HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规
HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...
最新文章
- 获取SQLServer数据库中所有表
- 微服务系列(五):事件驱动的数据管理
- AI键盘侠来了:DeepMind开始训练智能体像人一样「玩」电脑
- 得到相对Plugin的路径
- 【正一专栏】警察叔叔,我还是只是一个婴儿
- foxmail怎么加入黑名单 foxmail导入黑名单邮箱地址的教程
- zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法
- 二级VB培训笔记04:程序控制结构、数组和过程
- linux ubuntu mysql 安装_1.MySQL的安装(linux Ubuntu环境下)
- cannot remove `libtoolT’: No such file or directory
- storm32云台说明书_STorM32 BGC三轴增稳云台驱动下载
- 电信光猫DDNS的设置经历
- Python 实现单词翻译
- matlab 图例 显示几个,matlab图例拆分成两个多个分别显示
- 【操作系统】进程通信
- Mac连接Windows共享的老式打印机
- 编写一个方法,计算kkk^^kk (共n个k,n0)的值。例如k=2,n=5则为22222。调用方法求s1=6+66+666+6666+66666
- 当前的安全设置不允许从该位置下载文件--解决方法
- 实验整理(一)——钓鱼邮件攻击实验
- android手机连接hdmi,手机hdmi转接线的介绍以及连接方法
热门文章
- 余额宝收益创新低:存10万一天赚不到7块
- tp框架php全局变量,ThinkPHP 常用全局变量
- linux ubuntu 数据处理,linux使用---1.ubuntu使用记录
- 【华为机试真题详解】判断字符串子序列【2022 Q1 Q2 | 200分】
- 使用mybatisplus的insert方法报错:org.apache.ibatis.reflection.ReflectionException: Could not set property
- CNN逆卷积层(ConvTranspose2d)输出有马赛克网格
- 艺术海报,纸上的舞台--江苏
- 历史第一黄仁勋:创业30年,万亿美金,他还是CEO
- 利用Topshelf搭建Windowns服务实现定期自动添加数据逻辑和原理
- 银行卡实名认证增强版API开发文档