BMWPilote Posted June 21, 2018 Share Posted June 21, 2018 It seems that engine.getCaps().drawBuffersExtension returns false on IOS and so that the multi-renderTarget cannot work on IOS? I am really sad if so. Could anyone please confirm? Or did I miss something? Thanks a lot. Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 21, 2018 Share Posted June 21, 2018 https://docs.microsoft.com/en-us/windows/uwp/app-resources/using-mrt-for-converted-desktop-apps-and-games Quote Link to comment Share on other sites More sharing options...
Guest Posted June 21, 2018 Share Posted June 21, 2018 I confirm unfortunately Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 22, 2018 Share Posted June 22, 2018 @BMWPilote I used this Github code when I had a similar issue: https://github.com/BabylonJS/Babylon.js/blob/master/dist/previous releases/babylon.2.4.d.ts Check lines 45, and 172. Worked on my Mac Pro ( with some modifications). Written by @Deltakosh - so I'm not certain why he doesn't believe it's possible. Of course, a modification of the code that actually runs is far more difficult to write. There are literally 100s of apps utilizing MRT for IOS - just do a search and get whatever code you need. I can't share what I did, as it is the property on Sony Electronics. DB Quote Link to comment Share on other sites More sharing options...
Guest Posted June 22, 2018 Share Posted June 22, 2018 Well I confirm that multi render target are not supported on iOS (I've just checked a few minutes ago to make sure iOS 11 did not change anything) Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 22, 2018 Share Posted June 22, 2018 @Deltakosh This might help confirm my experience... http://community.monogame.net/t/solved-ios-gles-3-0/9839/5 It's a frame buffer issue that can be worked around. DB Quote Link to comment Share on other sites More sharing options...
Guest Posted June 22, 2018 Share Posted June 22, 2018 Yep this is in opengl. Unfortunately they did not push the support on Webgl Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 22, 2018 Share Posted June 22, 2018 @Deltakosh OK, another link I found useful... https://www.khronos.org/webgl/public-mailing-list/public_webgl/1301/msg00055.php But there's nothing simple about it - it's an OpenGL port no matter what - but it can be done. At least we did this at Sony... as a team of course. DB Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 22, 2018 Share Posted June 22, 2018 In WebGL, it's not simple at all, but you can disable Z-buffering, and build your own Z-buffer functions. This will work, but again is quite an advanced solution to write. Perhaps new Z-buffering computations could be written into babylon.js? Of course, by far more talented devs than myself. @Deltakosh? I know you have a fantastic team! DB Edit - I had this in my bookmarks, and realize now that the links are outdated. Still, I'd love to see the changes made to the Z-buffer computations to permit MRT. Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 24, 2018 Share Posted June 24, 2018 This being done, but every link I find uses a fragment shader. Here's a useful link: https://webglfundamentals.org/webgl/lessons/webgl-drawing-multiple-things.html and https://webglstats.com/webgl/extension/WEBGL_draw_buffers But it looks as though we'll be waiting for WebGL 2.0 - although I personally believe we will still be waiting before this is standard. And now I will avoid this topic, as I must refer to @Deltakosh . If anyone knows more about this than him, then I a rubber ducky...? DB Quote Link to comment Share on other sites More sharing options...
Guest Posted June 25, 2018 Share Posted June 25, 2018 We do have complete support for MRT even in webgl1 if the draw buffers extension is here. This is how this demo is done: https://www.babylonjs-playground.com/#7D2QDD#0 But to refer to OP question: this does not work on iOS because the draw buffer extension is not present Quote Link to comment Share on other sites More sharing options...
BMWPilote Posted June 26, 2018 Author Share Posted June 26, 2018 11 hours ago, Deltakosh said: We do have complete support for MRT even in webgl1 if the draw buffers extension is here. This is how this demo is done: https://www.babylonjs-playground.com/#7D2QDD#0 But to refer to OP question: this does not work on iOS because the draw buffer extension is not present Thanks you for your confirmation boss. Quote Link to comment Share on other sites More sharing options...
BMWPilote Posted June 26, 2018 Author Share Posted June 26, 2018 11 hours ago, Deltakosh said: We do have complete support for MRT even in webgl1 if the draw buffers extension is here. This is how this demo is done: https://www.babylonjs-playground.com/#7D2QDD#0 But to refer to OP question: this does not work on iOS because the draw buffer extension is not present Thanks you for your confirmation boss. Quote Link to comment Share on other sites More sharing options...
dbawel Posted June 26, 2018 Share Posted June 26, 2018 Again, this can be accomplish by using a shader. However, it's not for the novice, however the shaders already exist. But again, I'll aways defer to @Deltakosh since he is my good friend, and mentor; and an excellent dev and person. I just hope we can get together soon to simply have a beer...? DB GameMonetize 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.