Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Jove 2.0: DX11 Rendering System (Alpha Release)

Discussion in 'Assets and Asset Store' started by Aieth, Aug 17, 2014.

  1. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I'll be working on Jove for a long time, so who knows, it might happen ;)

    Your assumption is incorrect, I am actually talking about a complete solution :) Based off what little interaction I have had with the terrain system, and second hand information about the troubles RTP had working with it, I feel it would be best to simply start anew. How I am going to do this isn't final yet, but it will very likely involve compute shaders, megatextures and streaming.

    I have not gotten to the tree part yet. But hopefully that will work out. The issue I've had so far with terrain is that it gets LOD'd for the shadow rendering, meaning say lod 2 is casting shadows on lod 0, which looks horrible. It is fixable by forcing Terrain.heightmapPixelError to 1, but I have no idea of the performance implications of that, I am not very familiar with Unitys terrain system. I also need three textures per material, unlike Unity which just uses two, so that has to be handled as well, and I'm not sure how to do that for more than 4 materials at once. If anyone reading this has worked with Unity terrain previously and knows how to solve these issues, you are very welcome to explain it to me :)

    Triplanar is a real performance hog, so we'll see about that. It's going to be a pretty major system, I estimate on par with the time it is going to take to implement the whole ambient system. Basically I want to solve the issues of
    1. Texture limits
    2. Size limits
    3. Draw distance
    4. Detail limitation (more detail up close)
    5. Vegetation rendering
    6. Automatic vegetation placement tools
    7. Streaming
    That said, since it was just discussed previously, this terrain system would be DX11 *only*. It won't work on DX9. I'm designing Jove to be the future, and that means taking advantage of everything DX11 has to offer. Even if DX9 support is relevant today, it won't be in a few years.

    At the risk of being "that developer", I'm gonna answer when it's done ;) Don't count on the terrain system this year. I can't promise anything, and I'm sure this is gonna blow up in my face, but I see the whole ambient system being done in 2014.

    I would of course be very happy to see Jove used in your project. The basic terrain is sure to be in, but I can't guarantee that any part of the new system will be available though. When time comes, if you are interested in it, I wouldn't mind working together with you (or someone else for that matter) while developing. User input when a system reaches the "usable but not done" stage is invaluable.
     
  2. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    While RTP is extremely impressive I disagree that it is the best solution for Jove. I am fairly certain that I can develop the terrain system I want to within a couple of months. RTP has to work with the limits of regular Unity terrain. The reason Jove is where it is now is because I scrapped everything and started from scratch and didn't shy away from DX11 technology. And I intend to do the same with terrain later on :)
     
    hopeful likes this.
  3. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    Oh, if you intend to throw away the existing terrain system on the Unity side (with it's irritating approach to LoD and vegetation, nonexistent streaming, current layering style, etc.) instead of doing RTP-style shader replacement and tool overlay for it, then I'm all for doing things from scratch. With DX11, with all geometry managed on your side and so on - yeah, RTP porting is out of the question.

    As about triplanar - it's not really required in most terrains, traditional mountainous scenery can be nicely rendered through planar projection. You can also do a very cheap trick for Big Canyon style sediment layering - multiply the color of the terrain on a 1px wide vertical gradient texture tiled over certain height. It's a nicely working effect that requires no usual triplanar expenses to add some subtle vertical layering.

    Another important feature that kills the need for triplanar is terrain blending for arbitrary meshes - generally, you never want cliff faces to be heighmap-based, they have extremely complex shapes that can't be represented by it. So most games have artist-authored cliffside meshes that are smoothly blended into terrains. Provide that (RTP does that by fading out meshes to transparency depending on vertex color alpha baked from points of intersection with terrain), and you cover most of the cases for traditional mountainous terrains.

    But yeah, triplanar will be an extremely popular demand for people who do caves or use Jove with voxel based surfaces. RTP specifically covers that use case, supporting whole feature set on arbitrary meshes with only minor differences.
     
    Last edited: Sep 21, 2014
  4. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
  5. Jesse_Pixelsmith

    Jesse_Pixelsmith

    Joined:
    Nov 22, 2009
    Posts:
    296
    @Aieth Cool thanks for the good, honest assessment, So from my side of things, especially considering you want to overhaul the whole terrain system. I will probably shift my "Plan A" to be the traditional methods, instead of Jove, and basically not use it for now.

    But instead of asking for a refund or anything like that, when the time comes I'd like to take you up on the offer of working together to test out the system in my (open world, dynamic buildings) use-case - I think it would be beneficial for both, and I see Jove as having so much potential for the project in the future. I'll keep an eye on this space and maybe send you some stuff privately on my game a month or two down the line.

    @lazygunn I saw this a bit back - looks like they are still in the info-gathering stage, so I don't expect anything actually usable for at least a year if not more (based on nothing more than the UI and the 2D tools speed, and my gut feeling). I could be way off, but they didn't even talk about it at Unite, not something I'm holding my breath for any current projects.

    By the time they get around to getting something, I think @Aieth will have quite a cool solution. Provided it works with speedtree :D
     
  6. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    How do I get 2 cameras, one that renders another object(in a specified layer) on top of the other camera.
    In default unity you would do depth only, but I dont know how to do with jove cameras :3
     
  7. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Great, looking forward to it :)

    Currently that is hard to do, assuming you need two Jove cameras. If you for example want to render GUI you can still use a regular Unity camera. It is a planned feature, but it isn't as simple as it might seem, given that Jove uses multiple render targets instead of just the one.
     
  8. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    I just now had some time to follow up with your generous information, are you saying Amplify Texture 2 works with Jove?
     
  9. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    Not sure, try it yourself though, I think it's still in the free beta and available for download.
     
  10. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    OK, will do... I also left a message on their board so maybe they'll look into it as well... They mentioned adding some nodes to shader forge but not sure that will help much with Jove.
     
  11. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I'd like Jove to have some integration with Shader Forge certainly because for one it would make it much easier to make shaders that operate in a way i'd like to - More easy to make shaders akin to a 3ds max/maya + vray style where masks, particular 'maps' like fresnel effects and so on be introduced and stacked at any point in the shader and different shaders created per object, almost, easily and quickly (Hand coding shaders this complex and with such variety just seems unsensible), and secondly any other Unity plugin with nodes for Shader Forge available be, hopefully, integrated with Jove via Shader Forge in a nice holistic sense, rather than making little agreements and alterations all over the place to get some integration individually, Amplify nodes working alongside Jove nodes being an example

    I've looked at the Skyshop plugin for Shader Forge and although it's beyond my understanding on how to make a Jove node act equivalently (take any shader forge input and create equivalent output) i'd like to think someone more capable could figure it out
     
  12. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Shader forge is becoming (if not there already) the defacto standard for creating shaders for unity, and it seems everyone is writing nodes to support it, I too would humbly request SF integration.

    My hand goes up to vote...
     
  13. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I don't know if it adds any credence to the idea but the creator's recent posts in the shader forge thread seem to indicate a big change in the shader compiler, that might be a lengthy undertaking but might make it more flexible and renderer-independant and such. This might be driven by the fact that Unity 5 introduces a new 1 pass deferred renderer and probably hence a new plethora of unity idiosyncracies and twisting something like shader forge to fit Unity's various renderers explicitly is quite inflexible and would be increasingly hard to maintain. That's what I took from it anyways, might be wrong
     
  14. Zicandar

    Zicandar

    Joined:
    Feb 10, 2014
    Posts:
    388
    For people interested in how jove can look in a non realistic game:
    http://forced2.com/viewforced . Note that this is NOT the latest version of jove, and even then it has some modifications.
    And yes, I'm one of the 2 people working with Aieth. He does most of the code, I mainly do small changes / stuff to it.
    Warning however for those going for non-realistic, it is VERY useful having someone knowledgable enough to do some modifications to his shaders and/or code. As for example we wan't a more traditional bloom, and some other things not to be so "realistic", however in general it is fully viable to use as is!
    I'd be happy to recommend it for non-realistic games, but it really depends on HOW cartoony you wan't to go!

    As for supporting OpenGL and DX10 (MAYBE Dx9), it's something I have looked into, and if you avoid some of the new "awesome" features such as fog, it seems fully viable! Going to attempt the implementation this week. If all goes well it might even be part of Jove itself.

    As for shader forge becoming a standard, sure yes, BUT most of the time with this type of rendering you don't need more lit shaders, it's generally effect shaders you wan't to create with it.

    If anyone want's to discuss what we have done with Jove for our game feel free to pm me. (Optimally with a skype name as I seldomly check unity forum pm's.
     
    hopeful and JecoGames like this.
  15. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Hey! It's interesting to see some informed talk on Jove in an NPR setting so I might just add you. I'm looking at trying to implement a couple of filtering approaches by Kyprandis at plausible speeds as to be usuable in a game, both heavily focussed on NPR results - anisotropic kuwahara filtering, and coherent shock filtering, input would be interesting

    And yes for NPR and shaderforge I would indeed be more interested in various effect shaders, although per-object, i'd just like to create them pretty experimentally which doesnt go so well with hand editing for me, and because an NPR look for me would be principally created with an image effect, having the flexibility to experiment easily would be great

    Making an NPR game is kind of on the sidelines for me at the moment, mind and i'd likely be looking at implementing these effects way before using them myself, but id be interested in seeing how jove went with them, as i'd be going all dx11+ with them
     
  16. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Well this is what I the folks at amplify creations said:

    I responded that Jove is no longer just shaders but a whole new rendering pipeline for Unity, so we'll see...
     
  17. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I was talking about this with a guy who's behind the Indigo hybrid raytracer and was offhandedly saying its a great new renderer for Unity ive been using and he seemed entirely surprised you could both do that and someone was taking it on, and after he looked into it more was pretty impressed. So there you go! I then said a load of things to encourage him to tell his boss they definitely need to do a gpu lightmapper and integrate it with Unity, so i'll maybe be talking to him about that in future and i'd definitely be thinking of Jove when it comes to using a system like that (An extremely fast lightmapper could be as useful a tool as Knald is with Jove because the improvements easy access to quickly generated light and transmission maps could make to realtime graphics scene design composition in general)
     
    blueivy likes this.
  18. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    630
  19. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Hi Aieth how feasible would it be to add a convincing global realtime reflection system to Jove ? I was playing with Jove in combination with Global Illumination Proxy to see how well it worked. I noticed that the global cube map system in Jove wasn't really suitable for indoor settings so turned it off. I also wanted to test how well the proxi GI worked with jove lights and so turned off ambient lighting and everything other than direct lighting from Jove.

    I put 60 Jove Lights in a room and told them to do 2 bounce GI with Global Illumination Proxy. The result was very efficient convincing GI that could be used in completely dynamic scenes. The only thing that it wouldn't give you that a more performance intensive solution like voxel cone tracing or Path tracing would give you is dynamic reflections.

    The thing that occurred to me though was that even in voxel cone tracing the reflections aren't that accurate because they are only rendered at the resolution of the voxel grid.

    Could you add a mode where you could render a Jove camera to a cube map in Jove at a low resolution in realtime. If this cube map was projected back towards the position of the main camera and combined with SSR to produce higher resolution reflections for reflection information it could pull from screenspace then you would have a system that could be used in completely dynamic scenes.

    You would then have a system that wouldn't require any baking or probes so would be suitable for games that required dynamic scenes.
     
    Licarell and hopeful like this.
  20. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Had not seen that, thanks :)

    Rendering a cubemap at the camera position is an old trick used by many games, but it has increasingly fallen out of favor. As bandwidth has become the limiting factor and not memory or processing speed rendering a cubemap is becoming more and more expensive. Anothing issue is that a cubemap needs to be filtered to look properly. You can skip that but it reduces quality.

    That being said, I feel the best approach for a completely dynamic level that can't leverage baked lighting (Diablo 3 uses baked lighting for example) or is completely outdoors (so a global cubemap approach works) is SSR combined with LPV. Unfortunately, the scenarios were baked lighting or a global cubemap are not enough are pretty few. What kind of scenario are you working on?


    Speaking of lighting, I made an example that illustrates the difficulties I was talking about previously. This is a case where a cubemap simply doesn't cut it for diffuse lighting. It also demonstrates how the new lightmap tech looks.

    BakeGlobalComparison.png
     
    braaad, JecoGames and vivi90 like this.
  21. TheHenk

    TheHenk

    Joined:
    Mar 24, 2011
    Posts:
    13
    Aieth, is that groovy lightmap tech of yours available yet? IT looks great!
     
  22. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Aieth my game idea is set in an indoor enviroment but the issue is that I need the walls to be destructable so can't really rely on baking GI and reflections. Obviously baking will always give the best results but isn't really suitable for dynamic games. I personally find it a bit visually jarring in games when the static objects that have been baked look really good but the dynamic objects look nothing like them. I would prefer consistent visuals even if those consistent visuals aren't quite as good. Those baked lightmaps certainly look good though.

    I think the next thing you should add to Jove is point light shadows and SSR as that would improve all scenes. I think regardless of whether people have a game that can use baking or not there needs to be some sort of dynamic reflections as it would be visually jarring to have some objects reflect and not others.
     
    Ghosthowl, hamyshank and hopeful like this.
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Could Candela SSR work with Jove for the screen space reflections ?
     
  24. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Coming next patch :)
    Ah right I forgot about destroyable environments. You're right, in such a case it is hard to manage without a completely dynamic solution as you have nothing static.

    SSR is coming in the next patch and point/spot light shadows are being worked on by a teammate. They should also hopefully make the next patch, no promises there though.

    Candela SSR will not work with Jove without some heavy modification. It is designed to work with a completely different system. Even if it did work, adding the reflection on top of the rest of the image isn't very physically based :) You would end up with reflections from both Jove and Candela at the same time.
     
  25. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
     
  26. JecoGames

    JecoGames

    Joined:
    Jan 10, 2013
    Posts:
    135
    Sounds cool:) But I have one question,will your lightmapper support emissive objects as light sources that have shadows as well as light?(static of course)
     
  27. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Yes, that will work. You will be able to light a room without using any lights, using baked light, probes and SSR.
     
  28. hamyshank

    hamyshank

    Joined:
    Jan 31, 2013
    Posts:
    88
    I think Jove is the best system out there by far, I'm very happy with my purchase and I wish the best for Aieth and Jove in their development.

    And regarding the lightmap discussion I would like to see it not just be one way or another - coming from a non technical background. I personally would rather use what is less restrictive and not requiring me to do things a certain way- as in more work (lol). So, if the baking process was pretty much automatic and dynamic - which to me is what makes Jove special is the "it just works" way. Just my .2
     
    Aieth and JecoGames like this.
  29. braaad

    braaad

    Joined:
    Oct 4, 2012
    Posts:
    102
    @Aieth a friend of mine has a GTX 780 and is having an issue with Jove in my builds. A standalone build takes over 1 minute to start (just a black screen) and when it does start he is getting sub 30fps. I got him to try the dropbox demo that you have as well and it suffers from the same issue, very long start time and ~17fps.

    Have you had any reports of anything like this? There is nothing in the logs.

    I am investigating further but just thought I would check with you, or anyone else who has had a similar issue in the meantime.

    Edit: Turns out it's most likely a driver issue, but I will leave this post here just in case.
     
    Last edited: Oct 1, 2014
  30. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    If there is nothing similar in the editor profiler on your side, then yeah, some sort of a driver problem or background process hogging resources is the most likely issue, limited to his PC.
     
  31. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    sometimes such problem appear if you run 2 applications in DX11 mode.
     
  32. braaad

    braaad

    Joined:
    Oct 4, 2012
    Posts:
    102
    Yeah, 99% sure it's a driver issue resulting in very poor compute shader performance. Might get him to try another game that uses them heavily just out of curiosity.

    Thanks, I will investigate this as well.
     
  33. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Thanks :)
    About lightmaps, you have nothing to worry about. Jove is going to support a bunch of different modes, like I wrote a few pages back. The current mode with global cubemap + ambient from reflection probes isn't going away, I'm just expanding the list of options.
    I suspect that to be a driver issue like you said. If you can't fix it, PM me and we'll get it sorted :)
     
  34. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Will update be soon, really need those point light shadows
     
  35. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Soon is a really subjective measure of time. I'm afraid, at least according to my definition, it won't be soon :) This new patch is really large and there are a lot of things I want in there. It is likely going to be the second last patch before beta (I might split this patch into two, but we'll see). It is being worked on though, so don't worry, it is coming.
    Spotlight.png


    I've also been working on a small demo scene to showcase the new lighting capabilities. Actually working with the lighting in person has also helped me catch countless small work flow idiosyncrasies and bugs. This is going to be included in the next patch
    BakeHQ4.png
    BakeHQ5.png
     
    Last edited: Oct 3, 2014
    JecoGames, braaad, blueivy and 6 others like this.
  36. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    Looking bloody great!

    P.S.: Any plans on implementing PCF filtering not just for shadows but also for the Jove logo? :p
    Had a few seconds of confusion looking at the shadow until I noticed the geometry that was casting it, haha
     
  37. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    that reflections in room going from cubemap?

    and yes, looks very cool =)
     
  38. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    If I could make a better logo I already would have :p
    Yes, box projected cubemaps at work. SSR isn't in yet, but that is further going to improve the reflection quality :)
     
  39. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    Aieth please use this one on your next image, those shadows drove me also crazy :D
     

    Attached Files:

  40. Mauri

    Mauri

    Joined:
    Dec 9, 2010
    Posts:
    2,663
    Well...



    :p
     
  41. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Maybe it needs a lightning bolt. :)
     
  42. Olafson

    Olafson

    Joined:
    Aug 7, 2012
    Posts:
    255
    THe last pictures, is that baked or realtime?
     
  43. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Style reminds me of Age of Empires :) I got three different logos sent to me within an hour of writing that. Thanks everyone for your contributions :p
    It is baked, using the new GPU lightmapper that will be included in the next version :)
    EDIT: As in, the indirect light is baked. You still have reflections from probes (and when it is done SSR) and dynamic shadow casting without any seams like dual lightmaps have.
     
    8Infinite8 likes this.
  44. 8Infinite8

    8Infinite8

    Joined:
    Jul 27, 2013
    Posts:
    112
    Aieth, this is looking great!! Thanks for the most recent update. I think once you get SSR in a lot of people will jump onto this. Really looking forward to it. I really hope something can be done about Unity's shadows though.
     
  45. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Thanks! What do you mean Unity's shadows? Do you mean splitting Jove into a shadows only version? Unity's shadows system isn't being used at all.
     
  46. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    For those of you who wonder about baking times, they are looking pretty good. Since it does a monte carlo integration (basically, it does the real deal, no hack) the only real quality setting you get is amount of samples. You can of course tweak the strength of the sun, lights, sky and bounces etc, but those are more artistic options than they are quality settings. The light map used in the image below is a low quality light map computed using 900 samples. On a GTX 560ti, which by now is a four generations old mid range card, it baked in roughly 10 seconds.
    BakeFast.png

    Also, it is time for a logo upgrade. I am most likely going to be switching to this, or something very close to it
    NewLogo3.png
     
    JecoGames, hopeful and blueivy like this.
  47. 8Infinite8

    8Infinite8

    Joined:
    Jul 27, 2013
    Posts:
    112
    Wow great. So you generate your own real-time shadows? What method do you use to overcome Unity's nasty soft and hard shadow implementation?
     
  48. janpec

    janpec

    Joined:
    Jul 16, 2010
    Posts:
    3,520
    Very nice lighting. I am wondering how much performance impact does this rendering solution has overall, especially for example on complex scenes.
     
  49. vivi90

    vivi90

    Joined:
    Jul 28, 2010
    Posts:
    78
    Looks nice, but how big is the generated lightmap in that scene?
    Is it a complete lightmap (direct light and indirect light combined) and how would the shadows look at the moment if you were to put dynamic objects into the scene after the bake?
    I understand it's work in progress, I'm just curious :)


    If you are replacing the Jove logo (thank god, or rather, thank Jupiter : p)...
    You could replace the O with an Omega Ω, or do some other weird greek letter stuff

    JΩVE ... JΩVΣ

    I know, Σ is sigma and not epsilon. But might look interesting. Just a random thought : )
     
  50. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    There is no method to overcome anything, Jove implements entirely new lighting pipeline from scratch and is not using Unity lighting at all.

    Biggest benefit is actually how flat the performance costs are. Full deferred rendering cares little about things you cram into the image - same calculations are still performed over the same number of pixels. Stock Unity forward and stock Unity deferred don't really scale for large scenes as well as Jove does. Performance hit is relatively low and stays low both for an empty cube room with three lights and for 1m poly scene with 100 lights (no significant overdraw and shader disparity).