simple machines forum

Please login or register.

Login with username, password and session length
 

News:

Remember to make your own backup of posts before submitting.

 
 
Pages: 1 [2]

Author Topic: EXIT: Let there be light  (Read 21808 times)

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #15 on: June 22, 2018, 03:32:10 PM »

Good News

I think the PlayStation VR can work without a camera! I've prepared a new demo with more aggressive sensor "fusion" and it feels like you can enjoy it without a camera setup, because the "drift" is slight to nonexistent. It tends to not just leak errors over time, but only occasionally. It's really quite good.

The sensor correction makes it wobble for some reason. So it's much more wobbly now. But I'm going to try several things to steady the in-game "camera" before messing with real life cameras. And I think I'm going to not worry about getting cameras to work as much. Not for a while anyway. I want to accomplish more goals with SOM first.

The wobble can actually help to smooth the picture out, in theory, but if I'm successful at eliminating it, it won't help, so there's not much point in saying so, except that there can be a silver lining, however things develop.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #16 on: June 23, 2018, 11:10:59 PM »

Demo Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.5.zip

This one improves the drift/wobble a lot, more than the other one (which reduced drift at the cost of added wobble) just by switching from 32-bit precision to 64-bit. If I had developed the code that I used to get started with this myself I would've programmed it 64-bit from the offset.

For what it's worth, this change produces an effect much more like the home-theater mode's tracking. It's free of noise, and crisp/responsive. I kind of miss the wobble though, because it injected some fuzz into the picture, which helps a lot with this unorthodox/in-your-face display. I've retreated back to the old setting with less wobble.

If drift becomes an annoyance, there is a beta_constant extension that might be useful for decreasing it, by adding wobble. I recommend up to 0.1, and the default is 0.05.

Also now the Mute button on the headset can now do a recentering function. And the +/- volume buttons can counter drift on the turning axis (yaw) but there's no real benefit to preferring them over the recenter function. I tried them to see if the drift was bottoming out depending on the calibration conditions, in which case, it could've worked to make a correction, but that wasn't the case. The only benefit is it's less abrupt than recentering.

It can be hard to say if you've really drifted or not, because returning your neck to exactly where it was when recentered it is pretty subjective with small amounts of drift, and the drift seems to cancel itself out.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #17 on: June 24, 2018, 05:06:38 PM »

Patched again,

This upload adds 3D to menu graphics. I had given the text 3D to be legible, but returned to it, to figure out the right way to match the text with the menus. There was also a bug with right-aligned text.

Pros: I think there is a good way to determine your IPD setting (F4/F1) because the faux 3D menus create an optical illusion when you get the right setting, so that they brain interprets them to be 3D. I centered the menus so that the Inventory screen can be used as a guide for fine tuning purposes, by looking down its middle. The Summary screen also works for this, but has a wider gap.

Cons: I've placed the menu up close to your face, so that the items appear behind them menu. For picture backgrounds, this is kind of weird, because the brain will see them in front of the item, and they will appear like a window pane, even if they are opaque.

I will have to play with bringing the items forth, or pushing the menus back... which will remove their 3D characteristics. I haven't done anything with menus so far. In VR mode you can see enough to get by, but they don't move with you. And you can't read game text, so it's no way to play a game in demonstration form.


EDITED: I've also changed the fuzz_constant default to 0.6666666 (2/3rds.) This adds more detail. But I'm mainly looking for a magic effect that finds the right mix for antialiasing hard edges. The current version may not look as nice as it did a few patches back, and may drift more. It was much more wobbly/fuzzy then, which actually looks better on the unusual display.


P.S. The menus will probably need to have a 3D model option at some point... since flat is unacceptably flat in VR.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #18 on: June 27, 2018, 12:47:36 AM »

Really good Movement Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.5.zip

Strikeout: I'm largely reverting this change for the time being... see next Reply for details.

This patch improves movement a lot, by a combination of discoveries and fixes. It's not so much about VR, but good movement helps with VR a lot.

The key discovery is to do 2D thumb pads, the analog data is not circular, but is actually square shaped. This kind of makes sense if the X and Y directions are independent of each other, as with the original input scheme (sometimes called tank controls I believe?)

In order to make them circular, they have to be distorted, a little bit like how the VR distorts the square input image into a bulbous one for the lenses.

I had never read about this anywhere, in all of my years, but I believe it's standard practice. I think the XInput API may do this automatically. But SOM uses DirectInput. In order to form a circle, you have to know which two axes go together, which is not at all a given. Because this change is so important, I came up with an automatic system for making educated guesses, based on the Analog Mode setting.

I am working on a manual system, that is going to use F1, since it's beside the Esc key that the Analog Mode setting currently uses. In order to do this, I removed the VR pupil distance function from F1, where it was using it temporarily for going backward. It now works just like the F3 field-of-view setting, but the PlayStation VR control pad can be used instead, by pressing its volume +/- buttons, which have been repurposed (the mute button recenters.)

EDITED: For the record, the new F1 system is going to also let the axes be rotated, in case you are like me, and your thumbs want to push inward when holding the controls. I already implemented an experimental version of this feature, but it turned out to not be viable, but works now that the pads are reshaped to move inside of a circle.

In addition to being able to move in circles (more true to how your thumbs move) this led me to discover some important oversights in the nonlinear movement extensions... these make it so turning ramps up so you can make fine turns. But also, which ducking down, it uses nonlinear movements also, since that tends to feel best. The problem with what I had done, was ironically very similar to the square vs. circle problem, insofar as I programmed for both axes being independent, but that that created a problem, which is why it would trace a very noticeable diamond in VR. I'd never been able to see the effect so clearly until inside of VR.

