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 DotCam View Post
    Hey Diftow, I was talking about this with TK earlier, we are currently implementing the basics needed for this to work. The "GetWaveHeight" function of the OceanManager class (which BP_Ocean derives from) has now been exposed to blueprints. There are a couple other steps we have taken in code to offset the regular time by the server latency to prevent any discrepancies.

    TK had a quick setup on his GutHub branch of the project, we are currently testing it out. I hope to have more info soon. We can also use an "anchored location" (you can enable that mode by turning off physics on your ship), you will see the ship bob up and down rather unrealistically at this time, but I will try to improve that to see if it could solve this issue.

    The colision between the player and the ship itself is something I do not see us adding in at this point, so that part you will need to implement.

    So we are making progress on it
    Originally posted by Nsomnia View Post
    Were looking into per-poly collissions for our submarine for the deck and bridge, will let you know what we figure out.
    Good to hear Thank you for looking into this DotCam.
    I tried making a blueprint with 4 default spheres, and 4 buoyancy points placed at each sphere.
    I then add the ship to the blueprint object as a child (I don't add it inside the actual blueprint) so that it will inherit transforms.
    In this setup, the 4 spheres are the only thing physical and buoyant.

    I divided the ship, even the hull, into multiple pieces so it would auto-convex better. I'm using the maximum hulls of 24 with 32 verts; It's now 79 pieces instead of a few.
    With this setup, I do appear to collide and while it still inherits the transforms from the buoyant spheres without being part of the physics simulation (to my knowledge).
    I did however crash unfortunately while testing, not sure from what.

    Click image for larger version

Name:	ship2.jpg
Views:	1
Size:	421.9 KB
ID:	1071069
    Click image for larger version

Name:	ship1.jpg
Views:	1
Size:	425.8 KB
ID:	1071070

    Per-poly however does not work at present, the collision seems to vanish the minute I make it a child of the blueprint spheres.
    I still think there are assets that would be better as per-poly, such as the floor. You don't see people making terrain's convex xD
    So I'm definitely interested in whatever you figure out Nsomnia. =3
    Last edited by DIFTOW; 03-23-2015, 06:53 PM.

    Comment


      Also, how weird should I get with this? Any love for aurora, hurricane eyes or fire tornadoes?

      Edit:
      Attached Files
      Last edited by xnihil0zer0; 03-24-2015, 04:02 AM.

      Comment


        Originally posted by xnihil0zer0 View Post
        Also, how weird should I get with this? Any love for aurora, hurricane eyes or fire tornadoes?
        Looks awesome!


        EDIT
        @DIFTOW The terrain generation code is currently in the master branch for testing purposes. We obtained it through an open source project I found (GitHub):


        Feel free to check it out! DotCam just put in the code today, so I haven't had a chance to test it, but I did test it on other projects. As you can see, there was collision between the 3rd person player and the procedural terrain. I believe we can use his code with different noise functions to generate a more ocean-looking terrain (and perhaps even give some editable variables for level designers).

        I believe he uses the approach written of in GPU Gems 3

        Best,
        Komo
        Last edited by Komodoman; 03-23-2015, 10:52 PM.

        Comment


          I believe we can use his code with different noise functions to generate a more ocean-looking terrain (and perhaps even give some editable variables for level designers).
          Is that one using CPU generated noise? Having explored that road a bit, but relatively new to game development and the perils of floating point errors, if anyone knows a way to get identical(or even just somewhat close) numbers out of an HLSL GPU, and a C/C++ CPU, perlin/simplex/gradient noise generator, I will make something really amazing for this project.

          Edit: Additionally, I'll pay $500 now($300 for a workable solution using precomputed noise), and try to make it worth your while later.
          Last edited by xnihil0zer0; 03-24-2015, 12:45 AM.

          Comment


            Originally posted by xnihil0zer0 View Post
            Is that one using CPU generated noise? Having explored that road a bit, but relatively new to game development and the perils of floating point errors, if anyone knows a way to get identical(or even just somewhat close) numbers out of an HLSL GPU, and a C/C++ CPU, perlin/simplex/gradient noise generator, I will make something really amazing for this project.

            Edit: Additionally, I'll pay $500 now($300 for a workable solution using precomputed noise), and try to make it worth your while later.
            Just your luck, Im working on a GPU based approach to the above terrain generation for my own project, if I get anywhere with it, I will post some WIPs
            NVIDIA GameWorks merged branch (v4.9.2) (v4.12.5) (v4.13 p2)
            Feel free to Donate if you wish to support me

            Comment


              I'll still be making clouds, but if you find a noise algorithm that fits the bill, my offer stands.

              Comment


                Doesnt anyone notice that for really large objects, you need to set them to rediculously low mass to have decent underwater buoyancy? (Without going into detail graphing how handkor caclulates delta, force and gravityZ/-gravityZ is to calculate buoyancy (unless anyones interested in graphs about those relationships, I was going to do it if I needed them)

                I have a cube 8000 units long, 1500 wide and 1900 tall and its calculated mass is around 150,000-200,000 kg but unless I set the mass to 300 (three hundred) kg it does really wonky things trying to set the buoyancy between -1,0 and 1.

                Edit: I should note its a skeltal mesh with 1 bone placed the length of the object and skinned to all 12 tris.
                Last edited by Nsomnia; 03-24-2015, 11:57 AM.
                Tek LLC a personal Candaian Company running BlenderTek & UnrealTek is currently looking for help to bring back submarine simulator gaming with a new genre of sub sims: Cold War! (1945-1991) Operation: Trident SubSim Dev Diary Thread - Donations

                Comment


                  Originally posted by Zeroy View Post
                  One question I have ... because of the day/night cycle I would like to have flying birds particle FX only show up during the daytime so I am trying to use "sunheight" into a BP but I cannot for the life of me get to the Variable! I tried casting to SkyDome but no go ... any help would be greatly appreaciated!
                  Anyone?

                  Comment


                    Originally posted by Zeroy View Post
                    Anyone?
                    I have re-added the math and function in to print the time of day based on where the sun/moon is, its just an extension of BP_Skydome (its hte last function called) would that help?
                    Tek LLC a personal Candaian Company running BlenderTek & UnrealTek is currently looking for help to bring back submarine simulator gaming with a new genre of sub sims: Cold War! (1945-1991) Operation: Trident SubSim Dev Diary Thread - Donations

                    Comment


                      Originally posted by Nsomnia View Post
                      I have re-added the math and function in to print the time of day based on where the sun/moon is, its just an extension of BP_Skydome (its hte last function called) would that help?
                      That should do it yes, I have tried casting to BP_Skydome from another BP but could not get the variables, even after changing them to Editable/Public. Thanks!

                      Comment


                        Originally posted by joshezzell View Post
                        DotCam, quick question about the river tool. I am trying to use it for quick river implementation in our game. We have alpha coming up soon. What baffles me is how to use it. I can use the regular spline tool just fine, but this not so much. It may be a stupid question, but how do you create more control points?

                        That's pretty much the only issue I am having. Although I would love to see the river tool expanded on and given more features.

                        EDIT: Also, is there an installation guide for version 1.0. Haven't done much with github before so I don't really know what I am doing. I guess an idiots guide would do the trick.
                        Sorry for the delay, but to use the river tool you just drag it into your scene. You should see the arrow movement gizmo a one end of the river spline, to add a new spline segment you need to select the point on the opposite end, and then Alt+LeftMouse Drag that point out. You can then move or rotate it as needed (scale does nothing). Just keep using Alt+Drag out for each point you need.

                        If you want to keep up to date I would recommend using the GitHub App for Windows. From the GitHub website, Fork the repo to your personal account and then use "Clone in desktop", which will create a local copy of the project for you to run. Before opening your copy of the project the, open up the app and hit Sync with the Master branch selected to update to the latest release. This will overwrite any changes made to the "base" files provided (if that file is updated), so be warned that it may cause issues.

                        Otherwise just hit Download Zip and extract the files to your hard drive, just double click on the OceanDemo.uproject file to open it up.

                        Originally posted by DIFTOW View Post
                        Has anyone here attempted to run this with VXGI?
                        No I have not tested it at all, but I don't see any reason why it wouldn't work. It is a complex material though (600+ instructions) so it might cause performance issues when used with VXGI.

                        Originally posted by xnihil0zer0 View Post
                        For some reason, I can't build/launch the base OceanDemo(at least the master branch that I downloaded). But, if I turn off the fish manager, using the settings from the vid I posted, I get 70-80 in the editor, 60-70 full-screen standalone, with the editor open, on a 280x. Draw distance there is 5 km, I get 45-50 fps at 10km, 35-40fps with the draw distance turned up to 75 km, though there's some room to play with the scaling function. I'm about to test multiple layers, so we'll see how much that will slow it down.

                        It's a separate actor now, but most of the machinery is in the material so it shouldn't be too hard to integrate it with the SkyDome.
                        Cool thanks for the info, if you are interested in contributing to the project shoot me a PM with your Github user name (and skype so we can chat ). We can set up an experimental branch to test out some ideas, since I am in the process of overhauling the Skydome it would be a great time to try it out and properly integrate it. Let me know!

                        Originally posted by Nsomnia View Post
                        Testing the procedural terrain system.

                        What are possible uses of the getwaveheight in BP? It could be used for a buoyancy system but that'd be too performance hindering, anything think of any good uses?
                        Multiplayer is the main use, but you could also create a new buoyancy system using blueprints now that you can get the wave height at any location. We're still testing out some ideas for the terrain system, there is more content that has not been added at this point. More info on this soon.

                        Originally posted by xnihil0zer0 View Post
                        Also, how weird should I get with this? Any love for aurora, hurricane eyes or fire tornadoes?
                        So long as it is a realistic weather effect, as weird as you want! :P Things like waterspouts, tornado's, and etc would be really cool, but aren't required. But feel free to create anything you'd like!

                        Originally posted by Nsomnia View Post
                        Doesnt anyone notice that for really large objects, you need to set them to rediculously low mass to have decent underwater buoyancy? (Without going into detail graphing how handkor caclulates delta, force and gravityZ/-gravityZ is to calculate buoyancy (unless anyones interested in graphs about those relationships, I was going to do it if I needed them)

                        I have a cube 8000 units long, 1500 wide and 1900 tall and its calculated mass is around 150,000-200,000 kg but unless I set the mass to 300 (three hundred) kg it does really wonky things trying to set the buoyancy between -1,0 and 1.

                        Edit: I should note its a skeltal mesh with 1 bone placed the length of the object and skinned to all 12 tris.
                        I'm looking into this right now, and I do see a similar effect. Need to do a bit more testing, but will get back to you.

                        Originally posted by Zeroy View Post
                        Anyone?
                        I must have missed this the first time around apologies for that. The simplest way is to go into the Skydome blueprint, then find the "SunHeight" variable and set it's visibility to Public (with the little green/yellow eye icon) and save/compile the blueprint. With that set you should be able to access it in another class by casting to BP_Skydome.
                        Last edited by DotCam; 03-24-2015, 04:03 PM.
                        Free Community Ocean & Sky Project || Join us on Discord! || Trello Roadmap

                        Comment


                          Originally posted by DotCam View Post
                          I must have missed this the first time around apologies for that. The simplest way is to go into the Skydome blueprint, then find the "SunHeight" variable and set it's visibility to Public (with the little green/yellow eye icon) and save/compile the blueprint. With that set you should be able to access it in another class by casting to BP_Skydome.
                          No worries, thanks for taking the time. I tried that but will check again!
                          Last edited by Zeroy; 03-24-2015, 07:46 PM.

                          Comment


                            Zeroy this is what bp_skydome is built off of https://forums.unrealengine.com/show...e-of-Day-Setup with an hour comparing the two (dotcams cleaned it up a lot) you can re-add the writeTimeWHatever function and and use something with that. I have it done, but havnt had time to sift through my dozens of test projects for this game to find out where i did that.
                            Last edited by Nsomnia; 03-25-2015, 04:03 AM.
                            Tek LLC a personal Candaian Company running BlenderTek & UnrealTek is currently looking for help to bring back submarine simulator gaming with a new genre of sub sims: Cold War! (1945-1991) Operation: Trident SubSim Dev Diary Thread - Donations

                            Comment


                              Originally posted by Nsomnia View Post
                              Zeroy this is what bp_skydome is built off of https://forums.unrealengine.com/show...e-of-Day-Setup with an hour comparing the two (dotcams cleaned it up a lot) you can re-add the writeTimeWHatever function and and use something with that. I have it done, but havnt had time to sift through my dozens of test projects for this game to find out where i did that.
                              Thanks, I got the Sun height variable via a Cast TO BP_SkyDome, not sure what I was doing wrong before!!

                              Comment


                                Originally posted by Zeroy View Post
                                Thanks, I got the Sun height variable via a Cast TO BP_SkyDome, not sure what I was doing wrong before!!
                                If you want the bp_skydome that prints out the ToD to the log with a print string node let me know I do have it, I can just be a little slow sometimes (sorry Komodo no time for fish!) You basically take currentminute though and divide it by 60 to get minutes and then divide 1440 by minutes or something like that. My math isn't strong of the top of my head, thats where visual scripting is nice.

                                Got the sub rigged up in Maya finally.
                                Click image for larger version

Name:	mayarig.png
Views:	2
Size:	94.5 KB
ID:	1071171

                                Should be no more problems now I can start developing for real. Note to Blender users: Its fine for static meshes. But you need maya for anything skeletal, simple fact of UE4 right now and will save you weeks (or longer, luckilly we didnt get too far). Still have to set this 9000x1500x1700 sub to 300kg (calculated as about 289,000kg) for it to work with buoyancy test points of -1,0,1 and radius 10 but it works. Intrested to see how handkor is going to use the specific gravity of water to do buoyancy. The only buoyancy scripts I've used before cuts it into slices and applies force accordingly. http://forum.unity3d.com/threads/buoyancy-script.72974/ dont know if that helps, its what I used over in Unity (albeit heavily modified)
                                Last edited by Nsomnia; 03-25-2015, 05:57 AM.
                                Tek LLC a personal Candaian Company running BlenderTek & UnrealTek is currently looking for help to bring back submarine simulator gaming with a new genre of sub sims: Cold War! (1945-1991) Operation: Trident SubSim Dev Diary Thread - Donations

                                Comment

                                Working...
                                X