opengl虚拟校园漫游
一、开发环境说明
-- 操作系统:windows
-- 开发软件:Visual Studio 2017
-- 编程语言:基于控制台下的opengl
-- 用到的库:glu、 gluax
二、内容说明
1 、功能介绍
-- 实现场景漫游
-- 实现按键交互功能;
-- 实现纹理贴图;
-- 实现光照效果
2、操作说明
--按键 '上' :前进--按键 '下' :后退--按键 '左' :左转--按键 '右' :右转--按键 'A' :向左平移--按键 'D' :向右平移--按键 'W' :垂直上移--按键 'D' :垂直下移--Page u : 仰视--Page down :俯视--按键 'L' :白天/夜晚(环境光/散射光)开关--按键 'B' :透明混合开关--按键 'G' :路灯电源开关
3、程序目录截图
4、程序部分代码展示
//初始化,设置光源,打开纹理开关
void SceneInit(int w, int h)
{LoadGLTextures(); //条到处理调用位图并用此位图建立纹理的子程序glEnable(GL_TEXTURE_2D); //纹理被创建,并允许2D纹理贴图glShadeModel(GL_SMOOTH);glClearColor(0.0, 0.0, 0.0, 0.5);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);//设置光源参数glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); //设置环境光glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); //设置漫反射光glLightfv(GL_LIGHT1, GL_POSITION, LightPosition); //光源的位置glEnable(GL_LIGHT1); //允许光源一glColor4f(1.0f, 1.0f, 1.0f, 0.5); //全亮度,50%的透明glBlendFunc(GL_SRC_ALPHA, GL_ONE); //基于半透明的混合方式
}
5、 运行效果展示
三、代码下载
- 整个代码工程下载
opengl虚拟校园漫游相关推荐
- 基于VRML的虚拟校园漫游系统源代码
这是我软件工程的作业,其实只是一个雏形,谈不上什么功能,但是每个程序员经历千辛万苦,就算写出一堆垃圾,都想拿出来溜溜,所以.... 源代码,wrml文件,需求分析,可行性分析,概要设计,详细设计,编码 ...
- js 判断支持webgl_基于WebGL无插件虚拟场景漫游技术如何构建?ThingJS
#三维可视化##3D开发# WebGL, ThingJS及3DSMAX 虚拟场馆漫游技术构建 基础组件 加载三维模型 实现虚拟漫游 渲染优化 如果要构建一个具有交互性和拓展性的沉浸式漫游场景,常用到3 ...
- js判断是否支持webgl_基于WebGL无插件虚拟场景漫游关键技术(完全版)ThingJS
#三维可视化##3D开发# WebGL, ThingJS及3DSMAX 虚拟场馆漫游技术构建 基础组件 加载三维模型 实现虚拟漫游 渲染优化 如果要构建一个具有交互性和拓展性的沉浸式漫游场景,常用到3 ...
- 基于OSG的虚拟校园系统的设计与实现
基于open scene graph的虚拟校园系统的设计与实现 摘要 •引言 • OSG基本原理 •OSG操作与动画 •视点的定位和切换 •自由漫游 •路径漫游 • 路径动画 • 点选和文字 • 粒子 ...
- 是时候贴上校园漫游的成品了【记录】
福州大学虚拟校园系统开发记录 [最终成品]
- 虚拟校园网络组件开发笔记
最近帮助本科"虚拟校园"项目小组做了网络组件的开发,历时三天,在回顾旧知识的同时遇到了一些新的问题. 最开始考虑调用第三方API实现网络功能,在网上找到了两个网络组件库POCO.R ...
- 基于opengl的3d漫游游戏 - 古堡危机之丧尸围城
作品名称: <古堡危机> 小组团队名称: 拾荒三人组 日期:2018年12月 目录 第一章 简介 3 前言 3 项目的创意设想.游戏类型.实现的功能.项目意义 3 Opengl 4 作品代 ...
- 基于WebGL的虚拟太阳系漫游技术实现 ThingJS 科幻片
#三维可视化##3D开发# 虚拟功能需求 2. 太阳系运行需求 3. 3D模型呈现 4. ThingJS技术分析 5. 系统实现步骤 3D可视化技术逐渐应用到现代多媒体的课堂教学中. 虚拟太阳系是一款 ...
- 基于HTML5的WebGL经典3D虚拟机房漫游动画
第一人称在 3D 中的用法要参考第一人称在射击游戏中的使用,第一人称射击游戏(FPS)是以第一人称视角为中心围绕枪和其他武器为基础的视频游戏类型 ; 也就是说,玩家通过主角的眼睛来体验动作.自从流派开 ...
- Java课程设计记录——虚拟校园系统
本文着重介绍在项目开发过程中遇到的问题和解决方案. 1.数据库配置与连接 要求使用access数据库.首先,什么是数据源 讲解.我们可以直接在cmd中输入下列语句打开ODBC管理程序 %windir% ...
最新文章
- RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置
- 【sublime Text】sublime Text3安装可以使xml格式化的插件
- HTML5对音频的支持
- 谈谈我对Spring IOC的理解
- 【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞
- 报表怎样实现滚动的公告效果?
- 飞鸽传书确保服务数据的安全可靠
- 安卓案例:标签页演示
- mega2560电脑识别不到端口后_Qt音视频开发41-人脸识别嵌入式
- python比较文件的修改时间,如何比较python中两个文件的修改日期?
- 随想录(中断中真的不能上下文切换吗)
- java布类型的常量,java数据类型;常量与变量;
- LINUX关于休眠、待机和睡眠的问题
- TypeError: ‘dict‘ object is not callable-已解决
- 为什么order by 数据都一样_每一只股票的开盘价格都不一样,为什么会这样?
- 使用Python和Asyncio编写在线多人游戏(三)
- Oracle database 11g release2发布
- GNS3安装和使用教程
- Python-pandas拆分列与堆叠列
- 如何使用移动云搭建个人网站(保姆级教程)