The fix was to combine the axes so that the diagonal has as much power as the lateral movements. At the same time, I noticed the speed limits, that affect going backward were in effect when ducking down. This was a simple oversight. The speed limits are imposed by reducing the analog values, so as a result there was less lean when leaning back, whereas the intended effect is to move freely in all directions.
« Last Edit: July 02, 2018, 12:21:00 AM by Holy Diver »
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #19 on: July 02, 2018, 05:43:34 AM »

Third times the charm / Hit a rough Patch :doh:

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.5.zip

(I deleted some posts)

I had given up on the previous patch, after spending an afternoon trying to eliminate some weird feelings I began to have about it. I posted a patch reverting to the old behavior...

Reminder: These are technically demos right now, normally I wouldn't share this sort of thing so eagerly. But as long as there is the extra latitude.

After I put everything a way, the bad experience gave way to a dumb idea to just see what happens with other approaches to mapping squares onto circles.

I felt like I understood the problem pretty well. And this (http://squircular.blogspot.com/2015/09/fg-squircle-mapping.html) looked like a good candidate to me, because the picture of the warped square looked pretty much how I imagined a joystick (a stick stuck to a ball at its base more or less) would behave.

The problem with the ball and stick approach, is our hero inside of the video game is not bowling pin. They more or less move in a circle on a plane.

With this change, walking about was immediately an acceptable experience. I still have doubts about looking about, but I think that the problems are more or less elsewhere. And future innovations can improve upon this patch. However, I feel like I'm in control of it, and I cannot say if it's better or worse, though it does feel a little different...

The real problem with looking around, having the UV axes tied together, I think has more to do with a quick snap function, where when not pushed, it quickly snaps back to not moving. This I think has to do with pushing the stick in circles, where you cross one of the center lines of the Cartesian system, and there it would have immediately snapped into place when it probably should not be doing so... I just don't understand I guess why this was never an apparent problem before now!

A fix for that seems simple, but it's hard to say if it really completely solves the problem or not. The basic idea is to ensure one is not triggering the quick snapping function as long as the other is nonzero. In addition to this, I've lessened the degree of snap.

I might have just ignored the looking about axes except that the reorientation feature I aim to add to F1 and can already be manually inputted into the INI file, relies on a circular mapping to work,  because a square cannot be spun around. I've never played a game that let me spin its thumb sticks... even though I suppose really on a PlayStation that should be a system setting. I don't know if it's because my hands are large (maybe they are, maybe they are not) but game controllers don't feel sized appropriately for my hands, and when I push my thumbs forward, they don't go straight up, like on a D-pad. So it helps a lot to rotate the sense of the sticks.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #20 on: July 02, 2018, 10:07:32 PM »

EDITED: For what it's worth, I've reuploaded the patch, with a fix that accounts for my confusion about the UV axes...

The fix goes, the trouble is that the "pedals" (basically they act like inertia) are able to cancel out the inputs when the directions changes from positive to negative. There is a spring-based simulation that I worked on when adding the nonlinear movement feature (u2_power) that had been misinterpreting these as as if the controller were not engaged.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #21 on: July 04, 2018, 04:19:58 AM »

Oops! :doh:

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.5.zip

Last patch broke the tools. I missed something subtle when consolidating some code.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #22 on: July 04, 2018, 09:19:04 PM »

EDITED: Oops again... broke multiple DATA folder support. Re-uploaded with fix. Lucky I noticed this.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #23 on: July 05, 2018, 10:50:46 AM »

Release Patch
Release Patch
Release Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.4.zip
http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.4.zip

This includes everything in the 1.2.2.5 demo, which is not really part of the next release.

This patch addresses a buffer overflow translating the Save Game screen, in Japanese (from Shift JIS to UTF-8.)

Also included are some nice movement enhancements of late.


EDITED: For the record, this was the result of some fix code slipped in in 2017 to improve compatibility with the KING'S FIELD sample project. It's not a problem as old as the hills, but it's not new either.
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts

Holey Moley

  • Website System
  • Administrator
  • *****
  • Offline Offline
    • MaleView Profile
    • twitter.com/m__7761
look out honey, 'cause I'm using technology
Holey Moley says,
« Reply #24 on: July 11, 2018, 06:13:29 AM »

Release Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.2.4.zip

Some code I thought I removed got left into the last patch, that causes weirdness when looking around, including the other axis moving on its own.

I've changed the dead zone so that related axes are tied together. I tested this before, but I think this bug may have been interfering with the tests. And I decided it was necessary after eliminating this glitch.

As a result, it's not as as easy to do a straight vertical or horizontal movement, however that's kind of robotic anyway, although it's nice I guess to be able to know you are not deviating from a straight line. It's better than getting pulled into a straight line when you don't want to be.


For the record, it feels funky to me, but I'm confident it's heading in the right direction, and can be refined down the road. I already have interesting plans for a coming F1 function, that's going to include a visualization, I believe by enable mouse trails on the cursor and momentarily using the controller to move the cursor to get a sense for its accuracy.

I can never be 100% confident when it comes to the right thumb stick, because I think "looking about" with it is a lot more sensitive than moving, and I'm not sure my right thumb is as coordinated as the left, and I prefer an inverted vertical axis, which I believe is fundamentally flawed with a thumb stick, but I cannot seem to train myself off of it. (I think inverted feels more like a rotary motion, whereas not so feels like the opposite of a rotary motion, which is not a flat motion. I think controllers should not be using mushroom shaped thumb sticks for rotary movements.)
« Last Edit: July 11, 2018, 06:20:51 AM by Holy Diver »
Formerly "Holy Diver" ("Holy") [Holy will be back as soon as I'm back to full form]

Holey Moley has 2730 posts
Pages: 1 [2]