Search Unity

[Released] Point Cloud Viewer Tools

Discussion in 'Assets and Asset Store' started by mgear, Apr 14, 2014.

  1. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    yeah thats pretty much next in the todo list, and currently there is no easy workarounds for that..
    (as the old measurement system doesnt support this kind of on-demand loaded/unloaded cloud cells)

    i'm hoping to push next update before end of this month, but not yet sure if measurement system is ready by then.
    if you are in a hurry and want to test it yourself, i'll post some ideas in private message.
     
  2. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    Any chance that you can create a demo scene for importing in point clouds at runtime (button opens file dialog) - gets file information, imports file, creates gameobject, and can select mesh?

    Specifically for the V3 Tiles?
     
  3. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189

    Could you just create a primitive measuring system?

    Get Transform at Initial click = X,X,X.
    Second Click = X,X,X

    TextMeshPro Value = distance between transform1 and transform2. Could be done in world space, and instead of relying on the coordinates just take the distance between whatever values they are and discard all the other information. Or is there an issue detecting hit markers?

    Also maybe if using a mouse, use left click for initial insertion (and to reset) and right button to place secondary marker (also creates the measurement). Then once the 2 values are initiated, creates the text in the middle of said measurement line.
     
    Last edited: Jul 22, 2020
  4. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    initial v3 point picking is now working, ill try to submit that and few other updates to store within next month.

    or do you also mean that, while the user is moving mouse after first pick, current distance would be displayed realtime?
    i guess it should be possible, need to look into it how well it works on large clouds, and if not, need to use some other method..
     
  5. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    v3 doesnt have runtime support yet, initial plan was to use the commandline tool in background to do that..

    theres good standard file dialog plugin here, so it would be possible to wire these things together to create such scene (probably wont have time for the next update though)
    https://github.com/gkngkc/UnityStandaloneFileBrowser
     
  6. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    I started creating my own, and have done several re-works just so that I could understand it. I might have to implement this though as I assume that it is has compatability with all platforms? It looks good.

    Regarding the point picking I was just referring to making it independent of the cloud/mesh so that you can set it up to use the unity units, or a converted scale and that you can set and it doesn't necessarily have to be "point" picking as much as it could be some other form of collecting the information ( and then setting up multiple input calculation methods). Also I guess my question was that, why can it not be a universal feature that detects the variant of cloud (V1,V2,V3 ... etc) and based on that it changes its method of calculation. whether it be VR/3D/2D slicing. I know in the past software that I have used for editing point clouds a common feature seemed to be culling data far away from the selection so that the processor could arrive at the calculations more quickly. For instance if I click 120.098, 1789.000, 84908.00 it would get a base figure somewhere closer to 1 meter range (and using the feature that I havent gotten to try yet of selecting points) runs the calculations on that area only to speed up the process vs running through an entire list or array of points. Although I imagine its probably easier to do with meshes than the loaded files? Im not sure how Unity calculates a hit/interaction/click etc using the graphics card.
     
  7. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    Random thought... How efficient would it be to design a side loading app in Unity using IL2CPP? Would that help potentially to increase the speed once it is built? it could be an alternative solution for the conversion of the meshes.
     
  8. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    yes, i imagine that any externally running tool will be faster (than in editor processing),
    and if that is for runtime conversion, yeah could easily be 10x win just by doing parsing outside (and then receive vector3 or byte[] array of ready data)

    *also note that current conversion is quite inefficient, single thread, lots of error checking "just in case of bad values", regex even, could easily take input file, split to more cores, then combine (some extra memory would be used though).
     
  9. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    tbh, most of the files dont need error checking to my knowledge. One of the biggest issues is that sometimes people have multiple clouds in the file separated by multiple headers and some of the converters dont pick up on that. Also some read line stuff with the delimeters. It would be easier to just have the user open up a txt based editor like excel (in Unity) and look at the data and configure the parameters(you can avoid almost all of those issues), and then have some failsafes in there. (Also show first 25 lines, and last 25 lines, and an algorithm to look for inconsistent lines). Options to remove headers (sometimes people add them unnecessarily).

    For that you would just need a binary loader/ ascii loader, parameter lists, and a single method with overloads ( ex PointCloud( MethodConversionV1-3, ParametersSpecified, Location, FileType, Vector3, R,G,B)
    PointCloud( MethodConversionV1-3, ParametersSpecified, Location, FileType, Vector3, GS),
    PointCloud( MethodConversionV1-3, ParametersSpecified, Location, FileType, Vector3, Intensity)
    PointCloud( MethodConversionV1-3, ParametersSpecified, Location, FileType, Vector3, RGB, Intensity) etc etc etc.

    ConversionMethodV1;
    ConversionMethodV2;
    ConversionMethodV3;

    I need to really look through the SC again tbh, because I know you have some stuff in there already.
     
  10. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    true that.. i think i'll look into removing some of the checks and just print conversion failed (if file is not as expected by the format) although still need to handle possible random header comments and comma vs dot.
     
  11. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    could be easier to just force skip the first line altogether (ascii). One vertices is likely not to matter. If there were a reader though we could see that and click a parameter to skip first line (or first line and delimiter, or possibly extra random delimeters after the last item in a row- ive seen it before). Or even a quick test run option to read through the first 100 lines of the point cloud and output the data. LAS files maybe more because if my memory serves their header files are super long.
     
  12. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189


    One for the editor (although I dont know how to serialize the file path field xD)

    Code (CSharp):
    1.  
    2. using System.Collections;
    3. using System.Collections.Generic;
    4. using UnityEngine;
    5. using UnityEditor;
    6. using System.IO;
    7.  
    8. public class FileReaderUnityVersion : EditorWindow
    9. {
    10.  
    11.     string[] fileContents = new string[25];
    12.     [SerializeField]
    13.     public string filePath = "X:\\001_PointCloudFiles\\001_PTS_Files\\eagletest1_000002.pts";
    14.  
    15.     string text = "Nothing Opened...";
    16.     Vector2 scroll;
    17.  
    18.     [MenuItem("001_Rj/Point Cloud Reader")]
    19.     static void Init()
    20.     {
    21.         FileReaderUnityVersion window = (FileReaderUnityVersion)GetWindow(typeof(FileReaderUnityVersion), true, "Point Cloud Reader");
    22.         window.Show();
    23.     }
    24.  
    25.  
    26.     void OnGUI()
    27.     {
    28.      
    29.         ReadTextAsset();
    30.  
    31.         scroll = EditorGUILayout.BeginScrollView(scroll);
    32.  
    33.         for (int x = 0; x <= 24; x++)
    34.         text = EditorGUILayout.TextArea(fileContents[x], GUILayout.Height(20));
    35.  
    36.         EditorGUILayout.EndScrollView();
    37.     }
    38.  
    39.     void ReadTextAsset()
    40.     {
    41.         using(StreamReader sr = new StreamReader(filePath))
    42.          
    43.             for (int i = 0; i < 25; i++)
    44.         {
    45.                 fileContents[i] = sr.ReadLine();
    46.         }
    47.     }
    48. }
     
    Last edited: Jul 31, 2020
  13. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    I ended up using this one and found an issue with one of my files. But if you look at the data, you can tell what it is and just select the parameters.

    I think a method that can be written to work around header issues would be to calculate the value in the header, and then check that many lines and if there is more data after than, check to see if the next value is another header, and if so, run the next set too.

    Runtime Version -
     
  14. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    Any chance that I can get the source code for the external converter to throw into this and start trying?

     
  15. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    yes, i'll pm you. (i'd like to make the converter tool open source anyways, but its so messy at the moment :D )
     
  16. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    still slowly getting towards the next update,
    some current update highlights:
    - v3 initial point picking
    - PCache export option in the binary converter (to use those files in unity VFX)
    - v2 and v3 lite shaders (triangle instead of quad, some performance wins)
    - Mac Metal shaders (so can use binaryviewerDX11 in mac)
     
    Rickmc3280 likes this.
  17. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189

    I saw the VFX image on git and was curious. Sounds cool, are there performance gains there?

    I am currently creating my own tiling system that should read all non binary point cloud files to try and assist for an open source effort. I've looked more into those scripts and see that some of it relys on the dll files. I kind of want the entire part be available without users afraid of terms and conditions.

    I am currently building it in c# using c++ as much as possible. I will either port to c++ once I have it working in c# or i will create a server in unity and export it with il2cpp. I think as long as I keep it as close to c++ as possible the build as il2cpp should give some performance gains over just c# alone. Also I'm not as well versed in threading, but intend for it to be heavily reliant on user specified threading. I am thinking the application will run from a configuration file.

    If anyone else here has suggestions or scripts they would like to contribute... :) :)

    Will send them to you when I am done, but may be several weeks, although I think I figured out some major hurdles last night.
     
  18. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    i dont think so, since i believe it uses particle system.. (although havent tested whats the maximum count),
    main benefit is just that you can animate and create effects easily.

    yes the las converter user las library, which could be avoided if create your own laz parser, but that could be lots of work if want to support all kind of las and LAZ files.. (and its opensource plugin with good license so it shouldnt be a problem)


    also tested meshlab re-meshing from commandline, seems simple, but requires some meshlab supported input format (like .ply, so not yet sure whats the benefit if the process is: original cloud or my binary format > ply > meshlabserver background processing > dae or other mesh format > unity)
     
  19. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    I figured I would integrate the las/laz converter for specifically only those two because you are right, it is a lot of work. Las/Laz files are definitely the best it seems for storage. I did some comparisons and found that the laz beats most storage methods.

    Part of my tiling system includes a compression method for the vector3s. Currently there is a loss of precision sub mm, but I will eventually fix this. In terms of storage though, it gets close to laz without being "7zipped". (If my memory serves, one of the final steps in laz is compression using zlib?).

    Also... have you considered PDAL? I think pdal would be a solid integration.
     
  20. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    yes, gets zipped basically (or thats my impression also).. the other issue is all the different las formats and versions itself.

    pdal: i think i've checked, but since i was working in c# i think i couldnt find working .net bindings..

    of course the ideal solution could be that importers are just separate readers for different formats,
    and then have either intermediate "raw" format (that gets then converted to my format),
    or parsers output directly to the v2/v3 formats..

    and of course later i need to add some compressed format support also, possibly draco first, since it has available libs..
     
  21. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189

    - https://pdal.io/apps/tile.html, https://pdal.io/stages/readers.html Pdal looks amazing. I keep jumping from c# to c++, even considering c... I wish there were more templates out there so I could drag and drop some functionality and be done with it. Point cloud handling sucks.

    Update on my compression/noncompression method. near laz sizes based on comparison of 38GB pts file, (1.1billion points). Laz = 6.3GB, my format = 6GB without bulding the .03mb(x2) control files per each tile. With compression, I think it will be much better than laz. Also considering no compression, could be a viable storage method. Maybe not considering sub mm precision is lost. Non lossless if a mmpoint cloud is scaled up, but would be a lot more tiles.

    Edit to add:

    my format is directly compatible with your v3 format, although there would have to be an importer for that too. (Vector File, control file, color data file)

    Would be cool possibly to have a zipped archive for all Point cloud tiles as well. (1 file, with high compression/ or even just basic fast compression for additional file size reduction, but easy handling instead of copying of loads of folders).

    oh and I was doing some research on color data. (which could save some space as well).

    Conversion of greyscale = (.3 *R) + (.59 *G) + (.11*B). Write the data as greyscale (1 char) and convert it to rgb using a reversal algorithm. Maybe could write greyscale char and G char to make that easier. would reduce a 38gb pointcloud from pts to basic raw files by a 1 full GB. ex laz would likely become 5.4 instead of 6.3. Using my conversion though would guarantee a 1gb reduction or more. (or add in an extra single file to help with the algorithm like a small colormap, and reference some value with a few bits of information).
     
    Last edited: Aug 18, 2020
  22. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Yeah thats interesting stuff, since it can easily be slightly lossy data..

    btw. i do have that old minimal las reader in the current PointCloud2BinaryConverter.cs,
    of course it might fail in some las versions and formats. (but should be possible to improve and its homemade so no license or other issues)
     
  23. Dan_G

    Dan_G

    Joined:
    Dec 4, 2017
    Posts:
    31
    Hi, i am really interested in your asset, it looks great! However i have a few simple questions:
    - As i read in one of your posts in this big thread, you can overwrite the color of specific points using the area selection. Can you please confirm if i understood it right?
    - Can you change the whole point cloud to greyscale (ie: black and white)?
    - I saw you support exporting to different formats. However I don´t see any option to export/save to PLY as a point cloud (not as a mesh). Is this supported?

    Thanks!
    D
     
  24. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    1) kind of yes, there is example scene included where you can move dummy transforms in Scene view to create selection area (convex hull area from those dummy transform positions). Its not really ready to use out of the box, but shows how to do it.. (and its bit slow)

    2) With a modified shader that would be easy, can take existing shader and modify it to draw grayscale instead of the color. (can contact me for help if needed).

    3) There is no outgoing exports really, it takes input cloud and converts to custom binary format (for faster reading).
    Or do you mean that you would like to work with the cloud in Unity, maybe remove parts, change colors or other modifications, then export results as ply or others? (it shouldnt be too difficult to do, since all point data is pretty directly in vector3 arrays or nativearrays. So you can access the point array from your script, and do your own export methods..)

    *Area Selection Example image:
    upload_2020-8-20_15-13-3.png
     
    Dan_G likes this.
  25. Dan_G

    Dan_G

    Joined:
    Dec 4, 2017
    Posts:
    31
    Hey mgear, thanks a lot for the quick reply.
    Yes, what i want to do is to open a point cloud PLY file, change eveything to greyscale, then paint some areas of the point cloud and save it back to PLY as a point cloud. Would this be possible with your tool? I think the shader solution to convert everything to greyscale would not work as i would not be able to paint red certain points...

    I am a bit new to this and i think i can get away with the point cloud saved as a PLY Mesh? Or are these two completely different things? I mean, saving the PLY as a Mesh or as a point cloud.... I made some tests with CloudCompare and seems it only exports as PLY Mesh and it works fine....
     
  26. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Certainly not possible out-of-the-box..
    You would need to create those features around the plugin:
    - change to grayscale (this could be done during conversion, or process after loading, or in custom shaders (maybe use alpha as a paint mask, so if point is not painted, alpha = 0, if painted, alpha = 1.. or if need more colors, alpha=0 is color#1, alpha1=color#2..))
    - painting points (this would need some better/faster area selection if you are painting in 3D with sphere area perhaps)
    - export (this should be easy part, same arrays to ply or other simple ascii formats)

    those are interesting features, so i could support through email/pm and perhaps implement in the plugin later myself also.

    Alternative option:
    - Save point cloud as .dae mesh files from meshlab, import those to unity, use some point cloud shader and/or point rendering, then you work with those regular unity meshes and add your features (like paint vertex colors), export.
     
  27. Rickmc3280

    Rickmc3280

    Joined:
    Jun 28, 2014
    Posts:
    189
    Mgear if you want to make a new shader real quick it is pretty easy to make grayscale from RGB. That formula I posted above is how you do it. Simply read the rgb values and multiply them with those numbers for a single (grayscale) value.

    You could also in theory just use the green channel 3 times for grayscale (whatever value it is, use it for R and B). (Green is the most common color apparently and represents a larger portion of what we see).
     
  28. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    yeah, i'll pm.
     
  29. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Last edited: Feb 6, 2021
  30. TokyoWarfareProject

    TokyoWarfareProject

    Joined:
    Jun 20, 2018
    Posts:
    814
    does URP/HDRP allow for particles / transparent objects to be rendered correctly on "top" of point clouds?
     
  31. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    looks like transparent objects still get drawn behind. (i'm guessing that would need the camera callback, to draw in correct pass)
     
    TokyoWarfareProject likes this.
  32. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Success!
    2019.4.0f1 + URP + CustomRenderPass + CommandBuffer + v2 shader
    (pointcloud with Particles and UI drawn in correct order - i'll try to add this in the next update)
    upload_2020-9-9_22-47-2.png
     
  33. TokyoWarfareProject

    TokyoWarfareProject

    Joined:
    Jun 20, 2018
    Posts:
    814
    booom!
     
  34. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    currently preparing the next asset store update, some highlights:
    - v3 initial point picking system
    - PCache export option in PointCloud2Binary converter
    - v3 bit faster loading options (gpuUploadSteps = 0)
    - v2 runtime exporter (example scene that modifies point cloud, and exports into (v2) .ucpc file)
    - Mac Metal shaders for v2 and v3 (so DX11 viewer can be used on desktops)

    and here's the standalone converter as open source, with initial GUI version also:
    https://github.com/unitycoder/PointCloudConverter

    cleaned it up a bit, so it should allow anyone to create custom importers (now only las/laz is supported).
    *GUI is still work-in-progress, but can be used if copy paste input output file names there.

    ** also for new users, heres some initial common terms doc:
    https://github.com/unitycoder/UnityPointCloudViewer/wiki/Terminology
     
    Rickmc3280 likes this.
  35. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
  36. scarscarin

    scarscarin

    Joined:
    Apr 5, 2019
    Posts:
    23
    Hi!

    Where exactly do I find the Pointcloud2Binary window? I'm trying to follow the instructions but can't find it anywhere

     
  37. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Hi,

    should be visible in the Window menu (unless console has some error messages)

    upload_2020-11-18_20-52-13.png
     
    scarscarin likes this.
  38. scarscarin

    scarscarin

    Joined:
    Apr 5, 2019
    Posts:
    23
    Thanks!

    Any clue why, when I convert pointcloud to binary, nothing happens?

     
  39. scarscarin

    scarscarin

    Joined:
    Apr 5, 2019
    Posts:
    23
    Sorry! I'll be more clear cause the screen recording didn't show it.

    When I press Convert to Binary it sends me to the Save as... window and when I save the file nothing happens. I save it in streaming assets but nothing shows up in the folder
     
  40. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    i'll pm.
     
  41. cvissuw

    cvissuw

    Joined:
    Nov 20, 2020
    Posts:
    1
    Hey, I just got the paid version of your app yesterday. I am having trouble uploading ply ASCII files as Unity meshes. In the video below, I am getting a null reference exception. I saw that this used to be a problem in your issues section, but that it should be resolved.

    I also tried with a smaller, non-colour ply ASCII file and Unity got hung up (not shown in this video).

     
    Last edited: Nov 20, 2020
  42. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
  43. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
  44. jaeggman

    jaeggman

    Joined:
    Nov 25, 2020
    Posts:
    4
    Hi there,


    I’m using your Point Cloud Tool and I am running into some problems when trying to capture single images along a camera path to make a video.

    I am doing landscape visualization and manipulation. Everything worked out well when I loaded my LiDAR ALS scans (.las) format into Unity (Version 2019.4.13f1) and I could get my images to make a video (1).

    Now I manipulated the scans by cutting parts away in CloudCompare and prepared an ObjectLibary so I could fill the wholes and design my desired landscape (2).

    But now when I try to Play the camera I get the error:
    Failed getting triangles. Submesh topology is lines or points.
    UnityEditor.Build.BuildPipelineInterfaces:OnSceneProcess(Scene, BuildReport)

    --> My Camera fails to do the image capturing process and some of the meshes are not displayed.
    Strange is, only some of the meshes are not displayed while others are (3). They are no different, I just duplicated them to manipulate the cornfields..

    Do you have an idea what is going wrong here?


    Cheers, Manuel
     

    Attached Files:

    • (1).png
      (1).png
      File size:
      187.9 KB
      Views:
      303
    • (2).png
      (2).png
      File size:
      384.7 KB
      Views:
      322
    • (3).png
      (3).png
      File size:
      352.7 KB
      Views:
      318
  45. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    can you test that [ ] static is disabled from those/all meshes?

    but i'll test with that version if i get same errors.
     
  46. jaeggman

    jaeggman

    Joined:
    Nov 25, 2020
    Posts:
    4
    Sir, thank you for saving my project.

    A million thanks
     
  47. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    quick test, seems that DX12 can be slightly faster in some cases.. (at least based on that fps on the left)

    upload_2020-12-2_15-49-51.png

    upload_2020-12-2_15-49-46.png
     
  48. Semi_sus

    Semi_sus

    Joined:
    Dec 2, 2020
    Posts:
    3
    While playing EVE, I already know that I couldn't do anything without eve isk. I came to this for a long time because the game is multidimensional and with a pure heart I can recommend everyone to invest in EVE isk first. Buy EVE isk to break the system later! EVE isk is the most important currency, and it is known that how a currency is important. My friend playing in EVE did not listen to my advice and did not buy eve isk, so after the first match that he did, you can guess that he said that without buy eve isk you can not. So if you got hooked on EVE like me, you have to remember to buy Eve isk.

    https://odealo.com/games/eve-online/isk
     
    Last edited: Feb 21, 2021
  49. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436
    Your steps would be roughly something like:
    - Setup project VR project in Unity (several ways to do it, personally i'd use steamvr with older unity like 2018.4, then you can easily play with their example scenes to get going)
    - Convert las files with this external las/laz converter (into my viewer format) https://github.com/unitycoder/UnityPointCloudViewer/wiki/Commandline-Tools
    - import my plugin to your unity project, copy those converted files into StreamingAssets/ folder
    - play with my example scenes, to load your file or files
    - copy my viewer into steamvr example scene, or copy stuff from steamvr example scene to mine, so that you have vr player there ready to use
    - add colliders for walk areas (cannot teleport in the point clouds, unless create custom scrips to use point picking as teleporting to point)
    - publish
    - profit!

    I think its doable.. play with the example scenes initially to get going with vr.
    can ask help here for issues with my plugin, or in unity forums and discord(s) for general vr and unity help.
    and don't use very latest unity versions or betas/alphas, also dont use URP or HDRP pipelines (my plugin doesnt support them).

    For quick start, you could also pick Oculus Quest 1 or 2, and use that with the included link cable (works with unity VR/SteamVR).. so you don't need to setup HTC vive lighthouses in the room..

    *also note, current asset store discount sale will end in 4th dec i guess.
     
  50. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,436