嘿嘿,课内虚拟现实课程的大作业,做了一个基于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设计房间 (虚拟现实大作业)相关推荐

  1. 虚拟现实大作业——VR游乐园之需求分析文档

    虚拟现实大作业--VR游乐园之需求分析文档 一. 引言 1.1 编写的目的 本文编写的目的是为VR游乐园项目的开发提供: (1).软件要求:在Unity中,使用设备连接工具steamVR.VRTK电脑 ...

  2. 【网页设计】期末大作业html+css(B站首页 1页 带js轮播)

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制 ...

  3. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码...

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  4. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  5. web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)...

    仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~游戏网页作业HTML+CSS+JavaScript实现,共有游戏首页 等页面! ...

  6. 港珠澳大桥介绍网站设计【期末大作业】源码

    文章目录 前言 一.网站设计要求 二.信息等相关素材收集 三.个人网站的总体规划和步骤 1.设计的目的 2.设计布局 3.网站具体设计过程 总结 前言 网页预览 一.网站设计要求 1️⃣站点题目:自定 ...

  7. HTML网页设计期末课程大作业 :汽车网页——宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载

    HTML网页设计期末课程大作业 :汽车网页--宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载 临近期末, 你还在为HTML网页设计结课作 ...

  8. 【网页设计】期末大作业html+css(我的音乐网站)

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | | HTML期末大学生网页设计作业 HTML:结构 CSS:样 ...

  9. 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

  10. HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

最新文章

  1. 获取SQLServer数据库中所有表
  2. 微服务系列(五):事件驱动的数据管理
  3. AI键盘侠来了:DeepMind开始训练智能体像人一样「玩」电脑
  4. 得到相对Plugin的路径
  5. 【正一专栏】警察叔叔,我还是只是一个婴儿
  6. foxmail怎么加入黑名单 foxmail导入黑名单邮箱地址的教程
  7. zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法
  8. 二级VB培训笔记04:程序控制结构、数组和过程
  9. linux ubuntu mysql 安装_1.MySQL的安装(linux Ubuntu环境下)
  10. cannot remove `libtoolT’: No such file or directory
  11. storm32云台说明书_STorM32 BGC三轴增稳云台驱动下载
  12. 电信光猫DDNS的设置经历
  13. Python 实现单词翻译
  14. matlab 图例 显示几个,matlab图例拆分成两个多个分别显示
  15. 【操作系统】进程通信
  16. Mac连接Windows共享的老式打印机
  17. 编写一个方法,计算kkk^^kk (共n个k,n0)的值。例如k=2,n=5则为22222。调用方法求s1=6+66+666+6666+66666
  18. 当前的安全设置不允许从该位置下载文件--解决方法
  19. 实验整理(一)——钓鱼邮件攻击实验
  20. android手机连接hdmi,手机hdmi转接线的介绍以及连接方法

热门文章

  1. 余额宝收益创新低:存10万一天赚不到7块
  2. tp框架php全局变量,ThinkPHP 常用全局变量
  3. linux ubuntu 数据处理,linux使用---1.ubuntu使用记录
  4. 【华为机试真题详解】判断字符串子序列【2022 Q1 Q2 | 200分】
  5. 使用mybatisplus的insert方法报错:org.apache.ibatis.reflection.ReflectionException: Could not set property
  6. CNN逆卷积层(ConvTranspose2d)输出有马赛克网格
  7. 艺术海报,纸上的舞台--江苏
  8. 历史第一黄仁勋:创业30年,万亿美金,他还是CEO
  9. 利用Topshelf搭建Windowns服务实现定期自动添加数据逻辑和原理
  10. 银行卡实名认证增强版API开发文档