Jump to content

Twilight Town: A Cyberpunk FPS

Just added.
Read more...

Contain

See the game notes for instructions on how to disable smoothing.
Read more...

Vomitoreum

Just added.
Read more...

Double Action: Boogaloo

Just added.
Read more...

FOUNDRY

Just added!
Read more...

Simulation of 3D sensitivity (projection) on the Windows desktop


Recommended Posts

This article is only for experienced users familiar with mouse sensitivity. You will not find here anything useful related to site calculator. This article is just a summary of my thoughts. All in this post is just theory.

I had in my mind a idea of simulating game sensitivity in Windows. Below points represent projected path of cursor/object on 1/2 of screen by same mouse distances.

Web_02.png.8c20757222d586474f00d6962b19a7a4.png

I thought that creating acceleration profile in RawAccel could slove above differences. Like example below:

Web_03.png.3b84d37ef514a08686dae23080833499.png

The acceleration profile would only be active in Windows and would have to be turned off before starting the game.

But after playing few hours with software I quickly realised that it’s not possible. As TheNoobPolice tried to tell me. Because acceleration is based only on counts/ms. It means that position of mouse cursor is only accelerated when the counts/ms is changed.

To make the idea work the cursor has to be accelerated based on mouse distance (at any counts/ms). It means that mouse or software has to know how many counts was send by mouse during it’s last move. And intelligently reset this information every time when for example mouse stops moving or changed direction.

I can imagine it like this:

Web_04.png.21f3b59e4c40ce4233c13a72ca5b332b.png

But the idea can work only for 1/2 of screen. The second half is other problem to slove. The easiest thing that comes to mind is to just stop accelerating the cursor. The rest will therefore be constant. Something like “Distance Cap”. Similar to “Cap” in RawAccel.

Web_05.png.e073ce05dd9839222f20dafb6cebe3ad.png

But because I seem to be the only one who is interested in this idea. There is no software or driver that can get me closer to this idea. Or is?

Edited by MacSquirrel_Jedi
Link to comment

I think you're going about it wrong. You're trying to make the cursor behave weird instead of just panning the screen or making the desktop 3D. The distances are affected in 3D because there is distortion and curvature, so it makes no sense for the cursor to behave weird when the 2D desktop has neither. It's already behaving how it is supposed to. If you decrease the FOV, which decreases the distortion and curvature, you will see that the mouse characteristics already start to resemble 2D more and more as you approach 0 FOV. At 1 FOV any conversion method in the calculator (Jedi's Trick has to be set to 1:1 resolution) will approximately match the speed and distance of the cursor.

If you want to simulate 3D aiming then you have to move the screen instead of the cursor (e.g. panning in a photo viewer, or playing mcOsu's original fps mod, not fposu). If you want the speed of the desktop, with the distances reflecting the distortion on the screen, then you just convert using 0%. It doesn't matter what FOV you convert to/from, the cursor will increment 1 pixel for each count, and the camera will rotate 1 center pixel's worth of degrees. The circumference of the 3D projection (the red sphere in your diagram) divided by the distance to travel the projection's circumference (the cm/360, and the orange sphere in your diagram), will be identical to the distance the cursor travels divided by the distance the hand/mouse travels.

Edited by Drimzi
Link to comment
On 1/17/2022 at 3:27 PM, Drimzi said:

You're trying to make the cursor behave weird instead of just panning the screen or making the desktop 3D

Yeah i know. It's weird because probably no one ever tried this. But idea is simple. To achieve same monitor distance at any mouse distance between 2D/3D. I understand that distance will be mathematically same using 0%. But it will not be same to my eyes, because of different monitor distance 2D/3D at same mouse distance (except one point only). So in this case i need something like "acceleration profile" or "mouse smoothing" i don't know how to call it. Something that ensures that the cursor on the screen ends up in the same position in 2D like in 3D. And this feature needs to be turned off before launching game of course. So that it does not interfere with the game

Panning the screen is probably even more weird :D But it's the most easiest way to show what i want to achieve:

So behave of cursor could be build on something like this. But instead of moving the Desktop. The Desktop will have fixed position as usual. But the cursor on screen will have to be dynamically reseted as i tried to illustrate in previous post. That's why RawAccel was my first idea. Because it acting like this. The only problem was that acceleration is not based on mouse distance. 

But in any case. Whatever I suggested. It's not in my power to achieve this 😕 So it's looks like i will focus on something i can actually change.

Thanks for your reply :) 

Edited by MacSquirrel_Jedi
Link to comment

I think this should work: https://www.desmos.com/calculator/trk3nrmtkp

It calculates the amount of distortion there would be at the location of the cursor at a specific fov. This will become the cursor speed multiplier, simulating the distortion of 3D.

You would need to make a script that can continuously get the cursors xy position, calculate the distortion amount and then feed that into RawAccel somehow.

Before going through the effort I think the whole thing is quite pointless if the desktop itself isn't distorted. If it's flat then there is no context to the cursor speed change. The cursor and desktop panning is already behaving correct to the desktop's fov of 0. You aren't looking at your arbitrarily chosen fov so the cursor speed changes will feel random. If you were able to distort the desktop after it has rendered then the cursor would get distorted anyway.

 

Edit: I did a quick test to verify that the distortion calculation was correct as i wasnt sure. It says the distortion/speed multiplier will be 2 when moving the cursor to the top or bottom of the screen (y 0 or 1080) at 90 vertical fov. So in Aim Lab's creator studio I set the fov to 90 and placed a pillar that begins at the cursor and ends at the exact top of the screen. The sphere at the original crosshair position gets distorted vertically by a factor of 2 (from 34px to only half of the sphere being 34px).

I then changed to 150 vertical fov. The pillar was now 145 pixels tall instead of 540, which makes sense since 540 / tan(150/2 *pi/180) = 144.69. I looked up 145 pixels and the sphere again stretched vertically by a factor of 2 (from ~9px to ~18px). In the calculator if you set 150 fov and cursor y to 540 +- 145, you get 2, so it appears that my calculations were correct after all.

5.thumb.png.5f554a44673765cb43179bdf32e1d16d.png

6.thumb.png.3554e7b5ebf9c1a99dcef16854937e2d.png

Edited by Drimzi
Link to comment
On 1/19/2022 at 2:22 PM, Drimzi said:

Before going through the effort I think the whole thing is quite pointless if the desktop itself isn't distorted

I have no plans to go through this at the moment. I think you were right at the beginning that it will make cursor acting weird. I still think it could work in scenarios where you move your mouse just by straight zig zag movement. With style move/stop (flicks). But that's all.

If I imagine that i will make continuous mouse move under some various curve (tracking). For example you want shoot a enemy who don't see you, but new enemy will appear and you will have to instantly change the direction on him. And there i can see the biggest problem of this idea. Because the solution will have to decide on the fly when reset the factor back to 1. Or in this example how to dynamically change factor during the change of movement. It could be done by watching counts/ms change. But even when slowing down during super fast mouse move the counts/ms may not change after some speed. So it will create inconsistency of mouse movement. It's unlikely that you will make such a moves in Windows. But still. Weird ...

Any way thanks for your math, really appreciate you involved on this dreaming :) 

Edited by MacSquirrel_Jedi
Link to comment
  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...