在我所遇到的几乎所有游戏中,都有一个旨在改变用户与环境互动方式的黑暗环境,总是有些玩家调高其显示器的伽玛校正值,以抵消所需的效果。
有没有一种方法可以防止用户调整其伽玛校正以“欺骗”自己的方法呢?(那黑暗)
我想像一下,如果您可以可靠地检索用户显示器的当前伽马校正,则可以使用它或多或少地防止它会带来的好处,而不会给普通用户带来任何不便。
在我所遇到的几乎所有游戏中,都有一个旨在改变用户与环境互动方式的黑暗环境,总是有些玩家调高其显示器的伽玛校正值,以抵消所需的效果。
有没有一种方法可以防止用户调整其伽玛校正以“欺骗”自己的方法呢?(那黑暗)
我想像一下,如果您可以可靠地检索用户显示器的当前伽马校正,则可以使用它或多或少地防止它会带来的好处,而不会给普通用户带来任何不便。
Answers:
我建议在渲染输出中添加少量白噪声。在明亮的场景中这是不可见的,在具有普通伽玛设置的黑暗场景中,这类似于照相机或人眼在现实中实际所做的事情。但是对于提高伽马强度的人来说,这种噪音将是一个很大的麻烦。不仅不能使黑暗的物体正确可见,而且低范围噪声的增强也会使明亮的物体分散注意力。因此它应该足以阻止人们这样做。
(当然,非常聪明的人可能仍会想出复杂的降噪技术,但至少在普通显示器中不可用)
有几个Windows API函数可以解决这个问题:SetMonitorBrightness和SetDeviceGammaRamp。但是,这将取决于硬件。可能并非所有监视器都支持以编程方式设置亮度,并且不同的监视器可能会产生不同的结果,等等。
而且,这听起来不是一个好主意。将伽玛/亮度锁定为某个固定值肯定会烦扰您的玩家,并且很可能使某些玩家无法玩游戏,因为它的设置碰巧太暗(或太亮)。
最终,如果它是单人游戏,并且玩家希望自己简化游戏,那是他们的权利。为什么要阻止他们?如果是多人游戏,则需要其他策略,例如仅向玩家发送有关事件的信息,这些事件应足够接近以使他们能够看到或在其手电筒光束之内,或类似性质的东西。
如果是单个玩家,那实际上并不重要。
在多人游戏中,只有一个碰撞盒显示他们可以查看的内容。如果他们在黑暗区域,请告诉客户根本不要画其他球员/舞台物体/等,直到他们进入视场碰撞箱。