今天几乎所有的游戏都有一个视频选项菜单,您可以在其中选择纹理,着色器,阴影,分辨率等的质量。我只是想知道如何找到可用的选项? (如果用户的屏幕为1080x1050,则不应该有1920x1200分辨率的选项)
如果这不是它的工作原理,我是否必须构建一个功能列表,并且只允许用户选择其中任何一个?我该怎么办?我顺便使用C ++。
答案 0 :(得分:2)
基于这些评论,听起来好像你暂时不做任何这样的事情,但如果你这么做,就没有魔杖,你必须单独处理所有的选项而且它取决于您支持的功能。
例如,对于纹理,“低”选项可能意味着您没有加载最高的mip,而是以第二高的开头。
您可以使用模型的LOD执行类似操作。
很多选项都是着色器的版本。所以你可以写一个支持四个动态灯的阴影,另一个版本支持一个和第三个不支持任何版本的版本。然后你还有其他选项,比如纹理传递次数和阴影生成技术。这导致着色器版本的组合爆炸。因此,大多数游戏都可以将着色器代码块拼接在一起,形成他们想要的每个模型和质量设置的选项组合。
屏幕分辨率选项最直接。根据您使用的DirectX版本,您可以调用不同的函数来枚举设备支持的全屏模式。例如,DirectX 9上的EnumAdapterModes和DirectX 10上的EnumAdapters。