• Content Count

  • Joined

  • Last visited

About Rodrix3

  • Rank
    Advanced Member

Recent Profile Visitors

1205 profile views
  1. WOWW!!!! impressive Thanks so much @V!nc3r. Can't wait to see the English article. I am out on a huge ton of loadwork unrelated to 3d, but will get back to all of you soon. Can't wait to resume all 3d projects.. and can't wait to read your tutorial in English. What you made is impressive! Thank you so much!!!
  2. Hey guys! I've been extremely busy with other non-3d urgent projects that unexpectedly got into the way. Hopefully, I will be able to plunge again into the loved 3d world in the next two weeks or so - as soon as the urgent project is done - and I will resume this mergeMeshes implementation and share my discoveries of optimization
  3. AMAZING @V!nc3r ! Thanks so much for putting so much time into this Vince, very looking forward to the tutorial
  4. RTX2080 ti... Should I buy it? In other words.. how far are we from implementing any live ray tracing features for BabylonJS, to take advantage of the new RTX cards that will be launched next month by Nvidia? For the uninformed: hot news. Nvidia is launching a new technology that will change graphics as we know them today. Shadows and lighting will become hyper realistic. The announcement from Nvidia is fresh: hours! would be sooo cool if we could support any of this in BabylonJS! Imagine the possibilities!
  5. Awesome Let me get into it. Before I do the PR I am doing tests on my side to make the code more robust. @Deltakosh, I need one thing: how can I get the unique indentifier of a material? Not the material name, but a string or number that can be used to uniquely identify this material. Does there exist such thing? is unique? (If not, not a problem I can handle this otherwise) UPDATE: I have run into a much more important issue. There seems to be a bug with BABYLON.Mesh.MergeMeshes() function when the meshes to merge have more than 65536 vertices (even though the flag allow32BitsIndices is set to true). I have isolated a test case for this, but I don't how to have a sandbox with external gltf, bin, and multiple texture files. The error happens only with particular meshes of the same material, evidently those with more than 65536 vertices: var disposeSource = true; var allow32BitsIndices = true; var meshSubclass = undefined; var subdivideWithSubMeshes = false; BABYLON.Mesh.MergeMeshes(meshList, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes); TypeError: this.indices.push is not a function at q.merge (babylon.js:1) at Function.p.MergeMeshes (babylon.js:1) I am thinking it might be appropriate to open an issue on Babylon source code. We need this fixed before I can proceed. Shall I open an issue on git and attach all files? UPDATE 2: Done! I have created a completely isolated full test suite showing that by merging multiple meshes with more than 65536 and allow32BitsIndices on, Babylon crashes. Here is the issue with full test suite attached:
  6. Thanks @Deltakosh for the reply. Yes! I see you have something similar and that you and @Sebavan are the main contributors on the mesh merging optimization. Good! Too bad I missed it.. However, I also see that currently implemented code at Scene Optimizer passed does not implement multi material as further optimization, as I did on my quick proof of concept function. Using a multi-material reduces the mesh count, which could lead to a performance increase. Don't you think it would be a nice addition to merge all merged meshes into one single multi-material (or several of them) as I did as an extra step of the optimization algorithm? What do you think? :) If this is a bad idea, please let me know - I am just trying to contribute to make the library better IMPORTANT IDEA: Also I would like to take this even further. I think that once the optimization is done, we should serialize the result of all merged meshes and export as babylon file. In this way, the optimization will be done ONLY once (by the developer) and not every time (by the end user). We could make this into a webpage where our users load the main babylon file, the scene gets optimized by using merge mesh, and returned as a new babylon optimized file they can use on their production projects (or we could make it part of the Inspector, under a new tab called "Optimize")
  7. Thanks so much @klaude! I appreciate it.Could I ask you one more thing please? Could you please post your code into a working playground so I can see it in action and fully understand it (or into a codepen if you need to make further adjustments?) I would really appreciate it. Thanks!
  8. I am done. Result => SUCCESS @Deltakosh I think you will enjoy this (and you may also share it with the guys working on Scene Optimizer, or optimization on Babylon, and tag them - I haven't met everyone yet - if you find this interesting .. which I hope you do!). I have created a function called optimizeSceneByMergingMeshesAutomatically(scene) which you can see at the top of the playground, which analysis all the meshes on scene and automatically: merges all meshes with the same material. merges all merge of meshes with same material, into one big multi material mesh. The result: BEFORE: 152 meshes; 152 draw calls AFTER: 1 mesh; 4 draw calls ...with exactly the same render results. Playground and demo: My idea would be to be able to integrate this script into current functionality so others can use it; and have the community chip in and add any extra optimizations to my code. Hope you all like it! I have been working the last two hours on this, so please let me all know what you think!
  9. Hi guys I will be spending the next few hours (attempting to) creating a code snippet that optimizes meshes, by doing automatic merging. My objective is to: 1) Automatically identify meshes that share same materials, and merge them into a single mesh. 2) Merge all meshes that don't share material into one single mesh all meshes, by using submeshes and multimaterial, automatically. The idea is to have an automatic optimization based I have spent a long time researching on forum and reading docs. However, if something like this has already been done, and I didn't find it.. please let me know Meanwhile.. I'll be coding and making tests the next hours
  10. Rodrix3


    Thanks a lot! I really appreciate it Should I play with focusDistance and Focal length and leave fStop intact? (I have no idea what is fStop..) @brianzinn To be able to get blurry on near and sharp on far I am looking for a small number on focal length and a big number on focal distance, correct? Thanks
  11. I am glad I helped! I struggled myself and a lot with this issue until I discovered how to fix it! Success on your project
  12. Hi guys! The initial code posted and ccapture was from my thread. @klaude have you used ccapture or the playground I posted? I wasn't able to fully port ccapture into Babylon and test to be able to specify the target fps and be in sync. Were you finally successful? and if so can you please share your PG? @Deltakosh and @Sebavan does the solution in implementation allow recording to mp4/ webm/ or photo frames in a constant fps without lost frames? I am interested in recording high quality video. With ThreeJs and ccapture library I was able to render at 4K at 60fps, if I wanted (script would render every frame in slow motion locked at the target fps) Looking forward to the news
  13. Rodrix3


    I am trying to use the dof postprocess which has the following parameters: pipeline.depthOfField.focusDistance pipeline.depthOfField.focalLength pipeline.depthOfField.fStop My scene is about 1000 units long and I would like to have all near objects in blur, and all distance objects completely sharp (bokeh effect). I tried many combinations of parameters, but unfortunately none render the result I want; and since I have zero knowledge on professional photography I would love to have some help! Could anyone advise me or at least explain how those parameters work (on babylon or on a real camera)! Thanks in advance
  14. I believe I am familiar with this problem. Manually open your GLTF file and set "alphaMode":"OPAQUE" (search for alphaMode and set to that value) That should fix the issue. If you are exporting from 3ds Studio Max ensure that your textures are not using alpha mode which is set automatically every time you load a png, even if it has no transparency. Hope it helps
  15. I am really confused about: pipeline = new BABYLON.DefaultRenderingPipeline(...) VS pipeline = new BABYLON.StandardRenderingPipeline(...) VS postProcess = new BABYLON.ImageProcessingPostProcess(..) To me all of them are post processing. So I don't understand.. When should I use each? Can I combine all three together? I see that the standard has things that the default pipeline doesn't have. I also see that the standard is "no longer mantained" but it has awesome features like volumetric light, dirt camera, adaptive HDR. How am I supposed to do all that with the default rendering pipeline? I see no explanation of that.. I also see the var ssao = new BABYLON.SSAORenderingPipeline(..)... making things even more confusing What is the best practice if I want to combine most of the effects? I want to combine: Dirt Adaptive HDR Bloom Vignette MSAA Grain ColorCurves LUT color correction Vignette DOF Lens Flare Volumetric lighting is gone from default pipeline too? (I had almost all these postprocessing effects in place in ThreeJs, and I need them now in my Babylon Project) Thanks in advance P.S: I am looking at these pages: