A downloadable tool for Windows, macOS, and Linux

Download NowName your own price

What is this tool for?

This tool is used to generate pseudo volume textures aka. 3D textures. 

I made this tool for volumetric ray marching for clouds and nebula.

Here is an example:



How does it work?

  • Adjust the settings and click on the play button
  • A texture will be generated with your custom settings and resolution
  • Have fun!

Bugs/Features

If you find any bugs or missing features or have some ideas for future versions, let me know! I'll be happy to fix or implement them.

Where are the files stored?

The tool will create two directories.

Default path is: C:\Users\<User>\AppData\LocalLow\Acetix\3D Volume Generator

  • Result folder contains the rendered textures
    • can be changed via settings 
  • TempSlices contains the temporary files

Credit to JummyCushnie who uploaded the code to generate 3D noise inside shadergraph: https://github.com/JimmyCushnie/Noisy-Nodes


Download

Download NowName your own price

Click download now to get access to the following files:

3D Volume Generator 2.7 Linux.zip 27 MB
3D Volume Generator 2.7 Mac.zip 36 MB
3D Volume Generator 2.7 Win.zip 27 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

(5 edits)

Hi !

Here are some features i'd love to see implemented, please consider them:

- .dds output. (Check out Texassemble), or alternatively output for individual frames

- Brightness / Contrast / Blending improvements

- Option to disable noise layers

- Option for pixel perfect noise (adjustable filtering/smoothening)

- preview options like quality, preview object size/model etc.

- unlocked min/max values on all options

These are great suggestions and I'll try implementing them! I can't say how long it will take though.

(1 edit) (+1)

Hello !

It seems like a great tool ! But I when I click generate,  the process is stuck in a forever loop it seems. I've let it run for half an hour on a low resolution texture to try, no luck so far.

Any idea what could cause this ?

Thanks a lot in advance !

Solved : If I change the default output path, It will be stuck in a rendering loop. Reverted back to default , it works ! 

Thank you for the info! 

Unfortunately I could not recreate this bug.
There should be a Player.log file inside this folder C:\Users\<User>\AppData\LocalLow\Acetix\3D Volume Generator
Maybe it contains an error message that could identify the problem.

I have this error in the log :

UnauthorizedAccessException: Access to the path 'C:\Users\Vaille\Documents\My Pictures' is denied.

  at FileBrowser.GetAllDirectoryNames (System.String path) [0x00057] in <70b10ceaa322400282e297cbd2661509>:0 

  at FileBrowserUI.BuildDirectoryView (System.String path) [0x00000] in <70b10ceaa322400282e297cbd2661509>:0 

  at FileBrowserUI.Show (FileBrowserMode openMode, System.String startingPath) [0x00032] in <70b10ceaa322400282e297cbd2661509>:0 

  at MaterialUiController.ShowFileBrowserForResultPath () [0x00024] in <70b10ceaa322400282e297cbd2661509>:0 

  at UnityEngine.Events.InvokableCall.Invoke () [0x00010] in <027a98498d8c4623bf0c4b0061801949>:0 

  at UnityEngine.Events.UnityEvent.Invoke () [0x00022] in <027a98498d8c4623bf0c4b0061801949>:0 

  at UnityEngine.UI.Button.Press () [0x0001c] in <4d685be77172497b9c5d885029ba77aa>:0 

  at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00009] in <4d685be77172497b9c5d885029ba77aa>:0 

  at UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00007] in <4d685be77172497b9c5d885029ba77aa>:0 

  at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00067] in <4d685be77172497b9c5d885029ba77aa>:0 

UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)

UnityEngine.DebugLogHandler:LogException(Exception, Object)

UnityEngine.Logger:LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)

UnityEngine.EventSystems.StandaloneInputModule:ReleaseMouse(PointerEventData, GameObject)

UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData)

UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32)

UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent()

UnityEngine.EventSystems.StandaloneInputModule:Process()

UnityEngine.EventSystems.EventSystem:Update()


Also, I cannot rechange the save location. How can I force it to reset to default ? I tried download a new version, or delete files in Local Low, when I start a new instance, he keep this "bugged" Save location in memory

There is currently no reset to default button and it keeps this settings since Unity sets this value in the registry. But I could implement something like this.

Also the error says that the program has now permissions to access the directory  'C:\Users\Vaille\Documents\My Pictures'

Found the registry , deleted, and now its "factory" reset ! Everything is working ! :D Thank you for your help !

(6 edits)

This is really, really good! Runs like a charm, generates nice volumes.

The UI can benefit from a few minor improvements; e.g.:

- can't type 5 digits into the resolution field, but my GPU supports 16384x16384 textures, also in Unity. :) You could clamp it to the SystemInfo.maxTextureSize ; or I guess 65536 or 32768 if your generator doesn't use the GPU to display these textures.

- add a button checkbox that just opens the persistent data path (or custom data path) in explorer after generation

- add a box around the controls group on the top left; to set it apart

- tab and cursor key navigation, can be easily done via Unity's UGUI EventSystem, just wire up auto navigation and click away the pieces you don't want

Thank you for your feedback!
I'll try implementing your points. :)

Also I've set the max resolution to 4 digits since I didn't think someone would need more  because the file size can really impact performance. What's your usecase for such large textures then? ^^

(+1)

I use them as volumes in a space game. Usually just one of that size, though.

Ultimate plan is to build a 3D gradient and use that as a map to visualize the manetosphere of Jupiter. That could eventually be generated from spherical harmonics, but actually twirled noise looks and feels better.

great tool! But i'm encountering a few saving bugs. Anytime i try and render a texture it just hangs. And  I don't think its keeping my export file paths either.

Thanks! It should actually keep the saving path but I'll look into it. And it may hang because it's using to much RAM. That's also something I want to improve but thanks for reminding!

(+1)

With the Twirl property, I can make Volumetric Accretion Disk! Nice Job!!

Thank you :)