Announcement

Collapse
No announcement yet.

[Community Project] WIP Weather & Ocean Water Shader

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by thibaultvdb View Post
    Hey guys,

    I'm working on a yacht simulation in UE4 for the HTC Vive, and I'm having issues with baked lighting. Whenever I try to build the lighting, it completes without doing anything, I never see the Swarm booting up. I've tried to set the skylights to static, but it didn't change anything. Any tips? Might there be a setting in the skybox blueprint that's holding me back to build lighting?

    Thanks, Thibault.
    Uncheck "Force no precomputed light" Under lightmass settings in the world settings tab. if you can't see world settings Go to Window -> World Settings.

    Comment


      Hey people, and happy new year

      I know there has been a lack of updates but I can assure you that progress is being done behind the scenes (slowly but surely).
      Thanks to everyone who is sharing their updated branch for 4.14 and helping with thread questions by the way.

      I'm trying to find more time to work on the project but it keeps getting more difficult.. which is why I'm thinking it might be a good idea to release my upcoming FFT ocean as a new plugin in the marketplace.

      You can think of the new marketplace plugin as an early access to "kickstart" the project, that way I will be able to put much more time to it, update it more rapidly and add more features.
      Then later down the line I will open source it to the community. What do you guys think?

      Here is a list with the core features I'm aiming at for the first released version of the plugin:

      -Ocean based on Tessendorf's FFT paper.

      -Multiple ocean spectra to choose from with many tweakable parameters (amplitude, choppy, wind velocity, direction, fetch etc.).
      Phillips and Unified Directional spectrum currently implemented.

      -Foam generation based on the ocean spectrum.
      Tweakable parameters: foam amount, coverage, decay rate, dissipation.

      -Infinite ocean system using Quadtrees (video).
      Dynamically subdivides the ocean patches for efficient usage of vertices.
      Expands to the horizon (or up to given distance).
      Frustum culling (removes patches outside the camera view).

      -Custom BRDF shading based on Eric Bruneton's paper.
      BRDF model suited for ocean rendering.
      Added custom SSS (subsurface scattering).
      Planar reflections (custom component) which can be tweaked in the shader.

      -Interactive water heightfield.
      Allows for dynamic interaction with the ocean surface (as in watch dogs).
      Can be layered on top of the FFT waves (square around the camera will be simulated) or used as stand alone for lakes and puddles.
      Boats leave natural looking wakes.
      Multiple propagation algorithms to choose (MuellerGDC, Tessendorf iWave and more).

      -Underwater post process effects.
      Waterline (camera-ocean intersection).
      Light absorption / fog (new method).
      Volumetric Godrays.

      Many more features planned for later updates.


      I don't have an ETA yet but hopefully early this year.


      And as always, a screenshot


      (Click for larger image)
      This is how the custom BRDF currently looks like (shader still far from final, wip).

      4.10 Update! -> [Community Project] WIP Weather & Ocean Water Shader
      WIP Interactive Water Shader, WIP 2D Water Sim
      WIP FFT Ocean w/ Foam, Quad-tree Infinite Ocean LOD

      Comment


        I think most people expected this to be marketplace plugin at first glance anyway
        If it helps with the development then I have no issue supporting the project

        Comment


          I fully support this plugin to be in the marketplace - a paid support and development are always needed for this to be feature-rich and production-ready!

          Comment


            I'm all in to support the plugin, But I don't think marketplace is the best place for something that will be constantly getting updates, its really a painful and slow process to get a much needed update, maybe gumroad? something where updates are more instant.
            Attached Files
            Last edited by kkhaial; 01-04-2017, 07:00 AM.

            Comment


              Count me in for support as well!

              Comment


                i am in, too !
                i copy the point with the marketplace for updates ... its really slow ..
                www.ofpawnsandkings.de

                Comment


                  I am going to branch off Zoc's latest and clean out all the content that isn't required for the Ocean to work, including the TOD items, art content, audio, etc. Good to finally get an update on the progress and that the progress will be sold on the Market. I hope Epic buys this from you and makes it apart of the engine would be great if Nvidia and Epic could get a great fluids system into the engine. Thank you for all the great work TK-Master!
                  Victor "Vexar" Mercieca
                  Twitch Channel
                  Artstation
                  Youtube Channel

                  Comment


                    Originally posted by TK-Master View Post
                    Hey people, and happy new year

                    I know there has been a lack of updates but I can assure you that progress is being done behind the scenes (slowly but surely).
                    Thanks to everyone who is sharing their updated branch for 4.14 and helping with thread questions by the way.

                    I'm trying to find more time to work on the project but it keeps getting more difficult.. which is why I'm thinking it might be a good idea to release my upcoming FFT ocean as a new plugin in the marketplace.

                    You can think of the new marketplace plugin as an early access to "kickstart" the project, that way I will be able to put much more time to it, update it more rapidly and add more features.
                    Then later down the line I will open source it to the community. What do you guys think?
                    I'd support this

                    Comment


                      Hi! This is really amazing work I would like to echo along with everyone else.

                      I'm trying to make a simple AI based boat game to practice with UE4 but I'm having a hard time implementing the AI. In a similar Tank game that is based on land my AI works fine. I'm feel like almost there too but there's one odd behavior I can't figure out. Although my behavior tree shows that the AI is able to find the patrol points and sense me as an enemy, it's not moving towards the patrol points rather just failing the move to call and cycling through the patrol points rapidly as each time it fails the move portion. My instinct tells me that it thinks it can't reach the patrol points but I've been at this for 9 hours now and only making it worse. I can't figure it out

                      Has anyone experienced something similar and can give me some pointers regarding how they got their AI to work the the ocean plugin? I'm not really sure what from my code, or what screenshots specifically to post so let me know if my question is lacking in detail.

                      Click image for larger version

