Actually, topic name explain problem.
I solved it by calling setPickingList in cases when the render area is resized. However, it looks like the _preparePickingBuffer method should avoid this bug, but it doesn’t do this.
Do you mind sharing a quick repro?
I investigate problem and find out that pickAsync’s promise is not always ends. Sometimes it lock my code because I wait for end of pickAsync’s promise before run another one. You can ensure this by adding console.log before and after pickAsync in https://playground.babylonjs.com/#B5XGIP#37
I do not repro:
Babylon.js Playground (babylonjs.com)
Does sound like a timing thing though.
on screenshot “begin” is out ~5 times more often than “ok”. this is not repro?
Oh!!! I see what you mean now!! I thought we were looking for an error:)
I will update the code to ensure that if a picking is already in progress we simply return null so you can know
I will keep you updated!
You know have a new boolean (pickingInProgress) to avoid launching picking while the previous one is in progress.
If you do it anyway the promise will still resolve with null instead of getting lost
Thanks a lot for your feedback!
thank you!
But in my case, the problem did not disappear. When the render area is resized, one promise is lost and now I can’t even run the other one.
When playground is updated I will try to reproduce it.
Oh, I see playground is updated.
In https://playground.babylonjs.com/#B5XGIP#65 when you resize window pickAsync always return null.
Checking!
Stupid mistake:
Fix sizing issue by deltakosh · Pull Request #15578 · BabylonJS/Babylon.js (github.com)
I was recreating the texture AFTER setting the parameters ;D
Works fine. Thank you!