I get all the same errors that Mr.Go posted above.
I’m on Unreal 5.1.1
Is there a particular plugin that needs to be enabled for this to work? That’s the only thing I can think of that might be causing an issue.
I get all the same errors that Mr.Go posted above.
I’m on Unreal 5.1.1
Is there a particular plugin that needs to be enabled for this to work? That’s the only thing I can think of that might be causing an issue.
No. Most likely you forgot to change include paths.
these are some sweet glassy waves, thanks for this
First of all great asset, thank you for the tutorial.
Is it possible to limit the waves not going up when the player is in the position, so his ‘head’ doesn’t go under the waves?
Weird, I did that once, but it didn’t seem to work. Doing it again and now it works. Thanks again. Your work on this is amazing!
Hello, i dowloaded the project for UE5.1.1, i got this strange repeated texture on the surface of the water, it was white in the start, i changed to black, anyone can help me solve this?
Solved:
for who encounter the same problem, go into water material (plane mesh)go into the function “MF_GrabPixelAttributes” and change the 2 RT textures on the start of this function on the left up the 2 cascade textures from “RT_OceanPixelAttribs_Casc0” choose the next in the drop down to “RT_OceanPixelAttribs_Casc1” and change also the second texture from “RT_OceanPixelAttribsB_Casc0” to “RT_OceanPixelAttribsB_Casc1” and save.
You’re doing God’s work here. Could this be implemented in blueprints and applied to a WaterWaves asset to be used with the out-of-the-box water system? I guess I just don’t understand the reasoning for doing it with niagara?
Superb as always Deathrey.
We are attempting to experiment with this, however the absolute paths create quite an issue if multiple people are accessing the project and have different folder structures.
Just so that I can understand better, is the absolute path a requirement of the current Niagara system, or would there be a way to create a more project-specific relative path in the case where multiple people need to continually access the project on different PCs
Of course, one temporary solution we are considering is to put the hlsl files in the C:\ drive manually because almost everyone has a C:\ drive anyway and it is only a few files, but if there was a more complete method it would be greatly appreciated!
Thank you again for sharing this amazing implementation.
No. There are two and only two reasons for doing it in niagara. First is that by doing so, you can do not need to touch code. Abd second, it minimises upkeep of the system in anu future updates.
No, that is not a requirement at all. Just to keep code part away and make it accessible for broader audience. You can make a module in project or plugin, that would register virtual path on startup and use that.
I have two questions about the iFFT:
weights.y = -weights.y;
in GetButterflyValues? I thought this is what you usually do for the forward transform, not the inverse transform. It is basically the same as multiplying by e^(-2 * PI * … i) instead of e^(2 * PI * … i).Thanks again for this amazing tutorial!
// Flip the sign of odd indices
float perms[]={1.0,-1.0};
int index=(position.x+position.y)%2;
float perm=perms[index];
Real*=perm;
void GetButterflyValues(uint passIndex, uint x, out uint2 indices, out float2 weights)
{
int sectionWidth = 2 << passIndex;
int halfSectionWidth = sectionWidth / 2;
int sectionStartOffset = x & ~(sectionWidth - 1);
int halfSectionOffset = x & (halfSectionWidth - 1);
int sectionOffset = x & (sectionWidth - 1);
sincos(2.0 * PI * sectionOffset / (float)sectionWidth, weights.y, weights.x);
weights.y = -weights.y; // <---??
indices.x = sectionStartOffset + halfSectionOffset;
indices.y = sectionStartOffset + halfSectionOffset + halfSectionWidth;
if (passIndex == 0)
{
indices = reversebits(indices) >> (32 - BUTTERFLY_COUNT) & (LENGTH - 1);
}
}
In Stockham iFFT bit reversal is done at every butterfly step, hence weight flip at every butterfly step and final flip for half of entries.
I can’t figure out how to make it work with 5.2
i got it working in 5.2, will post my steps later
5.2 introduces mip map support for texture sampling and HLSL function syntax changed a bit,so youd need to update accordingly.
What i did to get it working in 5.2:
Based on project files from original tutorial.
Get files from github and set them as described
I did these adjustments for modules and create infinite ocean with Water plugin using this ocean material
Adjustment in FX_OceanWater
hope this helps. Also i have niagara plugins enabled but please test which one is needed.
ALso recommend to play with these settings to achieve desired effect.
@Deathrey works fine in 5.2 but do you have any idea about this one?
thank you
Amazing tutorial and results. Thanks for sharing this.
I can get it working as a standalone project but can you recommend a method I can use to add this to an existing project? I’ve tried Migrate and I’ve tried putting the OceanTutorial Folder manually to the content folder but the Map comes up blank…
Any tips? Thanks
I also had breakage with THREADGROUP_SIZE. How did you get that fixed?
I havent fixed it but its works fine.
As for new project ocean check previous posts, all info is there. I have it in city sample, no problems. I might make video if this wont get sorted