Arlorean / Voxels

Voxel Windows Explorer Thumbnails
MIT License
83 stars 9 forks source link

Not working in Windows 11 #6

Open pphu15 opened 8 months ago

pphu15 commented 8 months ago

Install goes well completely... but no thumbnails. Windows 11. MagicaVoxel final version, 0.99.7.1 | Windows 11 Pro for Workstations, 23H1 | latest Voxels version image Anyone help?

pphu15 commented 8 months ago

Also there is a problem with the cli here: image

Unhandled Exception: System.ArgumentException: Illegal characters in path.
   at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Voxels.VoxelImport.Import(String path)
   at Voxels.CommandLine.Program.RenderFiles(String[] filenames, RenderSettings renderSettings)
   at Voxels.CommandLine.Program.OnExecute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.Invoke(MethodInfo method, Object instance, Object[] arguments)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<OnExecute>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<<Apply>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<ExecuteAsync>d__154.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<ExecuteAsync>d__183`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context)
   at Voxels.CommandLine.Program.Main(String[] args)

Is the project deprecated !? The magicavoxel folder is in the onedrive.

Arlorean commented 8 months ago

If the folder is in OneDrive you need to make sure that all the files are stored locally or the Windows Explorer Add-In can't see the file to generate the thumbnail. I used to have this problem with SolidWorks files: https://www.youtube.com/watch?app=desktop&v=fzjbeIsumEk The only fix for that is to mark the files as "Always Keep On Device": https://blogs.windows.com/windows-insider/2017/06/13/onedrive-files-demand-now-available-windows-insiders/

If the thumbnails don't show up in a regular folder for existing files after install then you may need to run Disk Clean-up in Windows to remove your thumbnail cache as documented here on the itch.io download page (new or copied files should show up straight away): https://arlorean.itch.io/magicavoxel-thumbnails

When running command line programs in windows with the "*.vox" bit in Windows, this gets passed "as is" to the program. You need to remove the quotes from the it to get the shell to expand the files list. Alternatively if you just pass a directory name in it will process all the vox file in the directory. If you don't pass any arguments to the .exe it should show you a list of command line arguments you can use and it mentions that you can pass a list of filenames or a directory (Added in V1.5):

Usage: Voxels.CommandLine [options] <Filenames>

Arguments:
  Filenames                           Filenames or directories to convert.

Options:
  -w|--size <SIZE>                    Size in pixels.
                                      Default value is: 512.
  -y|--yaw <YAW>                      The yaw in degrees.
                                      Default value is: 45.
  -x|--pitch <PITCH>                  The pitch in degrees.
                                      Default value is: -26.
  -p|--png                            Output a PNG file.
  -s|--svg                            Output an SVG file.
  -g|--gif                            Output an animated GIF file.
  -v|--vox                            Convert PNG file to VOX.
  -f|--frames <FRAMES>                The number of frames for the animated GIF.
                                      Default value is: 30.
  -d|--duration <DURATION>            The duration for the animated GIF in seconds.
                                      Default value is: 2.
  -c|--camera-orbits <CAMERA_ORBITS>  The number of camera orbits for the animated GIF (0=none, -1=clockwise.
                                      Default value is: 1.
  -r|--recursive                      Recurse into sub-directories to convert.
  -o|--output <OUTPUT>                Output filename ({0} - path minus extension, {1} - extension).
                                      Default value is: {0}.{1}.
  -?|-h|--help                        Show help information.

Let me know if you've still got issues and I'll see if I can take a further look.

pphu15 commented 8 months ago
  1. image The only fix available on that is to stop using onedrive. What the *, spent a 100GB upgrade for no joy. Not even if I was been given using the OneDrive to stow the whole magicavoxel install on cloud and use it anywhere. image As it worked if it was copied to C:/ instead of enabling the OneDrive's always-keep on the whole magicavoxel's dir in OneDrive/Desktop/extd/folders/magicavoxel/.

Had any fix for compatiability with onedrive?

pphu15 commented 8 months ago

Regarding the Voxels.CommandLine: would it be better if I am able to run CommandLine without cd to C:/Program Files (x86)/Voxels first?

Arlorean commented 8 months ago

Frustratingly it doesn't seem like there's an easy workaround for the OneDrive thumbnail problem. I've just set mine to download all the file (i.e. no files on demand), just to see if it fixes it. Very annoying. This post talks about the same problem: https://answers.microsoft.com/en-us/windows/forum/all/workaround-found-show-thumbnails-in-onedrive/80fab79c-d06b-4152-8543-6643aece392a I don't know whether something like GoogleDrive or DropBox would work better.

For running the console app. I normally either put it in my PATH environment variable or reference it directly from the program files directory. So I wouldn't cd to the .exe directory.