Search Unity

[New Release] FM POINTS: Capture Point Cloud, Morph, Dynamic FX (iOS/Android/Mac/PC/WebGL/AR/VR)

Discussion in 'Assets and Asset Store' started by thelghome, Feb 15, 2020.

  1. MainManuel

    MainManuel

    Joined:
    Mar 13, 2020
    Posts:
    3
    Thanks
     
  2. wechat_os_Qy0-a3vWy8Y6FDLOnuvkQr6V0

    wechat_os_Qy0-a3vWy8Y6FDLOnuvkQr6V0

    Joined:
    Apr 17, 2021
    Posts:
    2
    Hi, I'm following the tutorial FM points (
    ), and towards the end there's that click on the Debug Mode box, but I don't see the debug mode box on my
     
  3. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    In the latest version, you should see Debug Mode option: Default, Normal, Depth
    Screenshot 2021-05-04 at 7.02.16 PM.png
     
  4. wechat_os_Qy0-a3vWy8Y6FDLOnuvkQr6V0

    wechat_os_Qy0-a3vWy8Y6FDLOnuvkQr6V0

    Joined:
    Apr 17, 2021
    Posts:
    2
    Thanks for your reply. But what I'm trying to find is actually the debug mode box that enables the blending to automatically going on. It's shown in the video (as in the screenshot), but not shown in my inspector. So just wondering where I can turn it on so that I don't need to manually adjust the bend value slider.
    upload_2021-5-4_12-39-27.png
    upload_2021-5-4_12-36-3.png
     
  5. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    The script in video is a bit outdated.
    As far as I remember, we added Mathf.Abs(Sin(time))..etc for demo debug purpose in that tutorial.
     
  6. masigouin

    masigouin

    Joined:
    Feb 23, 2021
    Posts:
    8
    Hello,

    I'm currently testing FM Points and I was asked to test it in a regular Unity 3D project and a project including the Universal Render Pipeline.

    The package is performing well on both projects, but the FMPC Manager script on the project with URP doesn't seem to work correctly.

    It is able to analyse the object I want, but the captured points number is never increasing.

    Is it normal?

    I have tested the package on Unity 2019 LTS, 2020 LTS and 2021.1 and, as soon as URP is involved, the script stops working correctly.

    I'm using URP version 11 on Unity 2021 and 10.5 on 2020 and 2019 in case that can help.

    Edit :
    I have also noticed that the script FMPlyImporter isn't used anywhere.
    Is it still useful to keep it in the package?
     
  7. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Only visualisation works in URP, while the point baking still requires standard render pipeline. It’s due to the depth pass data issue.

    the ply importer is for ply file decode, it detects “.ply” inside your Asset folder and generates the point mesh automatically.
     
  8. masigouin

    masigouin

    Joined:
    Feb 23, 2021
    Posts:
    8
    Alright!

    Thank you very much!
     
  9. zachary_unity4

    zachary_unity4

    Joined:
    Feb 15, 2021
    Posts:
    1
    Hello! I'm having the same problem as other users before where changing "Point size" does nothing for me.

    Point size only works for the "Unlit Brush" shader. However, I would like to use it with other shaders.

    I'm using URP with Unity 2021.1.3, and the GraphicsAPI is set to OpenGLES3 (build platform is set to Android)

    Is there something else with the URP settings that I need to do to make sure this shader feature works?

    Thanks!
     
    Last edited: Jun 2, 2021
  10. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    It should be compatible in URP.
    We tried to create a new URP project with Unity 2021.1.7f1, and set it as OpenGLES3.
    It works correctly on our Android Devices.

    There is an option of "Apply Distance". If it's toggled on, the Point Size unit will be in meter.
    If the toggled is off, the Point Size unit will be in Pixel.

    If you still can't solve the issue, please email us for technical support: thelghome@gmail.com
    Screenshot 2021-06-03 at 1.54.37 PM.png
     
  11. VictorinoOgura

    VictorinoOgura

    Joined:
    Nov 22, 2020
    Posts:
    3
    Hi @thelghome ,

    The asset looks great. Once I've imported my .ply file, on runtime or not, can I detect collision with a raycast for one individual point? And can I change de points' colors according to proximity to a certain point (like a heat map)?
     
  12. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    The collision isn’t supported yet, but we would investigate this feature for brush mode visualisation which contains polygon mesh.

    Heat map seems likely an interesting idea too, we will consider it. However, it’s not supported in current version unfortunately.
     
    VictorinoOgura likes this.
  13. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    v1.13 updates
    -Added web url files support via FMPlyImporterRuntime.cs (WebGL compatible)
    You may load the ".ply" file directly via a link with ease now.
     
  14. merpheus

    merpheus

    Joined:
    Mar 5, 2013
    Posts:
    202
    I am planning to buy this asset, but HDRP compatibility of point baking is a concern. I assume it is still not supported, but can I bake the points in a separate built-in project and use them in the actual HDRP project?
     
  15. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Yes, the baked data are compatible with HDRP.
    You can capture the needed data from standard/default Unity pipeline, and export it to your HDRP project.
     
    merpheus likes this.
  16. jumana-s3d

    jumana-s3d

    Joined:
    Dec 26, 2016
    Posts:
    4
    Hey, I have two questions.
    First, Is it working with the URP?
    And can we make an animated characters out of this? And can the effect follow the animation?
     
  17. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    It's compatible with URP except the point baking process. Once you baked your point cloud data with Unity's default/standard pipeline, you can copy the baked data to URP for the visualisation.

    or you can import ".ply" files, it can be baked from Unity, or generate from other software like "CloudCompare".

    skinned meshed is not supported yet. However, you may baking part of your character, arms, legs.. and parent them to your skeleton later.
     
  18. villaman

    villaman

    Joined:
    Apr 21, 2021
    Posts:
    69
    My understanding looking at the earlier comments is that baking is not supported in URP. Does this also imply that the real-time FX capture won't work in URP either?

    Also, can this be used to morph one image to another image? I could put each image as a material on a Quad. However, in my game these images are only available at runtime.

    If real-time FX capture is not available in URP, could I bake a Quad to Quad morph (using the built-in render pipeline), but then procedurally change the point colors on Quad1 based on Image1 and Quad2 based on Image2 at runtime in URP?

    In general are there API's to manipulate the point cloud data? Is each point just a single (small) triangle mesh?

    thanks,
     
  19. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Your use case is a bit too specific, as 2D quad may have different morphing result. (either good or bad in extreme case)
    The morphing fx is not supported in runtime yet, as it does require some processing time to generate the prefab.

    triangle meshes are only supported in "Brush" visual mode, morphing 3D meshes are very heavy rendering in comparison to points morphing.

    hope all these info may give you some directions.
     
  20. ericwang

    ericwang

    Joined:
    Nov 9, 2014
    Posts:
    1
    Hi, this looks super amazing. I'd like to know its performance for large point cloud data (around 5-20 M points).

    I'm currently trying to render point cloud data in VR (i.e. Oculus Quest). I have tried the other method (PCX) using ComputeBuffer, but it only works well when the point could data is below 2M points. I'd like to know whether FM POINTS work for large point cloud data in VR. Thanks.

    Here is an example that I tried to render.
     
  21. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    FM POINTS is well-optimised for performance, with the minimal gpu processing power required.
    But we cannot guarantee your use case in VR devices.

    You may check our home page
    https://frozenmist.com/fm-points/
    or try our WebGL demo
    https://frozenmistadventure.github.io/demofmpoints/

    In my previous projects, we used FM POINTS with a village scale 3D point cloud scanning data, with a high-end computer costed $20k~30k USD in the year of 2019. Thus, technically the limitation is on GPU memory size.

    Few tricks which I can share, when you are working on point cloud with any tools or plugins.
    1) splitting your point cloud data set into small chunks of data
    2) prepare LOD for each chunks
    3) or applied the logic of map tiles
    4) disable invisible chunks of point cloud (set it as static object should achieve it by default)
    5) write another small script, to enable the rendering area when needed
    6) always release unused GPU resource via script as possible
     
  22. cpkcpk

    cpkcpk

    Joined:
    Dec 13, 2019
    Posts:
    48
    Hey, do you still plan on updating the lit lambert shader for HDRP? Also, will point size (not brush) ever be supported for DX11/DX12?
     
  23. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    It's in our to-do list, but there are still some high-priority tasks at the moment.
    Once we have any progress, we will post experiment on our official twitter account @frozenmistdev
     
  24. jakubp

    jakubp

    Joined:
    May 18, 2015
    Posts:
    1
    Hallo I would apriciate some help with my AR app using FM poins.
    I have an issue with correct rendering of my scene when I´m using Image target.
    The animation of points jitters, but if I donť use image tracking, it doesn´t and works just fine.
    Thank you in advance for your response.
    (Android, using AR core, AR foundation, material: FMPC unlit FX)
     
  25. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Would you please sharing further information, screenshot or video about your issue?
    It would be easier for us to follow your case, if you could write us an email for technical support.
    support email: thelghome@gmail.com
     
  26. ekeegan

    ekeegan

    Joined:
    Jul 4, 2012
    Posts:
    7
    Hello FM Points team! Fantastic tool here, just a quick question regarding the ability to do fancy material tricks when morphing. I have a simple morph that includes a unique material. Is there no way to dynamically change the material and have that carry over in the morph blend? (example: morph from a plain white model to a range of textured versions) I know you can adjust the Main color, but I was wondering if I can swap materials and have them update when the blend completes. Thanks for any insight into the matter!
     
  27. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    If simply changing the saturation, gamma..etc, those should be possible to achieve. We may consider this feature in the future version.

    If you are familiar with shader, you may also modify them for your specific need too. It's not too difficult to override the color channel into plain white, with a variable input.
     
  28. ekeegan

    ekeegan

    Joined:
    Jul 4, 2012
    Posts:
    7
    Thank you for the response, however, I don't think this quite answered my question. I wanted to know if the materials from the original objects to be blended can be dynamically swapped once a morph prefab is created. I noticed the only option in the Helper component is Main Color, but is there the ability to expose a material property and have this update alongside the blend?

    Additionally, would it be possible to have a 'set up' scene for getting the best point capture. I am still figuring out the best camera settings to achieve this, but would love to have a scene that sets this up or even an additional readme page with suggested settings for best results.

    Thanks again!
     
  29. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Thanks for telling us your need, we will also consider adding more documentation about the suggested setup on our webpage in the future(asap of course).

    When you are saying material property, could you specify which type of property?
    It could be texture input, color input, and float input..etc.

    PS: The material concept in Unity is only a container, which you could change different Shaders.
    In each Shader, there are different algorithm for the GPU processing. And we can add different variable input for the shader in order to control the result of final visualisation.
     
  30. ekeegan

    ekeegan

    Joined:
    Jul 4, 2012
    Posts:
    7
    Apologies for the back and forth, to clarify on the specifics of a material property, I am looking to have exposed the texture2D (for more complex UV meshes) element for a given blended mesh and update that dynamically. I notice that the default FMCPLambert blend doesn't seem to have a texture2D property exposed to modify, I tried to add this manually as a shader property as well as extend the Helper.cs and Editor.cs to provide a texture2D option to change but it seems this property is ignored all together.

    Am I moving in the right direction to directly edit the shader of the FMPCDLambertBlend to include a Texture2D input for swapping out different UV textures?
     
    Last edited: Nov 8, 2021
  31. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    After baking, the point color no longer refer to the UV position. The final color between two blended meshes are stored in other dataset. Supporting another Texture2D input would be much difficult than changing colors, as it will involve some maths & UV calculation/conversion.

    Meanwhile, we will investigate the possibility and hopefully we can include this feature in the future. This process might take some time, and sorry for the inconvenience in the current version.
     
  32. ekeegan

    ekeegan

    Joined:
    Jul 4, 2012
    Posts:
    7
    No inconvenience at all, I really appreciate the update and look forward to future integrations.
     
    thelghome likes this.
  33. Al95

    Al95

    Joined:
    Nov 8, 2016
    Posts:
    6
    Hello,

    Is there an easy way to make disk points instead of square points with the Unlit render type? Apologies, I'm no expert in shaders.

    The Unlit Brush circle method is not very useful because the circles are not facing the camera, they seem to orient by the normal direction of the mesh. I'm interested in having disk dots like the square dots in the Unlit render type, always facing the camera.

    Thank you
     
  34. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    We released an update recently, with "FacingMainCam" option in Unlit Brush mode.
    It should be available on store now.

    [v1.20]
    -Added Experimental feature: Facing Main Camera for "Unlit Brush" Mode
     
  35. ArmandoRHUL

    ArmandoRHUL

    Joined:
    Oct 7, 2020
    Posts:
    1
    Hi Can this effect be applied to only specific assets in a room with rest remaining as standard textures (pbr)/ Say a particular book on a shul in a vr scene that is a selectable action point to travel to a new scene?
     
  36. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    You may bake part of your 3D object into point cloud prefab for this purpose.
    The baked data is bascially a mesh object in point cloud visualisation.
     
  37. melo_op

    melo_op

    Joined:
    Nov 27, 2021
    Posts:
    1
    Hi,

    I'm getting this when trying to show some pointclouds on brush-circle on a scene.

    upload_2022-4-12_21-32-3.png

    Is there a point-count limit? A pointcloud with brush-circle works fine on a previus scene.
    How can I fix this?

    I'm building for VR (Oculus Quest 2)
    Gracias :)
     
  38. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Brush-circle will generate many tris in runtime only.
    This warning should be from editor's camera view, which won't affect the game view final rendering.

    If you have unexpected result, please email us with some screenshots.
    technical support: thelghome@gmail.com
     
  39. cy_unity

    cy_unity

    Joined:
    Nov 30, 2020
    Posts:
    1
    I have a simple question to ask before I purchase this asset.
    Can I import FBX/OBJ model to make use of this wonderful asset?

    Thanks in advance :)
     
  40. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    FM POINTS can help you bake your 3D scene's objects into point cloud data.
    Or, you could also convert your fbx/obj files into point cloud first, via 3rd party software "CloudCompare", then save it as ".ply" format.

    Once you have the baked data or ".ply" files, FM POINTS will detect it and generate a prefab for the visualisation.
     
  41. jmgek

    jmgek

    Joined:
    Dec 9, 2012
    Posts:
    177
    I got this asset because of the "Added runtime ".ply" importer" this means at runtime you can import a .ply (stream a ply into your scene) I don't see any logic for this.
     
  42. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    There is another component "FMPlyImporterRuntime.cs" for runtime ".ply" loading.

    You could also untick the Auto Generate, and call below commands instead.
    Code (CSharp):
    1. FMPlyImporterRuntime.Action_LoadPLYData(string inputPath);
    2. FMPlyImporterRuntime.Action_LoadPLYData(byte[] inputBytes);
    Screenshot 2022-06-24 at 6.29.53 PM.png
     
  43. RobotFlow

    RobotFlow

    Joined:
    Aug 11, 2020
    Posts:
    26
    Hi, I met the EndLayoutGroup error, when I try to save the mesh or export the PLY.

    The error message is:
    Code (CSharp):
    1. EndLayoutGroup: BeginLayoutGroup must be called first.
    2. UnityEngine.GUILayout:EndHorizontal ()
    3. FMPCManager_Editor:OnInspectorGUI () (at Assets/FM_Points/Scripts/Editor/FMPCManager_Editor.cs:427)
    4. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
    Reproduce:
    1. Add FMPC Manager to Main Camera
    2. set Capture Mode to Scene, click Capture button.
    3. when step 2 is done, click Optimise
    4. when step 3 is done, click Save or Export

    Env:
    FM Points 1.21
    Unity 2022.1.8f1c1
    Win 10

    What could go wrong? Thanks!
     
  44. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Thanks for reporting this inspector gui layout bug. We can reproduce the issue on our side following your procedure.

    Updated 2022/07/24: This gui bug has been fixed in FM POINTS v1.30
     
    Last edited: Jul 23, 2022
  45. RobotFlow

    RobotFlow

    Joined:
    Aug 11, 2020
    Posts:
    26
    Thanks, the error is gone, but the export function is still broken.

    When I hit the "Export" button after first 3 steps are done, the ply model does not appear in the directory I set, and no error message appears.

     
  46. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    We've tested on the latest official release Unity 2022.1.10f1 without issue.
    Is your "Unity 2022.1.8f1c1" a beta or alpha version of Unity? (as we noticed that you labelled it with "c1")

    Would you mind sending us screenshot or video via email for technical support? It would be much helpful for troubleshooting and further investigation.
    *support email: thelghome@gmail.com
     
    Last edited: Jul 24, 2022
  47. RoryMercantile

    RoryMercantile

    Joined:
    Dec 18, 2021
    Posts:
    5
    We're trying to use FMPoints for a scan of a neighborhood imported as a .ply, and my question is is it possible to use post-processing URP effect to add Bloom and other glowing factors to make the point cloud look cooler?

    I've not learned how to program shaders so I'm hopeful there's another way to work on the look of the point cloud without code --

    Also I've noticed that trying to set it to "Unlit Brush Circle" only works at runtime, and otherwise it will just show up as the square pixels. Is that right? Thanks for making such a cool tool!
     
  48. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    It should be compatible with post-processing fx's Bloom. You may give it a try.
    Yes, the brush circle mode is only visible in runtime. Hopefully this tiny tool can help your projects.
     
  49. RoryMercantile

    RoryMercantile

    Joined:
    Dec 18, 2021
    Posts:
    5
    Ahhh, thank you @thelghome -- I was able to get Bloom to work, but I realized it may not be what I was looking for. I'd like to make the points themselves glow or pop more, do you have any recommendations as to how to do that?
     
  50. thelghome

    thelghome

    Joined:
    Jul 23, 2016
    Posts:
    738
    Usually post processing fx has its threshold value for bloom detection, etc brightness..etc
    Bloom is a full screen image effect, it's different from particle glow, those will draw lots of impact on performance.

    Our visualisation method is as 3D mesh or square point, which doesn't involve glow like particle fx, unfortunately. Most of users are adjusting threshold of the bloom fx instead.