effekseer / EffekseerForWebGL

MIT License
116 stars 16 forks source link

UV scrolling slowdown #14

Closed peke2 closed 4 years ago

peke2 commented 4 years ago

Thank you for a good tool. I use THREE.js to play Effekseer effects on a mobile web browser. An effect is create and play that only UV scrolling, scrolling will slow down over time. Do you already know this behavior?

iPhoneX(iOS13.2) + Safari / Chrome(78.0.3904.84) THREE.js(0.110.0) EffekseerForWebGL(effekseer.js 1.43 which is download from https://github.com/effekseer/EffekseerForWebGL)

Thank you.

durswd commented 4 years ago

I will check it

durswd commented 4 years ago

I could not reproduce this bug. Please send codes and effects.

peke2 commented 4 years ago

Thank you for your reply.

I uploaded codes and effect here. https://github.com/peke2/effekseer-uv-scroll https://github.com/peke2/effekseer-uv-scroll/blob/master/sample/effects/test/uvscroll/test_uvscroll.efk

Please see js/viewer.js for initialization and playback of effects.

durswd commented 4 years ago

I'm trying it with my iPhoneSE (I will ask other committer who has iPhoneX to try it ) But I cannot reproduce it. How long does it take to find slowly?

By the way, iPhoneSE's framerate is slower than PC. I need to implement Variable Frame Rate.

peke2 commented 4 years ago

Abount few minutes. It was the same behavior I tried on iPhone8.

durswd commented 4 years ago

Thank you iPhoneX, android(kindle fire) caused iPhoneSE not caused (but fps is always 30fps) I seem that fps is not changed but rendering is slow down...

I need a time to fix it. It is very wired.

双方日本人なので日本語の返答でも大丈夫です。

peke2 commented 4 years ago

ご確認ありがとうございます! UVがある一定以上を超えた場合に現象が発生するものと思われます。 お手すきの際にご対応いただければ幸いです。

durswd commented 4 years ago

Thank you for the report. I was convinced. I try to move the position maintaining the same result if the UV is far away from the origin. Please wait for a few days.

こちらこそ報告ありがとうございます。 納得しました。 UVが原点から大きく離れてる時に同じ結果が出るようにしつつ、位置を移動させるようにします。 数日お待ちください。

durswd commented 4 years ago

I maybe fixed. (My environment cannot reproduce it)

https://dev.azure.com/Effekseer/Effekseer/_build/results?buildId=661

peke2 commented 4 years ago

ご対応ありがとうございます。 masterブランチの最新を取得してビルドしてみましたが、現象が発生しているようです。 ブラウザ上での挙動を追えていないため、こちらでの確認状況の不備も考えられますが、 気になる点が1つあります。 https://github.com/effekseer/Effekseer の Effekseer.Instance.cpp GetUV() で扱っているuv.Width/uv.Heightは正規化されたサイズでしょうか? (コメント「For webgl bug~」の箇所です)

durswd commented 4 years ago

正規化されているサイズです。 iPhoneのSafari以外での環境でも発生しているのでしょうか?

peke2 commented 4 years ago

以前と同じ、iPhoneXのSafariになります。 Instance::GetUV() の return uv; の前に console.logでuv.Yの出力を入れて確認していますが、 farの値「4.0」を超えたら0にリセットされました。 その後、uv.Y が4.0を超えても0にならず、増え続けています。

durswd commented 4 years ago

申し訳ないです。ただの不具合のようですので後ほど修正します。

peke2 commented 4 years ago

お忙しい中、ご対応いただいてありがとうございます!

durswd commented 4 years ago

とりあえず直してみました。masterで確かめてみていただけないでしょうか? この変更になります。

https://github.com/effekseer/Effekseer/commit/0cbab75bba32c2482ac2625166ff97b45040b7bb

peke2 commented 4 years ago

最新のmasterで確認できました。 UVスクロールは特に問題無さそうです。 ご対応ありがとうございました!