OpenGL—篮球场

说明文档
一、程序设计思路

1.场景布置思路

(1)游戏场景的总体布局就是一个露天篮球场,露天篮球场又分为五个部分:篮球场地,篮球架,看台,墙壁、篮球和太阳。

(2)篮球场地是一个40*20的长方形,然后加上了篮球场地的纹理贴图。

(篮球场地)

(3)篮球架又分为四部分:支架1,支架2,篮球板,篮球圈。支架是一个长方体,通过立方体伸缩完成的;篮球板是一个4*5的长方形,然后加上了篮球框的纹理贴图;篮球圈是一个实心环,加上了蓝色的材质和光照。

(篮球架)

(4)看台由14个40*3的长方形组成,分别加上了蓝色和黄色的材质和光照。

(看台)

(5)墙壁由两个个44*10的长方形组成;

(墙壁)

(6)篮球是一个半径0.8的实心球组成,然后加上了红色材质和光照

(篮球)

(7)太阳是个半径为1的实心球体,然后加上了黄色材质和光照


(太阳)

2.摄像机运用思路
(1)为了可以绕着Z轴旋转,从不同角度观察篮球,于是我用变量thetb记录绕Z轴旋转时的角度,通过三角变换计算改变相机的位置(图中的θ,效果就像小狗绕着食物转)
(2)为了不只有俯视效果,于是我通过变量theta(图中的α),使他绕中心点旋转(三角变换),达到平视和仰视的效果。
(3)为了让摄像机有远景和近景的效果,于是我通过鼠标的滑轮来控制摄像机的观察半径radius(图中的r),从而实现可以远景观察整个露天篮球场,还可以近景观察篮球比赛。
(4)本打算把摄像机实现第一人称的效果,但是四元素和万向锁未能参透,暂时不会写。

(摄像机运动示意图)

(摄像机旋转代码)

3.光照和材质的设置思路
(1)场景中的光照有放射光、环境光、漫射光、反射光、镜面反射光
(2)为了让篮球更加逼真,于是我给篮球加上了环境光、漫射光、反射光、镜面反射光和红色的材质
(3)太阳加的是放射光和黄色的材质。
4.纹理贴图设置思路
(1)篮球场地加了一个篮球场地贴图,篮球板加了一个篮球板贴图,其他都未加贴图,因为加贴图方法都类似。(球的加贴图方式:需要把球面分为n片正方形,用极限的方法,对每个正方形加贴图,现在还不会加)
5.自动物体运动思路
(1)通过使用回调函数实现篮球的自由落体运动和完全弹性运动和太阳的圆周运动。自由落体运动通过运用高中的物理知识实现的,不断通过公式计算位移(如图),然后更新位移;太阳的圆周运动不断更新角度值实现绕中心做圆周运动。(因为未实现碰撞检测,所以就只能在Z==0的地方反弹,而且可以穿过其他物体)

(自由落体运动和完全弹性碰撞代码)

(2)通过使用快捷键实现篮球的前后左右的运动和摄像机的旋转运动
二、快捷键操作
1.‘w’、‘s’、‘a’、‘d’实现篮球的前后左右的运动
2.‘上’、‘下’、‘左’、‘右’实现相机的旋转
3.鼠标滑轮实现缩放和拉伸

(快捷键操作操作代码)

完整项目

