├── Extras ├── Scripts │ └── RuntimeLASConvert.cs └── Shaders │ └── UI-Default-With-Occlusion-Pass.shader ├── README.md └── ReleaseNotes └── release-notes.txt /Extras/Scripts/RuntimeLASConvert.cs: -------------------------------------------------------------------------------- 1 | // example script to convert LAS/LAZ file at runtime and then read it in regular viewer (as .ucpc format) 2 | 3 | using System.Diagnostics; 4 | using System.IO; 5 | using unitycodercom_PointCloudBinaryViewer; 6 | using UnityEngine; 7 | using Debug = UnityEngine.Debug; 8 | 9 | namespace unitycoder_examples 10 | { 11 | public class RuntimeLASConvert : MonoBehaviour 12 | { 13 | public PointCloudViewerDX11 binaryViewerDX11; 14 | 15 | public string lasFile = "runtime.las"; 16 | 17 | // inside streaming assets 18 | string commandlinePath = "PointCloudConverter173b/PointCloudConverter.exe"; 19 | 20 | bool isConverting = false; 21 | 22 | void Start() 23 | { 24 | isConverting = true; 25 | 26 | var sourceFile = lasFile; 27 | 28 | // check if full path or relative to streaming assets 29 | if (Path.IsPathRooted(sourceFile) == false) 30 | { 31 | sourceFile = Path.Combine(Application.streamingAssetsPath, sourceFile); 32 | } 33 | 34 | if (File.Exists(sourceFile)) 35 | { 36 | Debug.Log("Converting file: " + sourceFile); 37 | } 38 | else 39 | { 40 | Debug.LogError("Input file missing: " + sourceFile); 41 | return; 42 | } 43 | 44 | var outputPath = Path.GetDirectoryName(sourceFile); 45 | outputPath = Path.Combine(outputPath, "runtime.ucpc"); 46 | 47 | 48 | // start commandline tool with params https://github.com/unitycoder/UnityPointCloudViewer/wiki/Commandline-Tools 49 | var exePath = Path.Combine(Application.streamingAssetsPath, commandlinePath); 50 | ProcessStartInfo startInfo = new ProcessStartInfo(exePath); 51 | startInfo.Arguments = "-input=" + sourceFile + " -flip=true -output=" + outputPath; 52 | startInfo.UseShellExecute = true; 53 | startInfo.WindowStyle = ProcessWindowStyle.Hidden; 54 | //startInfo.WindowStyle = ProcessWindowStyle.Minimized; 55 | var process = Process.Start(startInfo); 56 | process.WaitForExit(); 57 | 58 | //Debug.Log(startInfo.Arguments); 59 | 60 | isConverting = false; 61 | 62 | // check if output exists 63 | if (File.Exists(outputPath)) 64 | { 65 | Debug.Log("Reading output file: " + outputPath); 66 | binaryViewerDX11.CallReadPointCloudThreaded(outputPath); 67 | } 68 | else 69 | { 70 | Debug.LogError("File not found: " + outputPath); 71 | } 72 | 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Extras/Shaders/UI-Default-With-Occlusion-Pass.shader: -------------------------------------------------------------------------------- 1 | // used for world space UI elements, to hide point cloud points behind it 2 | // https://github.com/unitycoder/UnityPointCloudViewer 3 | 4 | Shader "UI/Default-With-Occlusion-Pass" 5 | { 6 | Properties 7 | { 8 | [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 9 | _Color ("Tint", Color) = (1,1,1,1) 10 | 11 | _StencilComp ("Stencil Comparison", Float) = 8 12 | _Stencil ("Stencil ID", Float) = 0 13 | _StencilOp ("Stencil Operation", Float) = 0 14 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 15 | _StencilReadMask ("Stencil Read Mask", Float) = 255 16 | 17 | _ColorMask ("Color Mask", Float) = 15 18 | 19 | [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 20 | } 21 | 22 | SubShader 23 | { 24 | Pass 25 | { 26 | Tags { "Queue"="Geometry-1" } 27 | 28 | ZWrite On 29 | ZTest LEqual 30 | //ColorMask 0 31 | 32 | CGPROGRAM 33 | #pragma vertex vert 34 | #pragma fragment frag 35 | #pragma target 2.0 36 | 37 | #include "UnityCG.cginc" 38 | #include "UnityUI.cginc" 39 | 40 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 41 | 42 | struct appdata_t 43 | { 44 | float4 vertex : POSITION; 45 | float4 color : COLOR; 46 | float2 texcoord : TEXCOORD0; 47 | UNITY_VERTEX_INPUT_INSTANCE_ID 48 | }; 49 | 50 | struct v2f 51 | { 52 | float4 vertex : SV_POSITION; 53 | fixed4 color : COLOR; 54 | float2 texcoord : TEXCOORD0; 55 | float4 worldPosition : TEXCOORD1; 56 | UNITY_VERTEX_OUTPUT_STEREO 57 | }; 58 | 59 | fixed4 _Color; 60 | fixed4 _TextureSampleAdd; 61 | float4 _ClipRect; 62 | 63 | v2f vert(appdata_t IN) 64 | { 65 | v2f OUT; 66 | UNITY_SETUP_INSTANCE_ID(IN); 67 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); 68 | OUT.worldPosition = IN.vertex; 69 | OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); 70 | 71 | OUT.texcoord = IN.texcoord; 72 | 73 | OUT.color = IN.color;// * _Color; 74 | return OUT; 75 | } 76 | 77 | sampler2D _MainTex; 78 | 79 | fixed4 frag(v2f IN) : SV_Target 80 | { 81 | half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; 82 | 83 | color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); 84 | 85 | //#ifdef UNITY_UI_ALPHACLIP 86 | clip (color.a - 0.001); 87 | //#endif 88 | 89 | return color; 90 | } 91 | ENDCG 92 | } 93 | 94 | 95 | // draw actual text 96 | Pass 97 | { 98 | Tags 99 | { 100 | "Queue"="Transparent" 101 | "IgnoreProjector"="True" 102 | "RenderType"="Transparent" 103 | "PreviewType"="Plane" 104 | "CanUseSpriteAtlas"="True" 105 | } 106 | 107 | Stencil 108 | { 109 | Ref [_Stencil] 110 | Comp [_StencilComp] 111 | Pass [_StencilOp] 112 | ReadMask [_StencilReadMask] 113 | WriteMask [_StencilWriteMask] 114 | } 115 | 116 | Cull Off 117 | Lighting Off 118 | ZWrite Off 119 | ZTest [unity_GUIZTestMode] 120 | Blend SrcAlpha OneMinusSrcAlpha 121 | ColorMask [_ColorMask] 122 | 123 | 124 | Name "Default" 125 | CGPROGRAM 126 | #pragma vertex vert 127 | #pragma fragment frag 128 | #pragma target 2.0 129 | 130 | #include "UnityCG.cginc" 131 | #include "UnityUI.cginc" 132 | 133 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 134 | 135 | struct appdata_t 136 | { 137 | float4 vertex : POSITION; 138 | float4 color : COLOR; 139 | float2 texcoord : TEXCOORD0; 140 | UNITY_VERTEX_INPUT_INSTANCE_ID 141 | }; 142 | 143 | struct v2f 144 | { 145 | float4 vertex : SV_POSITION; 146 | fixed4 color : COLOR; 147 | float2 texcoord : TEXCOORD0; 148 | float4 worldPosition : TEXCOORD1; 149 | UNITY_VERTEX_OUTPUT_STEREO 150 | }; 151 | 152 | fixed4 _Color; 153 | fixed4 _TextureSampleAdd; 154 | float4 _ClipRect; 155 | 156 | v2f vert(appdata_t IN) 157 | { 158 | v2f OUT; 159 | UNITY_SETUP_INSTANCE_ID(IN); 160 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); 161 | OUT.worldPosition = IN.vertex; 162 | OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); 163 | 164 | OUT.texcoord = IN.texcoord; 165 | 166 | OUT.color = IN.color * _Color; 167 | return OUT; 168 | } 169 | 170 | sampler2D _MainTex; 171 | 172 | fixed4 frag(v2f IN) : SV_Target 173 | { 174 | half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; 175 | 176 | color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); 177 | 178 | #ifdef UNITY_UI_ALPHACLIP 179 | clip (color.a - 0.001); 180 | #endif 181 | 182 | return color; 183 | } 184 | ENDCG 185 | } 186 | } 187 | } 188 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unity PointCloud-Viewer 2 | Point Cloud Viewer and Tools for Unity 3 | 4 | Available for **purchase in the Unity Asset Store**:
5 | **New version:** https://assetstore.unity.com/packages/tools/utilities/point-cloud-viewer-and-tools-3-310385?aid=1101lGti (This is also paid upgrade to old version, with 120 days grace period)
6 | (ORIGINAL VERSION, will be deprecated) https://assetstore.unity.com/packages/tools/utilities/point-cloud-viewer-and-tools-16019?aid=1101lGti 7 | 8 | This is public repository for Unity3D Point Cloud- Plugin 9 | For posting bugs / issues, feature requests, comments etc. 10 | 11 | Feel free to post them at https://github.com/unitycoder/UnityPointCloudViewer/issues 12 | 13 | ### Unity Forums 14 | 15 | https://discussions.unity.com/t/released-point-cloud-viewer-tools/534863 16 | 17 | ### Documentation 18 | 19 | Will be added to the wiki https://github.com/unitycoder/UnityPointCloudViewer/wiki 20 | 21 | ### Website 22 | 23 | http://unitycoder.com/blog/2014/03/19/asset-store-point-cloud-viewer-unity/ 24 | 25 | ### Commandline conversion tools 26 | 27 | https://github.com/unitycoder/UnityPointCloudViewer/wiki/Commandline-Tools 28 | 29 | ### Screenshots 30 | 31 | ![upload_2019-11-8_10-30-25](https://user-images.githubusercontent.com/5438317/68996189-7ee54b80-089f-11ea-9135-4ebd58e78c74.png) 32 | Point cloud with 432 million loaded points (optimized v3 format view) *[Cloud file from here](http://pointcloudwarehouse.com/details.html?pointCloudId=565378543598d06a64219aa6) 33 | 34 | ### Videos 35 | Lidar dataset with ~10billion points (youtube)
36 | [![](http://img.youtube.com/vi/EyM5ttLaJkQ/0.jpg)](http://www.youtube.com/watch?v=EyM5ttLaJkQ "") 37 | -------------------------------------------------------------------------------- /ReleaseNotes/release-notes.txt: -------------------------------------------------------------------------------- 1 | *** PointCloud Viewer & Tools for Unity *** 2 | 3 | v3.01 4 | 5 | - Note: Upgraded project to Unity 2022.3.26f1 6 | 7 | - Feature: V3 Viewer, Add packed format type "5". Has XYZ+RGB+Intensity+Classification values in single file (and add shaders for these) 8 | 9 | - Added: Sample scene for V3 override with additional features (like toggle color mode: RGB/Intensity/Classification/Gradient) *but no sample file, you need to create your own with https://github.com/unitycoder/PointCloudConverter 10 | 11 | - Fixed: Point picking for packed data 12 | 13 | - Bonus: You get 50% discount on this external tool https://las2gltf.kelobyte.fi/ (Converts PLY/LAS/LAZ files into GLB/GLTF format, so you can view GLTF points clouds without point cloud plugin in Unity!) 14 | 15 | Latest updates/issues: 16 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 17 | 18 | *-----------------------------------------------------------------------* 19 | 20 | 21 | *** PointCloud Viewer & Tools for Unity *** 22 | 23 | v3.00 24 | 25 | - Note: This is paid upgrade! 26 | 27 | - Feature: URP Support with Custom Renderer Feature (CustomPass with RenderGraph support for Unity6000+) 28 | - Feature: HDRP Support with Custom Renderer Feature 29 | 30 | - Added: V3 Viewer, useURPCustomPass bool to BinaryViewerDX11.cs (to enable custom pass rendering in URP) 31 | - Added: V3 Viewer, useHDRPCustomRenderer bool to BinaryViewerDX11.cs (to enable custom renderer rendering in HDRP) 32 | - Added: Downloadable sample file for V3 mesh tiles rendering scene (packed format) https://files.fm/f/xv784aw9xb 33 | - Added: Menu item, "Window/PointCloudTools/Convert Sample Materials to URP" to convert sample scene standard materials to URP materials (for those boxes/spheres used in sample scenes, or use unitys own material converter) 34 | - Added: Menu item, "Window/PointCloudTools/Convert Sample Materials to HDRP" to convert sample scene standard materials to HDRP materials (for those boxes/spheres used in sample scenes, or use unitys own material converter) 35 | 36 | - Fixed: Build error (editor script was not in Editor folder) 37 | 38 | - Changed: PointCloudViewer folders now contain AssemblyDefinitions (it is only way to detect URP and HDRP in CustomPass scripts) 39 | - Changed: All namespaces have been renamed! (unity doesnt allow "unitylibrary.." or "unitycoder.." in namespaces) 40 | 41 | - Bonus: You get 50% discount on this external tool https://las2gltf.kelobyte.fi/ (Converts PLY/LAS/LAZ files into GLB/GLTF format, so you can view GLTF points clouds without point cloud plugin in Unity!) 42 | 43 | Latest updates/issues: 44 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 45 | 46 | *-----------------------------------------------------------------------* 47 | 48 | *** PointCloud Viewer & Tools for Unity *** 49 | 50 | v2.95 51 | 52 | - Note: Upgraded project to Unity 2021.3.19f1 53 | 54 | - Feature: V3 Viewer, Add packed format type "4". Has XYZ+RGB+Intensity values in single file 55 | - Feature: V3 Viewer, ToggleColorMode(RGB/Intensity). Loads separate .pct.rgb file or .pct.int file 56 | - Feature: V3 Viewer, OnTileAppearEvent (Can be used to cull tile based on your own logic, before it appears) 57 | - Feature: V3 Viewer, GPSTimeSample.cs script (if you work with tile capture times & overlapped tiles. For example: you might want to hide overlapping tiles that are older than the original tile) 58 | - Feature: V3 Viewer, Add support for .pcroot header comment rows (starting with # in the file) 59 | 60 | - Added: V3 Viewer, Special RGB+Intensity+XYZ packed format & shaders (UnityCoder_PointCloud_DX11_ColorSizeV3-Int-Packed.mat) *Requires converting data with CommandLine LAS converter into that format 61 | - Added: V3 Viewer, Uber Packed VR SinglePass shader (UnityCoder_PointCloud_DX11_Uber_VR-SinglePass-Packed.mat) 62 | - Added: V3 Viewer, ProfileLoaderStatus(), to display time that loaderqueue took to load tiles (don't move while its loading to get same results. Good for checking if adjusting ThreadCount helps) 63 | - Added: RuntimeViewer, XYZRGB format, handle parsing invalid values (skip them) 64 | - Added: FeaturesV3.cs for toggling between Intensity/RGB colors mode (for v3 rgb+int packed format only) 65 | - Added: V3 viewer, Mesh rendering with Colors (Only for packed colors and DX11 shader like MeshPointsDX11QuadCircle-Packed.mat) 66 | 67 | - Fixed: V3 Viewer, "Cannot divide by zero exception" *Thanks to: https://github.com/unitycoder/UnityPointCloudViewer/issues/149 68 | - Fixed: GetPointsInsideBox() to work with Native Array (and different combinations of packed data) 69 | 70 | - Improved: GetPointsInsideBox() supports V3 viewer now with packed data 71 | 72 | - Changed: Adjusted GetPointsInsideBox.cs inspector fields/order/names 73 | - Changed: DynamicResolution, allow holding keys down in the example 74 | 75 | *-----------------------------------------------------------------------* 76 | 77 | *** PointCloud Viewer & Tools for Unity *** 78 | 79 | v2.90 80 | 81 | - Added: WebGL-MeshPointPicking example scene, select points with mouse. (Intented for Mesh point picking webgl, but works in desktop too) 82 | - Added: WebGL-MeshSelectWithBox example scene, select points with BoxCollider (Intented for Mesh point picking webgl, but works in desktop too) 83 | - Added: V3 viewer, Mesh rendering option (but no colors yet, so its not useful) 84 | - Added: V3 viewer, Custom offset option for points 85 | - Added: New material/shader: PointCloud_DX11_ColorSizeV2 (Height Gradient) 86 | 87 | - Fixed: "UnityCoder_PointCloud_DX11_Uber_VR-SinglePass" material and Shader (works with VR singlepass) 88 | - Fixed: Crash if used native arrays with v3 tiles and tile point limit https://github.com/unitycoder/UnityPointCloudViewer/issues/143 89 | - Fixed: V3 Statistics script, total point count 90 | 91 | Latest updates/issues: 92 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 93 | 94 | *-----------------------------------------------------------------------* 95 | 96 | *** PointCloud Viewer & Tools for Unity *** 97 | 98 | v2.80 99 | 100 | - Note: Upgraded to Unity 2019.4 101 | 102 | - Added: V3 viewer, Loader thread count setting (2-16) can help loading small tiled clouds faster https://github.com/unitycoder/UnityPointCloudViewer/issues/109#issuecomment-1752012364 103 | - Added: V3 viewer, Clamp max tile point count for all tiles or nearby vs further away (helps if you data has few dense spots and you dont want to filter whole cloud with external tools) https://github.com/unitycoder/UnityPointCloudViewer/issues/107 104 | - Added: DrawWireSphere helper method into PointCloudTools.cs 105 | - Added: Viewerstats script. Displays visible tile & point count and total point count (attach script to gameobject, assign references to viewer and UI text) 106 | - Added: Visualize culling spheres to ViewerStats (press "N") *Requires Gizmos enabled in gameview **Works only in editor, for debugging 107 | - Added: Visualize tile bounds to ViewerStats (press "B") *Requires Gizmos enabled in gameview **Works only in editor, for debugging 108 | - Added: Public GetVisibleTileCount, GetCullingSpheres, GetVisiblePointCount, GetAllTileBounds, InitIsReady, GetLoadQueueCount, RunGetPointsInsideBoxThread, GetPointsInsideBox methods into v3 viewer 109 | - Added: External licenses info https://github.com/unitycoder/UnityPointCloudViewer/wiki/Licenses 110 | - Added: Brekel new public methods & info https://github.com/unitycoder/UnityPointCloudViewer/wiki/View-Brekel-Point-Cloud-Pro-.bin-files#api-public-methods 111 | - Added: Initial format comparison table https://github.com/unitycoder/UnityPointCloudViewer/wiki/Compare-Formats *still work in progress 112 | 113 | - Fixed: RandomCloudGenerator can now generate different combinations of clouds at the same time (previously couldnt create v2 and pts etc.) 114 | - Fixed: Added missing namespaces to some scripts 115 | 116 | - Changed: Update public methods info: https://github.com/unitycoder/UnityPointCloudViewer/wiki/V3-Tiles-Format#api-public-methods 117 | 118 | Latest updates/issues: 119 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 120 | 121 | *-----------------------------------------------------------------------* 122 | 123 | v2.70 124 | 125 | - Feature: Binary converter, allow external file selection (so that you dont need to copy point cloud files inside Assets/ folder) 126 | - Feature: MeshConverter, Keep every Nth point. Can use this to further reduce point count on import. 127 | 128 | - Improved: V3 viewer, if you accidentally enter filename with empty spaces at the end, error message for invalid file is now printed with quotes, so can notice it easier "asdf.pcroot" > "asdf.pcroot " 129 | - CallReadPointCloudThreaded() can be now called from another thread or event (removed transform and gameobject references) 130 | 131 | - Added: PointCloudViewerDX11, added toggle: [x] Apply Translation Matrix, then point cloud follows Transform: pos, rot, scale (V1/V2 only) 132 | - Added: BrekelPlayer, added toggle: [x] Apply Translation Matrix, then point cloud follows Transform: pos, rot, scale *Note requires using "PointCloud_DX11_ColorSizeV2-TranslationMatrix.mat" material 133 | - Added: New material and shader "PointCloud_DX11_ColorSizeV2-TranslationMatrix" (required if use [x] Apply Translation Matrix feature) 134 | - Added: Example scene and script for Runtime LAS/LAZ conversion "PointCloud-runtime-laz-commandline-workaround.unity" (windows only) 135 | 136 | - Fixed: V3 viewer Duplicate "#MainThreadHelper" gameobject added into scene 137 | - Fixed: Comma vs Dot issue in V3 format (binary converter) https://github.com/unitycoder/UnityPointCloudViewer/issues/69 138 | - Fixed: Parsing PTS file with Normals at the end (XYZRGBNxNyNz) 139 | - Fixed: Parsing PTS file with Intensity and Normals (XYZIRGBNxNyNz) 140 | - Fixed: V2 viewer: Now doesnt lock file for reading (if other reader needs to read same binary file) 141 | 142 | - Changed: Add namespace to GLDebug 143 | 144 | - Note: HDRP support requires small modifications: https://github.com/unitycoder/UnityPointCloudViewer/issues/105 145 | - Note: URP support requires small modifications ** ONLY if you have issues with points getting "stuck" at UI position **: https://github.com/unitycoder/UnityPointCloudViewer/issues/126 146 | 147 | Latest updates/issues: 148 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 149 | 150 | *-----------------------------------------------------------------------* 151 | 152 | *** PointCloud Viewer & Tools for Unity *** 153 | 154 | v2.60 155 | 156 | - Feature: Brekel animated cloud file streaming (stream data from disk, good for large files. Requires Brekel PointCloud V3 (beta or newer) with new unitycoder v3 format export) https://brekel.com/brekel-pointcloud-v3/ 157 | 158 | - Added: MeshPointsDX11QuadSizeByDistance.mat (scales point sizes by distance and min-max range, can be used in DX11 mode for meshes, to make far away points bigger) 159 | 160 | - Improved: V1/V2 Point picking is now more accurate (and fixed slicing issues with some clouds) 161 | - Improved: Brekel animated cloud (.bin) parsing is now ~2-3x faster (on top of the previous 2x improvement) 162 | - Improved: Brekel animated cloud now uses less memory (no more padding or extra array copy/clear) 163 | 164 | - Fixed: MeshConverter: Don't add extra vertex padding to brekel mesh frames (smaller files, less verts) 165 | - Fixed: Build namespace errors (due to asmdef files, now removed) https://github.com/unitycoder/UnityPointCloudViewer/issues/104 166 | - Fixed: PointCloud-ModifyAndSave-V2 example, saved UCPC file was missing bounds data from header 167 | - Fixed: UCPC file saving failed to correct path, if output path had forward clashes 168 | 169 | - Changed: BinaryConverter, allow gridsize smaller than 1 (0.01) for really dense clouds (but can cause other issues, not really tested) https://github.com/unitycoder/UnityPointCloudViewer/issues/101 170 | - Changed: V3 viewer, hide mesh rendering toggle (since its not ready to be used yet) 171 | 172 | Latest updates/issues: 173 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 174 | 175 | *-----------------------------------------------------------------------* 176 | 177 | *** PointCloud Viewer & Tools for Unity *** 178 | 179 | v2.50 180 | 181 | - Improved: Brekel animated cloud (.bin) parsing is now ~2x faster 182 | 183 | - Added: New example scene (Sample-AnimatedPointCloudPlayer.scene) and small animated point cloud sample file 184 | - Added: Metal Uber shader (except circle shape) 185 | 186 | - Fixed: Brekel binary loader: files larger than 2gb failed parsing header correctly 187 | - Fixed: MeshConverter: Unity 2019.x and later, possible null ref errors on SaveAsPrefabAsset() https://github.com/unitycoder/UnityPointCloudViewer/issues/94 188 | - Fixed: NativeArray.GetSubArray not available in 2019.1 - 2019.2 https://github.com/unitycoder/UnityPointCloudViewer/issues/88 189 | - Fixed: V3 point picking: doesnt pick points if camera is inside node https://github.com/unitycoder/UnityPointCloudViewer/issues/97 190 | - Fixed: PointCloud-ModifyAndSave-V2.scene, points disappeared due to commandline window popping up during save (commandprompt window is now hidden, its used to merge binary files) 191 | 192 | - Changed: [x] Allow Unsafe Code is now required! (from Player Settings) 193 | - Changed: Brekel animated point cloud player is now separate script: BrekelPlayer.cs 194 | - Changed: Removed Animated Point cloud code and features from PointCloudViewerDX11.cs 195 | - Changed: PointCloudViewerDX11 arranged inspector values and titles 196 | 197 | Latest updates/issues: 198 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 199 | 200 | *-----------------------------------------------------------------------* 201 | 202 | *** PointCloud Viewer & Tools for Unity *** 203 | 204 | v2.40 205 | 206 | - Info: URP/HDRP can be used, since they automatically call OnRenderObject() *Note: CommandBuffer-rendering option is not supported yet 207 | - Info: Standalone PointCloud converter is now open source: https://github.com/unitycoder/PointCloudConverter (commandline and initial GUI) 208 | - Info: For WebGL builds, use mesh converter with PointCloudAndroidSizeColorMesh material (see scene_mobile_heavy01.scene) 209 | 210 | - Feature: (V3) Initial point picking (measuring) system (see example scene: PointCloud-Measuring-V3.scene) 211 | - Feature: Added PCache Export option in PointCloud2Binary converter (pcache files can be used with unity VFX) 212 | - Feature: (V3) Allow 0 for gpuUploadSteps (skips waiting for frame in tile initialization to load more tiles faster, can cause lags in large tiles) 213 | - Feature: Added .ucpc (v2) runtime exporter and example scene (PointCloud-ModfiyAndSave-V2.scene) 214 | 215 | - Added: Show human friendly total point counts in V3 viewer (1000 = 1k, 1000000 = 1m, ..) 216 | - Added: V2 and V3 Lite Shaders (draws Triangles instead of Quads) 217 | - Added: PointCloudViewerDX11 option to enable CommandBuffer rendering into scene camera (otherwise cloud is not visible in scene view) 218 | - Added: Allow converting .PTS intensity color files to V3 format 219 | - Added: Mac Metal material and shaders for v2 and v3 (at Materials/Metal/) 220 | 221 | - Fixed: PointCloudManager check for viewer null references in Awake() 222 | - Fixed: MeshConverter Catia .ASC parsing issue 223 | - Fixed: Comma vs Dot issues in converters (due to Unity 2019.x changed the system) https://github.com/unitycoder/UnityPointCloudViewer/issues/69 224 | - Fixed: 2018.4 and later: duplicated prefab issue https://github.com/unitycoder/UnityPointCloudViewer/issues/72 225 | - Fixed: Handle .PLY with Density values (skip those rows) https://github.com/unitycoder/UnityPointCloudViewer/issues/76 226 | - Fixed: Removed WebGL errors https://github.com/unitycoder/UnityPointCloudViewer/issues/83 227 | - Fixed: Disable lighmap static flags for converted meshes 2019.x (to avoid console warning spam) 228 | 229 | - Changed: Some materials and shaders cleanup and rearranged folders 230 | 231 | Latest updates/issues: 232 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 233 | 234 | *-----------------------------------------------------------------------* 235 | 236 | *** PointCloud Viewer & Tools for Unity *** 237 | 238 | v2.30 239 | 240 | - Feature: (V3) Load Tiles On Demand (previously all tiles were loaded into memory, now it only loads them when they become visible, and with needed amount of points, then reloaded if need more points) 241 | - Feature: (V3) Distance Priority Loader (Load tiles near player first, previously it started loading tiles based on the distance to 0,0,0) 242 | - Feature: (V3) Adjustable GPU Upload Rate (Reduce or eliminate spikes during loading and initialization) 243 | - Feature: (V3) Added public GetVisibleTileCount() and GetVisiblePointCount() methods to V3 viewer (see example script ViewerStats.cs) 244 | - Feature: (V3) Added global tile resolution (visible_points*this_value=new amount) *Note: Camera needs to be rotated around to refresh tiles 245 | - Feature: (V3) Added global point size multiplier (original_pointsize*this_value=new size) *Note: Camera needs to be rotated around to refresh tiles, Requires separate shader which has SizeMultiplier property (PointCloudColorSizeDX11v2b.mat) 246 | - Feature: (V3) Added optional ForceGC checkbox (calls GC.Collect() after file operations, to release some temporary arrays, helps more when using NativeArrays in 2019.x) 247 | - Feature: (V3) Added support for Packed Colors (Use CommandLine LAS converter to generated packed color data) 248 | - Feature: (V3) Added support for NativeArrays (Allows disposing memory for far away tiles. Requires Unity 2019.1 or later) 249 | - Feature: (v1, V2) Added Area selection example (select points inside hull) 250 | 251 | - Added: PointCloudColorSizeDX11v3-packed.mat and shader (to be used with v3 packed color data) 252 | - Added: Link to github wiki documentation page 253 | - Added: Random cloud generator: add .PTS format, cleanup UI 254 | 255 | - Changed: Moved some wip/experimental DX11 shaders under PointCloudTools\Shaders\DX11\Extras\ 256 | - Changed: Moved some wip/experimental Mesh shaders under PointCloudTools\Shaders\Mesh\Extras\ 257 | 258 | - Fixed: Obsolete/Deprecated warnings in 2018.x/2019.x https://github.com/unitycoder/UnityPointCloudViewer/issues/67 259 | - Fixed: (V3) Tiles not visible until rotate camera https://github.com/unitycoder/UnityPointCloudViewer/issues/66 260 | - Fixed: Mesh Converter not saving meshes if used [x] split to grid https://github.com/unitycoder/UnityPointCloudViewer/issues/70 261 | 262 | Latest updates/issues: 263 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 264 | 265 | *-----------------------------------------------------------------------* 266 | 267 | 268 | *** PointCloud Viewer & Tools for Unity *** 269 | 270 | v2.20 271 | 272 | - Feature: Add new tiles binary format (v3) (allows displaying huge point clouds using point lod system *Consider this as a "beta" feature) 273 | - Feature: PointCloud2Binary Converter: Add option to limit total imported point count (ideal for quickly testing import settings) 274 | - Feature: PointCloud2Binary Converter: Support large input files (tested 16gb ply file, with 432million points) 275 | - Feature: PointCloud2Mesh Converter: Meshes are saved as full gameobjects (instead of mesh assets only) when [x] Add meshes to current scene is enabled. Note: Not supported for LODS yet 276 | 277 | - Improved: PointCloud2Binary Converter: Add Cancel button to most of the conversion progressbars 278 | - Improved: Add more info into converter progress bars (pointcounts) 279 | - Improved: Add more validation and error checking here & there (will print to console) 280 | - Improved: Add cancel button to random cloud generator progress bars 281 | 282 | - Added: Example scene for v3 viewer: PointCloudTools/Demos/PointCloudViewer/Scenes/PointCloud-TilesViewerV3.scene 283 | 284 | - Changed: Upgraded Project to Unity 2017.4.24f1 (probably will stay in this version for a while) 285 | 286 | - Fixed: Various PLY importer issues (cloudcompare headers) 287 | - Fixed: Single .pts/.pcd cloud with less than 1000 points was skipped on import 288 | - Fixed: PointCloudConverter: Calculate correct bounds for v2 pointcloud 289 | - Fixed: Using intensity colors now works with V2 format 290 | - Fixed: Reading CGO data without RGB values into V2 format 291 | - Fixed: Added conditional check for reprecated rendering in 2019_1 and later 292 | - Fixed: Nullref error on random point cloud save cancel 293 | - Fixed: Skip Geomagic ASC file header comment rows 294 | - Fixed: v2 cancel loading if no RGB data in file 295 | 296 | - Note: When converting large clouds into v3 format, its better to use commandline LAS/LAZ converter (432m points, editor=~50mins, cmdline=~10mins) https://github.com/unitycoder/UnityPointCloudViewer/wiki/Commandline-Tools 297 | 298 | Latest updates/issues: 299 | - https://github.com/unitycoder/UnityPointCloudViewer/issues 300 | 301 | *-----------------------------------------------------------------------* 302 | 303 | v2.10 304 | 305 | - Feature: Add Multithreading to runtimeviewer 306 | - Feature: Add Binary caching to binaryviewer (can save changes done during read data, like randomize) 307 | - Feature: New binary format with faster loading ("v2", using file extension *.ucpc) 308 | - Feature: Add split to grid option to PointCloud2Mesh converter (splits cloud into grid slices) 309 | - Feature: Add randomize pointcloud to PointCloud2Binary converter 310 | 311 | - Improved: Using new binary format (v2), loading 50 million points: 400ms (old version: 3200ms) 312 | - Improved: PointCloud2Mesh reading is about 2 times faster now 313 | - Improved: More info in the progress bars (point count) 314 | - Improved: PointCloud2Binary, Faster .ply parsing 315 | 316 | - Changed: Removed ThreadPool related code 317 | - Changed: Project is using Unity 2017.1.5f1 318 | 319 | - Fixed: PointCloudViewer packed color bleeding 320 | 321 | - Notes: This is somewhat transition-version towards the new v2 format, so old format and the new format(V2) might not have all the same features yet. 322 | 323 | See latest updates/issues here: 324 | https://github.com/unitycoder/UnityPointCloudViewer/issues 325 | 326 | *-----------------------------------------------------------------------* 327 | 328 | v2.00 329 | 330 | - Feature: Support for CommandBuffers (to draw DX11 points and/or depthbuffer) 331 | - Feature: PointCloudDynamicResolution adjuster (set amount of visible points in DX11 viewer and point size) 332 | - Feature: 32bit mesh index buffer support for Unity 2017.3 or newer (create point meshes with more than 64k points) 333 | - Feature: Editor plugin now saves/loads converter preferences to editorprefs (PointCloud2Mesh and PointCloud2Binary) 334 | - Feature: Randomize Points option to BinaryViewer to evenly randomize points (use with PointCloudDynamicResolution adjuster) 335 | - Feature: Display points toggle (to toggle point rendering) 336 | - Feature: Render only to main camera toggle (to render only with MainCamera-tagged camera). Otherwise caused slowdown with multiple cameras 337 | - Feature: Middle Mouse Button Panning (with SimpleSmoothMouseLook) 338 | - Feature: Can pick/measure points between multiple DX11 viewers 339 | - Feature: Initial version of BoxIntersectsCloud() to allow checking collisions with point cloud 340 | - Feature: Pack Colors option in PointCloudViewerDX11 (optimizes point data for GPU) 341 | - Feature: Added initial mouse orbit in SimpleSmoothMouseLook (disabled by default) 342 | 343 | - Improved: Animated .bin file faster loading 344 | - Improved: Support for large (+2gb) animated point cloud .bin files (next limit is c# vector3 max array size) 345 | - Improved: Using packed colors with 50 million points, cpu main stats went down from 120ms to 74ms 346 | 347 | - Added: Helper methods to BinaryViewerDX11: GetTotalPointCount(), GetActivePointCount(), GetPointSize(), ToggleCloud(), SetPointSize(), AdjustVisiblePointsAmount(), 348 | - Added: PointCloudColorSizeFogDX11v2.material and shader that supports fog 349 | - Added: MeshPointsDX11TextureMask material (can use texture alpha as a mask for point shape) 350 | - Added: MeshPointsDX11QuadCircle material (draws circle instead of quad) 351 | - Added: MeshPointsDX11BoxDirectionalLight material (draws 3D box at point position, affected by directional light) 352 | - Added: MeshPointsDX11BoxDirectionalLight+Shadows+Fog material (draws 3D box at point position, affected by directional light + fog and supports shadows with point size) 353 | - Added: All DX11 and Mesh shaders now support GAMMA and LINEAR modes 354 | - Added: New example scene for taking measurements (BinaryViewerDX11-With-Measuring.scene) 355 | - Added: New example scene for placing prefabs on clicked points (PointCloud-PlaceMarkers.scene) 356 | 357 | - Changed: Renamed BinaryViewerDX11.cs into PointCloudViewerDX11.cs 358 | - Changed: Re-arranged folders (to make folder hierarchy more cleaner/flatter) 359 | - Changed: RuntimeViewer filepath can be full uri, or filename only (then StreamingAssets path is used instead) 360 | - Changed: Renamed "Window/PointCloudTools/ShowHeaderDataHelper" to "Window/PointCloudTools/View File Header" 361 | - Changed: Some variable names in PointCloud2Mesh and PointCloud2Binary 362 | - Changed: Manual offset now works as an final world space offset value, that is added to the XYZ value (after point XYZ value is scaled and flipped). Calculated as finalXYZ += manualOffset 363 | - Changed: You can now use both autoOffsetNearZero and manualOffset when converting data 364 | - Changed: Removed static variables from BinaryViewerDX11 and RuntimeViewerDX11, to easily allow multiple viewer in one scene 365 | - Changed: SimpleSmoothMouseLook now allows changing keys for movement 366 | 367 | - Fixed: Null ref errors, if tried to load animated cloud but loading failed 368 | - Fixed: CloudCompare saved .ply to my .bin conversion header parsing errors 369 | - Fixed: MeshPointsDX11QuadOffset shader transform issues https://github.com/unitycoder/UnityPointCloudViewer/issues/44 370 | - Fixed: Disable [x] Lightmap Static for point meshes (otherwise console error spam) 371 | - Fixed: Editor slowdown if viewer was selected https://github.com/unitycoder/UnityPointCloudViewer/issues/38 372 | - Fixed: Removed all unused variables from RuntimeViewer (and removed pragma disable warnings) 373 | - Fixed: CGO comma parsing issue https://github.com/unitycoder/UnityPointCloudViewer/issues/47 374 | 375 | - Removed: Completely removed old octree plugin and scripts related to it 376 | - Removed: Old brute force point picking 377 | - Removed: BaseFolder variable from BinaryViewerDX11 (just set your full path to filename instead) 378 | - Removed: void ShowMessage(string msg), used old GUIText. Now prints error to Debug.LogError() instead 379 | - Removed: SimpleCameraFly.cs (its now combined to SimpleSmoothMouseLook.cs) 380 | 381 | See latest updates/issues here: 382 | https://github.com/unitycoder/UnityPointCloudViewer/issues 383 | 384 | *-----------------------------------------------------------------------* 385 | 386 | v1.93 387 | 388 | - Added: New material "MeshDX11QuadNormals-DirectionalLight.mat" (Quad Billboard for Point Mesh that has Normals, supports Directional Light) 389 | - Added: New material "MeshDX11QuadNormalsAligned-Unlit.mat" (Quad Billboard for Point Mesh that has Normals, unlit) 390 | - Added: New material "MeshDX11QuadNormalsAligned-Unlit-SizeByDistance.mat" (Point mesh, scale by distance, nearer is smaller. For example: use with mesh lods, to make points larger when far away) 391 | - Added: New material "PointCloudMeshColorAlphaFadeByDistance.mat" (Point mesh, fade by distance) 392 | 393 | - Changed: Upgraded project to Unity 5.6.1f1 394 | - Changed: Moved sample data from "StreamingAssets/" into "StreamingAssets/PointCloudViewerSampleData/" 395 | 396 | *-----------------------------------------------------------------------* 397 | 398 | v1.92 399 | - Added: PCD header binary checking (as only ascii .pcd is supported) 400 | - Added: PLY header binary checking (as only ascii .ply is supported) 401 | - Added: "BinaryViewerDX11-LoadNewCloud.scene" (Example scene for loading new cloud with script) 402 | - Added: Example point cloud data file "StreamingAssets/sample2.bin" from http://graphics.stanford.edu/data/3Dscanrep/ (used in the "LoadMultipleDX11CloudsThreaded.scene") 403 | 404 | - Fixed: Multiple PLY importer bugs (CloudCompare Normals order, header parsing) 405 | - Fixed: Multiple LAS importer bugs (Missing colors, unused arrays) 406 | - Fixed: Shader error in 2017.x https://github.com/unitycoder/UnityPointCloudViewer/issues/37 407 | 408 | *-----------------------------------------------------------------------* 409 | 410 | v1.91 411 | 412 | - Added: Support for .PCD Ascii file format v0.7 *for color, only single value is supported, not separate R G B yet 413 | - Added: Example scene "BinaryViewerDX11WithMeasuring-Override" to show how to override MeasurementManager DrawLine() method 414 | - Added: New Shaders "PointCloudHeightGradientColorOpaqueDX11" and "PointCloudHeightGradientColorOpaqueDX11" for displaying single color point cloud with gradient (based on world Y height) 415 | - Added: UpdatePointData() and UpdateColorData() to easily submit your own point cloud data into viewer, see example Scene "Your_Own_Pointcloud_Data_Viewer.scene" 416 | - Added: DX11 PointCloud VR (singlepass) shader material for testing: PointCloud_DX11_FixedColorOpaque-VR.mat 417 | 418 | - Fixed: MovieTexture error in "VideoDepthPlayer.cs" if building for webgl 419 | - Fixed: .PTS intensity value parsing : https://github.com/unitycoder/UnityPointCloudViewer/issues/30 420 | - Fixed: Nullref error if ReadRGB not selected, but ReadIntensity was selected 421 | - Fixed: Nullref error if loaded animated point cloud, but file was not found 422 | - Fixed: CloudCompare .PLY has extra comment line https://github.com/unitycoder/UnityPointCloudViewer/issues/34 423 | - Fixed: Disable lightprobes on lod meshes 424 | 425 | - Changed: Upgraded project to Unity 5.5.1f1 426 | - Changed: Default point color alpha is now 1 (used to be 0.5) 427 | - Changed: When converting to mesh, new gameobject folder is created per conversion (instead of adding points under same gameobject) 428 | - Changed: Removed static singleton "instance" from BinaryViewerDX11.cs 429 | 430 | *-----------------------------------------------------------------------* 431 | 432 | v1.9 433 | 434 | - Improved: Faster point cloud to binary conversion (around 2-4 times faster) 435 | - Improved: Binaryfile loading is now bit times faster (in both non-threaded and threaded loaders) 436 | 437 | 438 | - Added: Octree point picking and closest point selection preview (for DX11 viewer) *Requires Nition Unity Octree (included in the package) 439 | - Added: ASC format now supports RGB colors (Geomagic XYZRGB files can be loaded with this, wont work with XYZ or XYZRGB) 440 | - Added: PointCloud2Mesh converter now has option to disable: [x] Add Meshes to current scene (so they are only saved as assets) 441 | - Added: GLDebug.cs helper script for drawing GL lines (could use for measurement/closest point) 442 | - Added: Shader for android (supports color and point size) "UnityCoder/PointCloud/Mesh/AndroidColorSize" 443 | - Added: New shader "PointCloudColorSizeByDistanceDX11" (scales points away from near camera) 444 | - Added: Sample video clips for "scene_VideoDepthExtrude.scene" example *Note: uses movietexture 445 | - Added: More error handling on point cloud to binary conversion 446 | - Added: Added more instruction texts to example scene UI's 447 | 448 | - Fixed: MovieTexture error in "VideoDepthPlayer.cs" if building for mobile platforms 449 | - Fixed: Shader errors in 5.6 and later versions issue#28 https://github.com/unitycoder/UnityPointCloudViewer/issues/28 450 | - Fixed: 'UnityEngine.Renderer.useLightProbes' is obsolete (in 5.6 and later) 451 | 452 | - Changed: Updated to Unity 5.3.7p4 453 | - Changed: Organized BinaryViewerDx11 inspector fields 454 | 455 | *-----------------------------------------------------------------------* 456 | 457 | v1.8 458 | 459 | - Added: Multithread DX11 Viewer loading and Point Picking (enable [x] useThreading at BinaryViewerDX11 component) 460 | - Added: Experimental point picking with measuring (see example scene: BinaryViewerDX11WithMeasuring.scene) 461 | - Added: Runtime raw point cloud viewer (parses raw pointclouds, see example scene: RuntimeParserLoaderDX11.scene) 462 | - Added: BinaryViewerDx11.cs now has public bool option [x] LoadAtStart, if enabled, ReadPointCloud() is called at Start() 463 | - Added: Example scene "LoadMultipleDX11CloudsThreaded.scene", to spawn multiple DX11 viewers with different clouds 464 | - Added: MeshConverter: You can now convert multiple point clouds to meshes by dragging whole folder to the PointCloud Source-field) 465 | - Added: New DX11 shaders to support PointSize in DX11 mode, Separate version for Linear Lighting *You can access them from the link inside PointCloudTools/Materials/Shaders/Extras/ 466 | 467 | - Fixed: MeshConverter: Optimize Mesh Point cloud feature now works (currently points are sorted by X axis, no other options yet) 468 | - Fixed: Some Catia ascii files failed to import (because extra characters in comments / header) 469 | - Fixed: Created meshes now have disabled light and blend probes (since those features are not used) 470 | - Fixed: Fixed missing script error in "scene_VideoDepthExtrude.scene" 471 | - Fixed: MeshConverter failed with large clouds (because PointData struct used too much memory) 472 | - Fixed: `System.IO.File' does not contain a definition for `ReadAllBytes' (Caused by having SamsungTV as target platform) 473 | 474 | - Changed: BinaryViewerDx11.cs changed OnDisable() to OnDestroy() instead (so that gameobject can be disabled, and re-enabled) 475 | - Changed: BinaryReader now gives warning if file is too large to read (instead of crashing or error messages) 476 | - Changed: Renamed/Moved DX11-Viewer shaders under UnityCoder/PointCloud/DX11/* 477 | - Changed: Renamed/Moved Mesh shaders under UnityCoder/PointCloud/Mesh/* 478 | - Changed: Renamed/Cleaned folders 479 | - Changed: Moved PeekHeader logic into separate script 480 | - Changed: Not using PointData struct anymore since it caused memory and sorting issues 481 | - Changed: Moved WebplayerViewerDX11.scene into Old/ folder, since webplayer is removed on 5.4 already 482 | 483 | *-----------------------------------------------------------------------* 484 | 485 | v1.7 486 | 487 | - Added: PointCloud2Mesh now has basic LOD mesh generation (with adjustable LOD amount) 488 | - Added: Link for custom PointMeshSizeDX11 shaders (can adjust point size for mesh points in DX11 mode, since point size is not supported in DX11) *See Materials/Shaders/Extras-folder) 489 | 490 | - Fixed: Unity5.2 or later couldnt set output filename in save dialog 491 | - Fixed: CloudCompare PLY file had extra comment in header, it gets correctly skipped now 492 | 493 | - Note: LOD meshes are not saved to project folder, they currently live in the scene only 494 | - Note: Optimize Points & Decimate points are not supported with Brekel PointCloud2Binary importer 495 | 496 | - Known issues: Optimize Points does not work properly, loses precision in some cases 497 | 498 | *-----------------------------------------------------------------------* 499 | 500 | v1.6 501 | - Added: New material "PointCloudColorsMeshAlpha.material" (and shader "PointCloudMeshColorsAlpha.shader") with adjustable color tint & alpha 502 | - Added: PointCloud2Mesh now imports .LAS & .PTS files 503 | - Added: **Experimental** PseudoLight & VertexPush scene "scene_MeshPointPush" for mesh clouds (sets point brightness based on distance to give object and pushes(displaces) points away form given object) 504 | - Added: Basic decimate cloud for PointCloud2Mesh (remove every #nth point) 505 | - Added: Display selected file size (below sourcefile field) 506 | - Added: **Experimental** [x] Optimize Points for PointCloud2Mesh (easier to see from scene view while playing), it sorts the points along X axis (to allow mesh pieces to get culled easier), but doesnt work well with all values, if your cloud seems to be missing points, disable Optimize points. 507 | 508 | - Changed: Project is now updated to Unity5.1 509 | - Changed: Point data is now internally read as doubles instead of floats (to avoid loss of precision during scaling) 510 | - Changed: DX11 viewer & DX11 shaders now use less memory 511 | - Changed: Improved .LAS parsing PointDataRecordFormats #2 & #3 are now supported 512 | - Changed: With PointCloud2Mesh you dont need to select import format anymore, instead parser tries to read any suitable point cloud data (in common formats) 513 | - Changed: Progress bar now also display during mesh saving 514 | - Changed: Deleted 20 mesh clouds from "scene_mobile_heavy01.scene" to make it lighter 515 | 516 | - Fixed: PointCloud2Mesh AutoOffset (it didnt work if FlipYZ was not enabled) 517 | - Fixed: Fixed several parsing problems with some files (.asc, .pts, .las, .xyz) 518 | - Fixed: .LAS colors values are now scaled to 0-255 (some files had different ranges) 519 | 520 | - Note: DX11 Point clouds doesnt seem to work if Unity v5.x "[x] Virtual Reality Supported" is enabled 521 | - Note: DX11 point clouds or Mesh point clouds doesnt seem to work with WebGL viewer 522 | 523 | *-----------------------------------------------------------------------* 524 | 525 | v1.5 526 | - Added: ".LAS" import support for binary cloud converter *Only LAS format#2 is currently supported 527 | - Added: ".PTS" import support for binary cloud converter (PTS: XYZ, XYZI, XYZIRGB, XYZRGB) *For now intensity value can be converted as RGB 528 | - Added: "Window/PointCloudTools/Create test binary cloud" for creating random point clouds with adjustable point amount (for debug purposes) 529 | - Added: "Window/PointCloudTools/Show header data helper" for printing out text based file headers (for debug purposes, to see what the file contains, ascii only) 530 | - Added: "isLoading" boolean to check if we are still in loading 531 | 532 | - Changed: Added "rotateWithRightMouse" bool into "SimpleSmoothMouseLook.cs", so you can rotate view while right mouse button is down 533 | - Changed: BinaryViewer now automatically adds ".bin" to end of the file, if its missing in the inspector field 534 | - Changed: .ASC reader now tries to skip all comment lines from start of the file (to allow reading Geomagic .asc files) 535 | 536 | - Fixed: Manual offset values (had .x for all axis, instead of .x .y .z) 537 | - Fixed: BinaryConverter now removes double or triple spaces between values, to fix Geomagic .asc import 538 | 539 | - Note: MeshConverter does not yet support .LAS or .PTS importing (use some external tools to convert them to another supported format) 540 | 541 | 542 | *-----------------------------------------------------------------------* 543 | 544 | v1.4 545 | - Added: Brekel Binary & Animated Frames viewer support (Experimental) 546 | - Added: Brekel Binary Animated Frames to Mesh conversion support (Experimental) 547 | - Added: Mobile demo scene (using meshes) "scene_mobile_heavy01.scene" 548 | 549 | - Changed: Faster binary loading *If you experience out of memory problems, do let me know! *2gb is max file size.. 550 | 551 | 552 | *-----------------------------------------------------------------------* 553 | 554 | v1.3 555 | - Added: WebplayerViewerDX11 (loads binary file from url using WWW) 556 | - Added: Import normals (PLY format only and PointCloud2MeshConverter only. Not for DX11 yet) 557 | - Added: Shader+Materials with normals (PointCloudColorsNormalsMesh) 558 | 559 | - Starting to cleanup "BinaryViewerDX11", moved code from Start() into ReadPointCloud() 560 | 561 | 562 | *-----------------------------------------------------------------------* 563 | 564 | v1.2 565 | - Fixed: PointCloud2MeshConverter failed to save mesh, if point amount was less than given vertex limit amount 566 | 567 | 568 | *-----------------------------------------------------------------------* 569 | 570 | v1.1 571 | - Initial release 572 | 573 | 574 | *-----------------------------------------------------------------------* 575 | 576 | unitycoder.com 577 | --------------------------------------------------------------------------------