CG assignment require
使用openGL 的C/C++ 编程
• 创建一个游戏,创建2个角色,Sven & water Sheep
• 创建一个游戏竞技场arena such as abandoned ruins, spooky forest, forgotten tomb, villain headquarter,
• 角色视角相机(第一人称)如果角色拿着东西应该显示在屏幕中,玩家可以依靠WSAD键位探索世界,并且可以用鼠标移动相机来看四周,可以尝试开门关门捡起东西
望着天空的同时前进不可以飞起来。
按Spacebar 可以跳起来
按P键可以切换透视投影和3D投影
• 竞技场因该是黑暗的,角色拿着光源如灯笼或者火把,光源是可以随身携带的,按F可以捡起光源(如果足够近)再按一次F键可以把光源放在地板上
要实现光源的衰减,随着光源距离的增加,亮度逐渐变小 按K键将减小光源的亮度半径,按L键将增大光源半径 可以导出自己的光源衰减公式,在报告中进行描述
光源的效果应该合理,例如金属表面应该有光泽。。
• 游戏目的:Sven(白狼)受伤并且坐在竞技场的某个位置,目的是接到他并且带到出口、安全区
• 当你选择接Seven(白狼)时,water sheep 会生气追逐玩家(朝着摄像机走)并且watersheep 会释放陷阱和傀儡
• 当玩家被watersheep傀儡陷阱击中一次,则失败,失败时摄像机显示为躺在地上并且提示“按R重新开始游戏”,它将游戏中所有的对象位置返回到原始位置
• 如果玩家带着Sven到达出口/安全区,他将获得胜利
• OpenGL中可能有多个光源。为简单起见,您只需要一个光源。但是,必须清晰可见环境,漫反射和镜面反射的影响。
• 为了使其更有趣并测试您的创造力,您可以为此作业使用的唯一形状是“盒子”形状。是的,您没看错,只有“盒子”形状。没有球体,圆柱体,圆锥体,金字塔,环面和任何其他多面体。您可以对其应用任何仿射变换(放大,缩小,拉伸,旋转,甚至剪切),并与其他框组合以创建任何东西。您可以认为它就像在玩玩具积木(但只能是盒子)。如果您熟悉视频游戏,则类似于Minecraft(https://minecraft.net/zh-cn/)。您只能使用盒子来创建游戏。
• 至少6个合成对象和6个不同的图像纹理
• 创建至少两个动画,一个是程序开始渲染的那一刻开始播放,另外一个是当选择Seven up 时播放(当他靠近时按E键)
• 因为是黑暗的环境所以需要用O键实现“阴暗风景”和“一切明亮风景”之间的切换实例Sample1&2
• 您需要实现一个简单的“命中盒”来触发某些事件,例如被僵尸击中或距离Sven足够近以接他。最简单的方法之一是利用从相机到感兴趣对象的距离。当距离小于阈值时,可以认为是“碰撞”。请观察本教程中的Sample_1,以了解如何将这个想法应用于按下红色按钮。
• 游戏的难度可以选择