OpenGL——场景设计相关推荐

  1. UE4风格化场景设计入门指南 Stylized Station – The Environment Artist’s Survival Kit

    持续时间13h 1920X1080 .ts 包含项目文件 大小解压后:4.9G 语言:英语+中文字幕(人工校对) 标题:风格化的车站--环境艺术家的生存工具包 信息: 环境艺术很难. 尤其是作为初学者 ...

  2. Sketchup插件Vray户外场景设计渲染教程 Vray Next For Sketchup Exterior

    Sketchup户外场景设计的Vray Next 你会学到什么 渲染白天和夜晚场景 后期制作 Sketchup的Vray Next 中级sketchup用户 大小解压后:3.83G 1280X720 ...

  3. UE4场景设计学习教程

    视频:MPEG4视频(H264) 1920×1080 25fps 1400kbps |音频:AAC 44100Hz立体声128kbps 语言:西班牙语+中英文字幕(根据原英文字幕机译更准确) |时长: ...

  4. 性能测试场景设计之用户模式设置

    性能测试场景设计之参数设计 1.用户模式设置 场景执行前需要根据系统特性对场景进行配置,以便对系统进行负载测试时压力状况更加符合业务特性.相关的参数配置如下: 首先新建场景,如下: 场景新建的时候一般 ...

  5. 阿里巴巴在应用性能测试场景设计和实现上的实践

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yunqiinsight/article ...

  6. J.R.R.托尔金笔下的中土世界与《斗破苍穹》项目实践:从世界观解构入手场景设计

    本期真经阁的特邀讲师将通过对<魔戒>与<霍比特人>这两部影视作品进行分析,为读者解构如何通过视觉上的表现设计来展现托尔金笔下的中土世界.并将其中讲述的方法应用在<斗破苍穹 ...

  7. loadrunner 场景设计-负载生成器管理

    场景设计-负载生成器管理 by:授客 QQ:1033553122 1  简介 当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load generator). 所谓的负载生成器 ...

  8. loadrunner 只能并发50_loadrunner 场景设计-(一)

    目录:手工场景和目标场景设置 混合场景设置 一.手工场景 手工场景是自行设置虚拟用户的变化,通过设计用户的添加和减少过程,来模拟真实的用户请求模型,完成负载的生成. 手工场景分为:Scenario模式 ...

  9. 游戏场景设计思维:黑白与颜色的现代构成艺术

    导语:在场景设计中,黑白构成与颜色厚涂是构图中两个分不开的重要技法.黑白构成和颜色厚涂在构图的不同阶段分别解决了什么问题,两者之间又有什么关联,在运用中有那些技巧?本文将重点给大家讲述这两种技法在动漫 ...

  10. MFC 视图-OpenGL场景-CDialogBar三个界面保存为图片

    问题:如图所示的OpenGL场景.View.CDialogBar三个界面的内容保存成图片然后拼合成一张图 思路: 分四步 一.View视图界面保存 利用BitBlt函数将界面拷贝到内存DC中 // 将 ...

最新文章

  1. 简单粗暴彻底解决selenium+chromedriver无法定位各种元素的方法
  2. 多线程Java Socket编程示例(转)
  3. STL与泛型编程(1)---模板
  4. 强化学习ppt_机器学习原理、算法与应用配套PPT第四部分(深度学习概论、自动编码器、强化学习、聚类算法、半监督学习等)...
  5. SANS:2018年SOC调查报告
  6. SEO优化倦怠期?SEO排名和收录都不错时,到底还需不需要日更?
  7. 【收藏】Docker安装微信
  8. 7.4.8 数据压缩
  9. 三年Java开发,你连基础的JVM运行时内存布局都忘了
  10. Delphi捕捉DLL执行所抛出的异常。
  11. 对今天下午的工作内容的反思
  12. 获取移除指定Url参数(原创)
  13. c语言中使用相对路径
  14. for循环与foreach的性能比较
  15. 汉斯·乌尔里希·鲁德尔-唯一一个钻石金双剑金橡叶骑士勋章获得者
  16. hplus--H+ V2.3 (中文版)
  17. 『Tableau』 地图显示不正确的一种可能原因
  18. 显示当前服务器的ip,linux查看当前服务器ip地址 命令
  19. 一种动态阈值白平衡算法实现
  20. Dubbo负载均衡策略之最小活跃策略

热门文章

  1. MapReduce: 大规模集群上的简化数据处理
  2. 关于O、Θ、Ω、o、ω等数学符号
  3. 企业招聘软件测试笔试题,奇虎软件测试工程师招聘面试笔试题题
  4. 空间划分的数据结构(网格/四叉树/八叉树/BSP树/k-d树/BVH/自定义划分)
  5. 云空间为您提供10G免费全能空间
  6. Firebug 网络监视器使用教程英文
  7. Android 设置gif动态桌面
  8. 01-----图形化代码管理工具TortoiseGit,及配合Putty将本地项目push到远程仓库
  9. seo入门到精通_SEO入门到精通需要这10个步骤
  10. java fillrect_Java的graphics2D fillRect不能正常工作与半透明的颜色