Todays livestream sounds very useful for the topic of volumetric stuff.
Thanks NoobsDeScroobs & Steve, Iāll check those out!
FWIW, after utilizing the raymarching shader from the content plugin Ryan released Iām still having the slicing artifact with this cloud texture. I think it has something to do with this 3D texture pages being 12x12 instead of 16x16 or something to do with the size of each page. Still not able to figure it out but Iāll keep digging!
Iām curious, would anyone know if this same ray marching technique could be used to render a voxel style game like minecraft on the GPU? Not sure if a fully opaque pixel in a 3d texture could be optimized to no longer bother processing all the pixels in pages behind it.
What is your 12x12 layout? It needs to divide evenly with the texture resolution with no fractions. And your volume should not have any data touching the edges.
Suggested sizes I have calculated. As you can see, 12x12 is nowhere on the list:
16 ^ 3:
16 x 1 frames of 16x16 in a 256 x 16 texture
8 x 2 frames of 16x16 in a 128 x 32 texture
4 x 4 frames of 16x16 in a 64 x 64 texture
32 ^ 3:
32 x 1 frames of 32x32 in a 1024 x 32 texture
16 x 2 frames of 32x32 in a 512 x 64 texture
8 x 4 frames of 32x32 in a 256 x 128 texture
64 ^ 3:
64x1 frames of 64x64 in a 4096 x 64 texture
32x2 frames of 64x64 in a 2048 x128 texture
16x4 frames of 64x64 in a 1024 x 256 texture
8x8 frames of 64x64 in a 512 x 512 texture
100 ^ 3:
20x5 frames of 100x100 in a 2000 x 500 texture
10x10 frames of 100x100 in a 1000 x 1000 texture
128 ^ 3:
64 x 2 frames of 128x128 in a 8192 x 256 texture
32 x 4 frames of 128x128 in a 4096 x 512 texture
16 x 8 frames of 128x128 in a 2048 x 1024 texture
196 ^ 3:
14x14 frames of 196x196 in a 2744x2744 texture
200 ^ 3:
50x4 frames of 200x200 in a 5000 x 400 texture
25x8 frames of 200x200 in a 2500 x 200 texture
256 ^ 3:
32x8 frames of 256x256 in a 8192 x 2048 texture
16x16 frames of 256x256 in a 4096 x 4096 texture
324^3:
18x18 frames of 324x324 in a 5184 x 5184 texture
400^3:
20x20 frames of 400x400 in a 8000 x 8000 texture
For the non-square aspect ratios, you need to edit common.usf and change the input argument to āPseudoVolumeTextureā and change āfloat xsizeā to be āfloat2 xsizeā.
Thanks! I was using a sample 3d texture posted somewhere in this thread a while back when I was trying to recreate the shader before the plugin existed. The plugin shaders and the version I created from your tutorials work with a 16x16 so all is good! The 12x12 frame version has 170.6667 pixel wide frames at 2048x2048ā¦ maybe from early tests? Now Iām off to generate some more cloud textures with your painter & render targets!
Hi, great god:
Can you put this volume cloud module package to me a copy? if convenient.
I need to refer to your method to give my own scenes something interesting.
My mailbox is ().
Thank you very much!
great things are possible through this plugin!
still interested in a comparison between the plugin and the new volumetric engine-feature from 4.16: sounds like they are doing basically the same.
Re: The content plugin vs Volumetric Fog Comparison:
They both include a volumetric ray marching material but the similarities stop there. The plugin is more about content creation. It gives you ways to create Volume Textures (either using procedural shapes or VR painting) and perform full fluid simulations and use that to create standard flipbook FX. It is more a mini content pipeline. They are not mutually exclusive. You can use the plugin to create 3d textures that you then render using the volumetric fog feature, but it is worth pointing out the differences and limitations that exist.
Volumetric Fog Features:
- Fits volume to camera frustrum every frame. Allows for inverse square LOD behavior. Distant fog loses detail automatically.
- Receives shadows from the world by compositing shadowmaps into the volume texture.
- Allows voxelizing either heightfog or particles into the volume. Currently there is no path to write custom 3d textures into the volume fog. The plugin can fill that gap for now using a particle method.
- Currently volume fog does not support any self shadowing. It needs more features to allow that to work.
So it is designed as more of a closed system that ājust worksā from the end user standpoint but it is also not super flexible as a result.
On the other hand, the content plugin is something I had been slowly adding features to for over 6 months (well before the actual volume fog feature was being developed), and it is more about experimental volumetric content manipulation.
Some important stuff to note:
- Not an official engine feature (yet) and not as optimized as a result and maybe not as user friendly.
- RayMarcher is exposed and by default has self shadowing. This means you can get much higher quality results at the cost of performance since self shadowing is important for more dense effects. Shadows from the world are only possible through Distance Field Shadows which means they have correct soft penumbras. The volumetric fog only uses DF shadows for the indirect while the direct shadows use shadowmaps, making the edge hardness of shadows constant.
- Allows creating your own custom volume textures and using them however you want. Also next version will support skeletal meshes emitting and influencing during simulations.
- Create fluid simulations and watch them in realtime.
- You can use the plugin to do the simulation but inject the resulting 3d textures into the Volume Fog to do the final rendering there. Youād have to do the self shadowing in the material as well which is also possible but not per light.
In general, the Volumetric Fog can be thought of as a āglobalā effect that is not meant to be used at a super high resolution or with self shadowing. The plugin version is more like āper objectā volumetrics where you can get as detailed as you want, but the cost is not optimized as well.
The plugin also includes some other little bits such as character hitmasking and flow-map painting.
How does ue4ās fog compare to the one being worked on for star citizen?
The patchy effect looks quite nice. Is ue4 capable of something similar?
Not sure exactly what tech they use but its most likely similar.
Yes, you can get detailed noise in ue4s volume fog. As I mentioned in my previous post, you would use the pseudo volume textures to do it cheaply. You can use the actual noise node and a particle system to write noise but it will be very expensive that way.
Rise of volumetrics in UE4 is really a groundbreaking change towards cinematic realism and gaming. Magneto: that Star Citizen video had really great volume effects, this part felt like movie scene Star Citizen: Around
this looks kinda neat [video]https://youtu.be/xKRX0ZwzXqk?t=37m16s[/video] very atmospheric though
Basically like Prometheus movie scene in storm, that was first thing i thought.
I have very great faith on Epic engineers with making volumetrics even better and faster so not to worry.
Check out our Space Nebula and Starfield Plugin for UE4, which is now partly based on Ryans approach!
Much appreciation to Ryan for his work for the community (and Epic, of course ;))
[SHOT]http://i.imgur.com/a4LhZUM.png[/SHOT]](http://i.imgur.com/a4LhZUM.png)
[SHOT]http://i.imgur.com/sLLLkRo.png[/SHOT]](http://i.imgur.com/sLLLkRo.png)
[SHOT]http://i.imgur.com/vyjAgpu.png[/SHOT]](http://i.imgur.com/vyjAgpu.png)
That would be a 4d texture. You could do several frames of a 3d texture and atlas them in a flipbook together. So far we dont have a 4d sample function but it would be pretty easy to add.
personally, I donāt think 4d textures will be useful since they will be so massive in memory, or so low res as to be useless.
edit That nebula stuff looks pretty awesome!
Maybe after siggraph I can take a stab at it but I am super swamped ATM.
You wouldnāt really need to use the textures at all if you are doing it in houdini. The textures are just a way to transfer over into UE4 for now.
You said you werenāt wanting to do it in realtime, so I mean you can just do everything in houdini and render a movie or flipbook and bring that in to uE4. I donāt know any way to bring in 4d textures at the moment without some work.
Houdini engine is pretty powerful though so I bet there is a way to figure that out.
In that case, just import each pseudo volume texture as a single frame of your animation. Then make a BP array of textures that stores them all, and cycle between all the textures.