maruohon / multishot

Multishot Minecraft mod for automatically taking screenshots (for timelapses etc)
http://minecraft.curseforge.com/projects/multishot
GNU Lesser General Public License v3.0
6 stars 1 forks source link

Problems With Optifine #2

Open TechieCrow opened 7 years ago

TechieCrow commented 7 years ago

For us that need Optifine to live.. Erm I mean play this issue can be quite annoying.

With Optifine whenever Multishot takes a screenshot it causes the screen to display the screenshot for a few milliseconds, when you are taking screenshots every second it can be VERY annoying and may even cause seizures.

EDIT: This is with 1.11.2 and free camera mode on, I have not tried other versions.

maruohon commented 7 years ago

This is probably going to be painful trying to debug, because Optifine isn't open source, and I know very little about rendering things...

TechieCrow commented 7 years ago

I understand, I will do a lot more testing when I wake up, it might just be as simple as turning off an Optifine setting, I do know it works fine with free camera mode turned off though so the problem most probably is something with that.

maruohon commented 7 years ago

Yeah, the free camera mode does do a separate render call to render everything to a separate frame buffer, which is then used as the source for saving the screenshot. It is very much possible that I'm just doing something wrong, because like I said, I know very little about rendering stuff. Which is also why this will likely be difficult for me to figure out, since I don't really know what it is that I'm possibly doing wrong... Or what Optifine might be doing that causes that separate rendered framebuffer to get displayed on the screen...

TechieCrow commented 7 years ago

Well you do a better job at rendering then me haha.

So I tested all of Optifine's settings both all on lowest and highest but it seems nothing helps.

I recorded a Gif to show you but because of how fast the screenshot disappears it doesn't really show up but you can see how much lag I get when I start the motion, every lag spike is the screenshot appearing then disappearing.

I found if you take screenshots faster it does this weird thing where your view is from the camera which does show up in the Gif.

(Gif was recorded at 30 FPS) http://imgur.com/gXnmRFg

maruohon commented 7 years ago

Hmm okay, so you are using PNG compression, which is waaaay slower to save than JPG, so that might be part of the problem, or at least reveal the problem more noticeably. I still haven't had time to start looking into this, but this does at least give me some ideas on what might be going on. It might be something along the lines of optifine rendering the screen (as it changes things to do with threading) while Multishot is saving the screenshot from the rendered camera viewpoint... or something.

TechieCrow commented 7 years ago

The same thing happens with JPG, I don't think I noticed a diffrent between any of the compressions.

Take your time with it, it's not a gamebreaking bug so does not need immediate fixing.

maruohon commented 7 years ago

Oh btw, did you see any camera jumping or other weirdness in the captured screenshots, or is it purely the player's perspective that sometimes jumps to the camera?

TechieCrow commented 7 years ago

It's purely the players perspective, I have been using it on a Skyblock server with a 2nd account to create timelapes's and have not noticed anything too weird, expect maybe the timelapes's slows down for a few seconds but I think that's due to Minecraft lag.

More testing to be done!

magneticflux- commented 7 years ago

@TechieCrow It's because of the "Fast Render" option in Optifine. I had the same problem until I disabled that option, and then it worked fine.

maruohon commented 7 years ago

I just uploaded version 3.3.0 (for 1.12 only atm). It adds a custom rendering method for the free camera mode. I haven't tested it myself with Optifine, so I'm curious whether or not it makes any difference to the glitchyness you were experiencing. Although you mentioned you are still in 1.11.2, so I don't know if you can test this or not...