Name:	Capture.JPG
Views:	1
Size:	143.6 KB
ID:	1121002

                      BoatAIController.h

                      BoatMovementComponent.h:

                      Code:
                      UCLASS(ClassGroup = (Custom), meta = (BlueprintSpawnableComponent))
                      class SPACEPIRATES_API UBoatMovementComponent : public UNavMovementComponent
                      {
                      	GENERATED_BODY()
                      	
                      public:
                      
                      	UFUNCTION(BlueprintCallable, Category = "Setup")
                      	void Initialize(UBoatThruster* LeftThrusterToSet, UBoatThruster* RightThrusterToSet);
                      
                      	UFUNCTION(BlueprintCallable, Category = "Input")
                      	void IntendMoveForward(float Throw);
                      
                      	UFUNCTION(BlueprintCallable, Category = "Input")
                      	void IntendTurnRight(float Throw);
                      
                      
                      private:
                      	// TODO check best protection of this method
                      	/** path following: request new velocity
                      	Called from the pathfinding logic by the AI controller */
                      	virtual void RequestDirectMove(const FVector& MoveVelocity, bool bForceMaxSpeed);
                      
                      	UBoatThruster* ForwardThruster = nullptr;
                      	UBoatThruster* LeftThruster = nullptr;
                      	UBoatThruster* RightThruster = nullptr;
                      
                      };
                      BoatMovementComponent.cpp: Please excuse the super long comments, it was for my own understanding of the subject matter.

                      Code:
                      /** path following: request new velocity */
                      void UBoatMovementComponent::RequestDirectMove(const FVector& MoveVelocity, bool bForceMaxSpeed)
                      {
                      	/* Get the current forward direction */
                      	auto BoatForward = GetOwner()->GetActorForwardVector().GetSafeNormal();
                      
                      	/* Get the intended move direction we want the tank to go in next. */
                      	auto AIForwardIntention = MoveVelocity.GetSafeNormal();
                      
                      	/* Set the forward movement to the dot product of the tanks current vector
                      	and the intended vector. */
                      	auto ForwardThrow = FVector::DotProduct(BoatForward, AIForwardIntention);
                      	IntendMoveForward(ForwardThrow);
                      
                      
                      	auto RightThrow = FVector::CrossProduct(BoatForward, AIForwardIntention).Z;
                      	IntendTurnRight(RightThrow);
                      
                      	UE_LOG(LogTemp, Warning, TEXT("ForwardThrow: %f RightThrow: %f"), ForwardThrow, RightThrow);
                      }
                      
                      /* Initialization is done in blueprint where track assets are assigned to tracks being initialized. */
                      void UBoatMovementComponent::Initialize(UBoatThruster* LeftThrusterToSet, UBoatThruster* RightThrusterToSet)
                      {
                      	LeftThruster = LeftThrusterToSet;
                      	RightThruster = RightThrusterToSet;
                      
                      }
                      
                      void UBoatMovementComponent::IntendMoveForward(float Throw)
                      {
                      	/*Ensure that we have a left and right track assigned in BP and initialized. */
                      	if (!ensure(LeftThruster && RightThruster)) { return; }
                      	/* Throttle is clamped to -1, 1 so players can't overdrive. */
                      	LeftThruster->SetThrottle(Throw);
                      	RightThruster->SetThrottle(Throw);
                      }
                      
                      void UBoatMovementComponent::IntendTurnRight(float Throw)
                      {
                      	/*Ensure that we have a left and right track assigned in BP and initialized. */
                      	if (!ensure(LeftThruster && RightThruster)) { return; }
                      	/* Throttle is clamped to -1, 1 so players can't overdrive. */
                      	LeftThruster->SetThrottle(-Throw);
                      	RightThruster->SetThrottle(Throw);
                      }
                      I don't want to post too much code for brevity, if anyone has any ideas please help.

                      Comment


                        I will definetly buy this if you put it up on the marketplace, or support it in some other way if you choose a different approach.

                        BTW, is there any way to increase the quality in the SSR reflections for the ocean? they are pretty lowres and flickery, especially near the horizon. Post process settings seem to have no effect on it, its like its baked into the shader somewhere.
                        Last edited by BendikSlyngstad; 01-06-2017, 05:14 AM.

                        Comment


                          Is there ANY way I can use this shader on Unreal 4.13 or revert a project I created there to 4.12???

                          Please, Im desperate.

                          Comment


                            Great to hear it's heading to the market!
                            I've dreamt of this for a while since sourceforge is very confusing to me and from now on the market will handle the updates

                            Comment


                              The ocean really looks fantastic! Also supporting for marketplace

                              Comment


                                Originally posted by TK-Master View Post
                                Hey people, and happy new year

                                I know there has been a lack of updates but I can assure you that progress is being done behind the scenes (slowly but surely).
                                Thanks to everyone who is sharing their updated branch for 4.14 and helping with thread questions by the way.

                                I'm trying to find more time to work on the project but it keeps getting more difficult.. which is why I'm thinking it might be a good idea to release my upcoming FFT ocean as a new plugin in the marketplace.

                                You can think of the new marketplace plugin as an early access to "kickstart" the project, that way I will be able to put much more time to it, update it more rapidly and add more features.
                                Then later down the line I will open source it to the community. What do you guys think?

                                Here is a list with the core features I'm aiming at for the first released version of the plugin:

                                -Ocean based on Tessendorf's FFT paper.

                                -Multiple ocean spectra to choose from with many tweakable parameters (amplitude, choppy, wind velocity, direction, fetch etc.).
                                Phillips and Unified Directional spectrum currently implemented.

                                -Foam generation based on the ocean spectrum.
                                Tweakable parameters: foam amount, coverage, decay rate, dissipation.

                                -Infinite ocean system using Quadtrees (video).
                                Dynamically subdivides the ocean patches for efficient usage of vertices.
                                Expands to the horizon (or up to given distance).
                                Frustum culling (removes patches outside the camera view).

                                -Custom BRDF shading based on Eric Bruneton's paper.
                                BRDF model suited for ocean rendering.
                                Added custom SSS (subsurface scattering).
                                Planar reflections (custom component) which can be tweaked in the shader.

                                -Interactive water heightfield.
                                Allows for dynamic interaction with the ocean surface (as in watch dogs).
                                Can be layered on top of the FFT waves (square around the camera will be simulated) or used as stand alone for lakes and puddles.
                                Boats leave natural looking wakes.
                                Multiple propagation algorithms to choose (MuellerGDC, Tessendorf iWave and more).

                                -Underwater post process effects.
                                Waterline (camera-ocean intersection).
                                Light absorption / fog (new method).
                                Volumetric Godrays.

                                Many more features planned for later updates.


                                I don't have an ETA yet but hopefully early this year.


                                And as always, a screenshot

                                http://www.mediafire.com/convkey/d1eb/rfxdytke61kbxx8zg.jpg?size_id=7
                                (Click for larger image)
                                This is how the custom BRDF currently looks like (shader still far from final, wip).
                                Hey [MENTION=1127]TK-Master[/MENTION]

                                Thanks for the update. The screenshot looks great!

                                May I suggest you to add the marketplace plugin AND keep the project open source?
                                From many posts I found here, it seems there are a bunch of users eager to get a ready-made package for user (target customers for a marketplace plugin) and a bunch of us who like to hack away at the plugin.
                                For example, I'll probably need to make it "simpler" on lower end configurations, because my target audience probably won't have all the processing power required to have the ocean shader and a bunch of other effects going on. (This is something I'm still considering, though)

                                Since you don't have much time to work on the project, it might aid people brave enough to dive on the code to fix the project in case of a (necessary) engine upgrade.

                                Talking about code fixes, can you take a look at this Pull Request ? There are more fixes at my GitHub fork that I can submit if you want

                                Btw, I'm willing to help with the plugin if you need a hand

                                Originally posted by Vexar View Post
                                I am going to branch off Zoc's latest and clean out all the content that isn't required for the Ocean to work, including the TOD items, art content, audio, etc. Good to finally get an update on the progress and that the progress will be sold on the Market. I hope Epic buys this from you and makes it apart of the engine would be great if Nvidia and Epic could get a great fluids system into the engine. Thank you for all the great work TK-Master!
                                You just need the Plugins folder to make it work, the rest are examples of use

                                Comment

                                Working...
                                X