Results 1 to 10 of 23

Thread: Rotating equirectangular maps (G'mic script, GIMP and Krita) + Sinusoidal projection

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Default

    Quote Originally Posted by Naeddyr View Post
    Hi,

    don't worry about it. Even if I wrote the above scripts, I really don't understand G'mic.

    Long story short, I've upgraded my linux distro recently and just spent half an hour trying to figure out how to install the G'mic plugin again, and I took a look at the script just now, and I've got annoying news for you. Afaic remember and tell from looking at it, the order of the operations is baked in into the maths formulas I used.

    I say "annoying" because there is a workaround. You just have to apply the rotations in reverse one at a time: first a Yaw correction, apply, then a Pitch correction, apply, and finally a Roll correction, apply.

    It's been a few months since I tackled this supremely annoying scripting language and I have completely forgotten all about it. It's basically Frankensteinian monster using shell scripting stuff in the most horrifying way possible. I don't think I ever used any IF statements if I could avoid them, they were just a pain to figure out, and the maths I just artfully copied researched on the internet for ages, so I'm not going to update the script or anything. I'd have to relearn everything.
    That's understandable, I just wanted to see if there was anything other than doing the operations 1 at a time that could reverse it.

    I might take a look at the scripts in the future and see if I can do something about it.

  2. #2
    Guild Adept Naeddyr's Avatar
    Join Date
    Jun 2008
    Location
    Finland
    Posts
    300

    Default

    Quote Originally Posted by willuwontu View Post
    That's understandable, I just wanted to see if there was anything other than doing the operations 1 at a time that could reverse it.

    I might take a look at the scripts in the future and see if I can do something about it.
    The last thing I tried to figure out last night before going to bed was whether it would be possible to "reverse" or "revert" or any other googleable word the rotations with a simple math formula, but all the stuff I found was newbie game devs being explained to use quaternions or matrices... If the problem can be reduced to something like that, a simple formula for the rotations that give you their "reverse" rotations that unmake the first rotation, it wouldn't be too hard to apply that as a simple toggle called [Revert] or whatever...

  3. #3
    Guild Adept Naeddyr's Avatar
    Join Date
    Jun 2008
    Location
    Finland
    Posts
    300

    Default

    I actually did it!

    Turns out that if you create the kind of combined rotation matrix I used in the script, if you do the multiplications of the individual rotation matrices in "the wrong" order you get different results that do the rotations in different orders. So if you multiply Yaw and Pitch and then Roll you get the "reversion" matrix to the one I used in the script, and I was able to pretty easily plug it in... Except it took me half an hour figuring out the exact if-statement syntax in the script, before noticing I should have been trying to figure out the other kind of if-statement syntax, half an hour more figuring out the other kind of if-syntax again and after debugging by putting minus signs in front of every single alpha, beta and gamma in the else-branch formulas, bob's your uncle!

    I left a gui toggle in the Rotate Equirectangular Map script only, because the other scripts don't really need this functionality that much. With the same values (do not turn the angles negative) just click on Revert and you should get the same rotations as before the first transformation. Of course the distortions on the edges are really bad, but that's life.

    https://pastebin.com/NKN9VEE4
    Last edited by Naeddyr; 01-13-2021 at 03:16 AM.

  4. #4

    Default

    Quote Originally Posted by Naeddyr View Post
    I actually did it!

    Turns out that if you create the kind of combined rotation matrix I used in the script, if you do the multiplications of the individual rotation matrices in "the wrong" order you get different results that do the rotations in different orders. So if you multiply Yaw and Pitch and then Roll you get the "reversion" matrix to the one I used in the script, and I was able to pretty easily plug it in... Except it took me half an hour figuring out the exact if-statement syntax in the script, before noticing I should have been trying to figure out the other kind of if-statement syntax, half an hour more figuring out the other kind of if-syntax again and after debugging by putting minus signs in front of every single alpha, beta and gamma in the else-branch formulas, bob's your uncle!

    I left a gui toggle in the Rotate Equirectangular Map script only, because the other scripts don't really need this functionality that much. With the same values (do not turn the angles negative) just click on Revert and you should get the same rotations as before the first transformation. Of course the distortions on the edges are really bad, but that's life.

    https://pastebin.com/NKN9VEE4
    Thanks man, you're a hero!

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •