外设天下 - 电脑外设发烧友聚集地

我的人缘0
11
发表于 2018-11-25 13:22 只看该作者
烤肉饭 发表于 2018-11-25 12:19
凭什么你默认1就是1比1而不是0.1比1?

0.1比1不就是1比10吗?1比1能和1比10一样?晕看来我要思考下什么是1什么是2了
[发帖际遇]: g563026带凤姐开房一夜7次,系统赠送3 元 发烧值.补充下体力 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

我的人缘0
12
发表于 2018-11-25 14:07 只看该作者
FoxtrotLZB 发表于 2018-11-23 01:40
比如CSGO就是1:1(source引擎的通常都是),EDPI=DPIx灵敏度。不同游戏算法不同,具体要怎么算就自行goog ...

感谢科普
[发帖际遇]: 友情提示:g563026 的床铺在北医三院303房,无故逃离扣1 元 发烧值. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

我的人缘0
13
发表于 2018-12-12 17:52 只看该作者
我感觉只要不是恶意成倍插值,问题都不算大,这东西难以避免。
回复 支持 反对

使用道具 举报

我的人缘0
14
发表于 2018-12-15 21:09 只看该作者
本帖最后由 墨澜城 于 2019-1-8 19:09 编辑


简单来说,鼠标每隔1/回报率 秒,都会都会向系统发送一对(x,y)相对坐标变换值,单位是1/dpi 英寸,第一人称3D游戏将用这个count值与内置参数相乘,得到转动角度。
拿csgo举例,默认m_yaw=0.022,在灵敏度sens=2.0的时候,每有一个count过来,镜头转动0.022*2.0*1=0.044°
你可以理解为3d球面就像一个地球仪,你的准星只能在经纬线交点上移动,灵敏度决定了经纬线网的间隔,越低越密,越高越稀疏;DPI决定了你的鼠标在这个网格上跑多快
==========
到这里如果你比较敏感,应该能意识到这个网格过于稀疏的劣势:如果这个网格比像素点还稀,你在瞄准时就会发现准星跳像素点。
屏幕分辨率越高,对网格的密集度要求越高,比如刚刚的一转动0.044° 这够不够用?至于这个下限怎么算
===========
https://www.mouse-sensitivity.co ... ments#comment-19090
===========
1 count is 1 pixel is dependent on the location on the screen. For the center of the screen it's unsurprisingly match distance for 1/960th of the screen (for a 1080p monitor). However for the edge of the screen it's a bit more complicated.

The equation I'm using is

(arctan(1/960*4/3*tan(90*pi/360))*180/pi-arctan(0/960*4/3*tan(90*pi/360))*180/pi)/.022
Which is basically

(1st pixel's degrees away from 0th pixel)/m_yaw    (counting pixels from the center of the screen)
To get the multiplier m_yaw needs so that 1 count is equal to that number of degrees.

So CS:GO http://www.wolframalpha.com/input/?i=(arctan(1%2F960*4%2F3*tan(90*pi%2F360))*180%2Fpi-arctan(0%2F960*4%2F3*tan(90*pi%2F360))*180%2Fpi)%2F.022

3.61716 sensitivity

But for pixels at the far right of the screen

(960th pixel's degrees away from 959th pixel)/m_yaw    (counting pixels from the center of the screen)
which is

(arctan(960/960*4/3*tan(90*pi/360))*180/pi-arctan(959/960*4/3*tan(90*pi/360))*180/pi)/.022
http://www.wolframalpha.com/input/?i=(arctan(960%2F960*4%2F3*tan(90*pi%2F360))*180%2Fpi-arctan(959%2F960*4%2F3*tan(90*pi%2F360))*180%2Fpi)%2F.022

1.30305 sensitivity

If you apply this to AWP Zoom 1 the sensitivity multiplier would be 0.817919 (when the default is 0.444444) for a horizontal match distance of ~621%.
Unless I made a mistake in my equation, you probably shouldn't set your sensitivity based on 1 pixel per 1 degree at the edge of the screen or really any part at all. (worth nothing that a pixel is a completely arbitrary unit of measurement and has no direct link to perceivable skipping).
转自@Skwuruhl mousesensitivity.com

简单来说结论的话,csgo在不改m_yaw、1080p下只要灵敏度不超过3.617即可瞄准屏幕上所有像素点
或者你可以看看这篇https://www.mouse-sensitivity.co ... -sensitivity-works/有几个动图可能更好理解下。什么都不懂就大喊插值插值也真是……
===控制台参数m_yaw最初打错了,已修改

点评

你的1 count在游戏里是一个最小移动fov角度吗?如果是,那1个最小移动角度对应几个像素 ,或者几个最小移动角度对应一个像素?  详情 回复 发表于 2018-12-17 21:11
你这里的1 count怎么算出来的? 我理解的1 count是1个真实像素就是显示屏1个点距的距离,鼠标指针的最小移动单位。你这里解释的1 count有其他文献解释吗?就这论坛里的网友发的,看上去用一个复杂的方程式算出来的  详情 回复 发表于 2018-12-17 21:01
回复 支持 反对

使用道具 举报

我的人缘0
15
发表于 2018-12-16 07:30 只看该作者
lvhan1125 发表于 2018-11-22 06:40
我不信。
游戏作为一个软件,能读取鼠标速度,还能修改引擎工作状态?

利用 Windows提供的API   
  1. BOOL SystemParametersInfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);
复制代码

是可以修改鼠标速度的。
[发帖际遇]: 昨晚,村头寡妇和digitalera一夜未回,被村长扣 2 元 发烧值. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

我的人缘0
16
发表于 2018-12-17 21:01 只看该作者
本帖最后由 g563026 于 2018-12-17 23:51 编辑
墨澜城 发表于 2018-12-15 21:09
简单来说,鼠标每隔1/回报率 秒,都会都会向系统发送一对(x,y)相对坐标变换值,单位是1/dpi 英 ...

1 count是屏幕画面接收到鼠标传送出来的一个最小的移动单位对吗?  我理解的1 count好比在windows桌面上指针移动1个真实像素就是显示屏1个点距的距离,也就是指针移动的最小单位,windows桌面里就是一个像素而游戏里却是一个角度 ?那我想知道游戏里一个角度对应画面移动多少像素呢?你发的前面我看懂了后面0.044°那个够不够用方程式算的我看不懂啊,再指点下啊,你给我画个图啊 哈哈 谢谢 还有那个960这个数是什么意思怎么来的

点评

1 count是屏幕画面接收到鼠标传送出来的一个最小的移动单位对吗? 是的。windows控制面板里默认的第六格速度就是1count 1像素,像第五格就是1count 0.75像素,具体怎么插值出这不到一个像素的距离你可以找找其他资  详情 回复 发表于 2019-1-8 18:46
[发帖际遇]: 扣g5630262 元 发烧值.?不要在意,系统就是心情不美丽而已 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

我的人缘0
17
发表于 2018-12-17 21:11 只看该作者
本帖最后由 g563026 于 2018-12-17 23:51 编辑
墨澜城 发表于 2018-12-15 21:09
简单来说,鼠标每隔1/回报率 秒,都会都会向系统发送一对(x,y)相对坐标变换值,单位是1/dpi 英 ...

这个问题困扰了我好久 求教啊
回复 支持 反对

使用道具 举报

我的人缘0
18
发表于 2019-1-8 18:46 只看该作者
测试
本帖最后由 墨澜城 于 2019-1-8 19:27 编辑
g563026 发表于 2018-12-17 21:01
1 count是屏幕画面接收到鼠标传送出来的一个最小的移动单位对吗?  我理解的1 count好比在windows桌面上 ...

1 count是屏幕画面接收到鼠标传送出来的一个最小的移动单位对吗?
是的。windows控制面板里默认的第六格速度就是1count 1像素,像第五格就是1count 0.75像素,具体怎么插值出这不到一个像素的距离你可以找找其他资料。
================
而游戏里却是一个角度 ?那我想知道游戏里一个角度对应画面移动多少像素
对,所以你要让这个角度对应的距离小于像素间隔,就会让画面过度平顺。
================
960怎么来的?
960=1920/2,我转载的这个是用1920*1080的屏幕为例
================
下面是我自己的解释
具体计算需要一点三角函数,假设你在用一块4:3分辨率1440*1080的屏幕(这个水平扩展下就是常见的1920*1080了)玩cs,他默认水平视野是90度,比较好算。
你画一个90度扇形,连接弧边的两个端点,就有了一个等腰直角三角形,这个直角顶点就是游戏里的视点,斜边,或者说弦,就是你的屏幕,视点向弦作垂线,这就是你的中央视线。
你的屏幕水平平均切成1440份,靠近中间的这份,对应的视角是多大呢?是arctan(1/720)=0.07958°   cs默认的最小角度是0.022度,那么灵敏度就不应该低于0.07958/0.022≈3.62
实际上为了保证更加细腻的手感,我们不应满足于“瞄得到每一个像素”,而是瞄得到半个像素,甚至更细,比如远处一个人的头两个像素宽,你瞄左边这个还是右边这个呢?
所以我的建议是在鼠标引擎足够强力、又不对日常操作产生负面影响的前提下,采用高dpi搭配低灵敏度

无标题.png (30.04 KB, 下载次数: 12)

示意图

示意图

点评

这一层可以单独发一帖了。  详情 回复 发表于 2019-1-16 12:09
[发帖际遇]: 墨澜城说发烧值是万恶之源,让我来为你承担这份罪恶吧!扣除 3 元 发烧值. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

我的人缘0
19
发表于 2019-1-8 19:40 只看该作者
本帖最后由 墨澜城 于 2019-1-8 19:45 编辑

屏幕边缘由于3D畸变(投影原理所致),本应同大小(同弧长、同角度)在显示器上会被拉长
所以要让边缘处也不跳像素则需要更低的灵敏度。这样算出来45°-arctan(719/720)*180/3.14159≈0.03978
则需要灵敏度sens>=0.03978/0.022=1.808
上面那楼的是按照1920*1080算的,因为16:9屏幕视野更宽,边缘拉伸更厉害===================
如果你细心的话会看到,那个wolframalpha里有一个乘以4/3,就是把4:3屏幕宽度转到16:9的

无标题.png (35.06 KB, 下载次数: 33)

无标题.png

点评

结论还是默认游戏速度 然后调节鼠标DPI是吧? DPI乘以1等于EDPI  详情 回复 发表于 2019-1-9 11:30
回复 支持 反对

使用道具 举报

我的人缘0
20
发表于 2019-1-9 08:33 只看该作者
测试
原来 CSGO 1.2 400DPI,看了这帖子设置成 0.3 1600DPI,确实有点不一样,希望适应了多暴几个头
[发帖际遇]: Trank在A股市场中遭遇了股灾,血本无归,别跳楼,iQunix奖励2 元 发烧值安慰一下。 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则