Search Unity

Jove 2.0 - Replacing the rendering pipeline

Discussion in 'Works In Progress - Archive' started by Aieth, Feb 22, 2014.

  1. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Are you talking about basically a lens flare? If you're sitting on any nice presentations/blog posts, feel free to share :) I have yet to look into lens flares, but I definitely want to do something.
     
  2. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Hmm, well in this case it's shared territory I suppose, i'd rather the effect focus on the bloom than the flare however as it's quite a particular effect and not one i've seen get enough time vs. lens flares all over the place (The vaseline on the lens is certainly not related to lens flares). The article pertained to encoding textures into 2 channels but i'll pm you about it
     
  3. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    I'm sad to not have Unity Pro, i will not be able to use your jove 2 :(
    Did you try inferred rendering to render transparency ?
    Also, i saw that Crysis 3, to reduce size of g buffer, use the yuv space for color buffer, so they use only 2 channels : y in the first and u and v interleaved in the second one. They decode it after.
     
  4. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I'm crossing my fingers for Unity opening up RenderTextures or changing their payment model for Unity 5, to widen my customer base ;)

    I'm gonna go with a standard back to front sort since Unity already has that built in. For particles I'm gonna experiment with an approximate order independent method, but I don't have high hopes for that working for stuff like glass (too little control).

    As for the Crytek YUV stuff, yeah I've seen it and I'm keeping it in mind if I ever need an extra channel :) Since they come in 4s (ARGB texture) and I need 12 channels there's little point in interleaving data though, going from 12 to 11 isn't gonna boost performance unless I squeeze down to 8 which isn't gonna happen :p
     
  5. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Hope so too, though i have unity pro. The update for unity 5 costs at least 600$ which is not so attractive at the moment. I know that a lot of unity users are tempted to try unreal and in my opinion not without a reason. I am sticking with unity for now but if unity 5 is a let down i will probably give unreal a shot. Unitys strenght lies in the community and the assetstore producers, they make unity what it is but unreal also is starting up a market place.

    Regardless of that i will definitely get my hands on Jove 2, it looks VERY promising :)
     
  6. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    Yes, i hope too. Unity Free games looks a little outdated.
    For Jove 2.0, about global illumination, i saw this : http://graphics.cs.williams.edu/papers/DeepGBuffer14/
    It looks like path tracing at low res, with bilateral blur, noise filtering and temporal blur. It's awesome, i tested their demo, runs at ~60FPS on the low gi quality with a GTX 570.
     
  7. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    That is absolutely lovely, their demo was maybe the only time i really stared at a sponza demo. This thing needs to go in somewhere pronto
     
  8. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    Yes. This screen (http://graphics.cs.williams.edu/papers/DeepGBuffer14/9.png) looks CGI (except the aliasing on the leafs) but it's in realtime !!!
    This method is the future i think. It's far bteer than Unity's Enlighten and all GI we can see in the market.
    If implemented in Jove 2.0, your product will be incredible.
     
  9. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I've seen that before and yeah, it is a cool technique. However, new techniques that revolutionize everything with no drawbacks are few and far between :p It's been a while since I read that paper, but I remember that something about it, at least for me, made it unfeasible.
     
  10. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Wrapped up work on translucency. This is running in the main lighting pipeline and is therefore "free" (theres a cost of course, but that cost is being paid no matter if the object is translucent or not so you might as well use it).
    Translucency is primarily intended for stuff like vegetation and cloth, but could be used for skin and hair as well if you want it to be cheap or you can't wait for me to implement proper skin/hair shading :p

    The wonky cube thing in this picture has a point light behind it. The strength of the effect is exaggerated for the purpose of showing off the technique, everything is fully artist tweakable.
    Translucency.png
     
  11. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Does the translucency work with the clustered rendering ? If I had a particle spline with your lights attached move behind an ice block for example could I add translucency to the ice ? Also I suspect that the limitation with that GI solution is the cost per light. I'm assuming it is very efficient for one light but not feasible for many. I think the only feasible way of having GI for the foreseeable future is to only have a few dynamic lights contribute to it. Whats your plan with GI , is it to have your clustered lights only generate direct light but have another type of light that could perform GI ?
     
  12. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Still working on that first panel, hah! Like Rome, modern modelling workflow wasn't built in a day i guess. But least now I will assume translucent materials have the clear
     
  13. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Translucency works with clustered rendering. I could toss in 200 point lights behind that cube if I wanted to ;) So doing an ice block as you say (why didn't I think of that example?!) would work perfectly. There are no special rules or conditions to keep in mind, I've purposely designed Jove around that fact. Every technique that made it in scales with everything else. And to answer your question, a standard light still only does direct light. We're still too far away for dynamic GI from hundreds of light sources (the fastest dynamic technique I know of, Crytek Light Propagation Volumes, only does a few lights).

    As for GI, I am to start with going to tie it together with the IBL system. Then I'm either going to extend it to use GI probes or just wait for Enlighten and incorporate that. We'll see what comes first, I have a lot of stuff to do ;)

    Not like riding a bicycle huh? :p I have faith in you young one :)
     
  14. joni-giuro

    joni-giuro

    Joined:
    Nov 21, 2013
    Posts:
    435
    Macbook pro retina here:
     

    Attached Files:

  15. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I wish I was young, or at least my body matched how old i want to be. Knackered, hot, eating donuts provided by fiancee while zbrushathoning like a champ to get my head around it all. And it's the same as riding a bicicle cept the bicycle is now a Ducatti, hah
     
  16. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Unfortunately Jove is a DX11 only product which means it requires a Windows computer. I'd love to provide a mac version as well, but the technology just isn't there yet, I make heavy use of features not available on a mac.
     
  17. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Hey everyone!

    Progress has been swift these past couple of days, Jove 2.0 is rapidly closing in on a releasable alpha state. Clustered shading is done, physically based bloom is done, transparency is in, translucency is in and now localized IBL has found its way in (watch the spheres near the red wax blob).
    LocalIBL.png

    I've been meaning to ask, before I start working on a localized fog, what are the requirements of the future users of the product? It's going to be fully volumetric, that's already a given, but here's thing thing. Either I make the fog entirely code driven, meaning you can animate via a wind variable and it then uses noise to look like moving fog. Or I can add the ability for artists to modulate the thickness of the fog via primitives (e.g cover a room in a cube and make it twice as foggy as the rest of the building). That comes at a cost however, performance wise. It's not huge, but there is a cost and that combined with the fact that it's going to take me some time to implement, I was wondering if that is a feature people are actually going to use?
    So the question is really, would it be useful to be able to control the density of the fog with volumes? And if so, how useful would it be?
     
  18. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,902
    hi aieth,
    it looks very promising! great job you are doing there i guess.
    localized volumetric fog might be very special – but what is about (volumetric) particles receiving and casting real time shadows – and lighting of course? i think this is much more general...
    i happened to come across this presentation which looks quite nice i think:
    http://www.bitsquid.se/presentations/practical-particle-lighting.pdf

    lars
     
  19. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Hey lars! Big fan of your work. Thanks for the nice words.

    I'm gonna do particles in a patch after release. I want to do a compute shader powered system and I've got a few ideas there ;) I've got that presentation in a folder I've saved for the occasion, thanks for the link anyway though.

    What I mean by volumetric fog is, to be slightly more technical, is I want to ray march the view frustum and at each point sample the lighting of every light affecting said point. This is possible due to the way I've made the renderer and it's gonna make for some spectacular effects. Fog takes up too much volume to be effectively done with particles, while stuff like smoke effects are perfect for particles.
    When I wonder if people would actually use fog volumes, I'm talking about something along the lines of this http://udn.epicgames.com/Three/rsrc/Three/FogVolumes/AutomaticConstDensityFogVolume.jpg (more fancy, but you get the idea with primitives being used to indicate "here be fog"). Of course, you could mimic the effect with particles but it would be a lot more expensive and wouldn't be as pretty
     
  20. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,902
    hi aieth,

    Hey lars! Big fan of your work. Thanks for the nice words.​

    same here! you are doing a great job. thanks a lot for that.
    lars
     
  21. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    I guess I can see myself using it where I have a dingy dusty room that has a slight fog effect then a lamp with a cone volume that would have a more pronounced fog just because there is a light there with small particles floating through to give motion.

    That or windows with the same effect coming to mind... What would be really cool is to have cookies effect the fog volume...
     
  22. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    The last screen looks like UE4 :)
     
  23. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    What do you mean by cookies affecting the fog? If you ignore the fog volume stuff for a second, do you want a light with a cookie to interact with the fog in any special way?

    I'll take that as positive feedback ;)



    Been working on finalizing the IBL system and refractive glass shaders (common transparency is already in). Since a picture says more than a thousand words, here's glass in Jove 2.0
    JoveGlass.png

    There's two kinds of glass shaders, probe based and grab based.
    Grab based simply "grabs" the background (opaque objects) and samples this image to create the distorted look when grass is in front of another object. This allows refractive reflections of characters for example. The downside is that the grab pass operates in LDR (if anyone know a way to force Unity to go HDR, please do tell!) so really bright stuff loses its edge when seen through the grab pass glass.
    Probe based means it gets the environment color from an environment probe, it means low resolution (compared to the screen texture used by the grab pass) but more accurate reflections (since its a cubemap and not a flat texture), larger value range and it is cheaper than the grab based one.
    Both can naturally be alpha blended as well, if the user so desires.
     
    hopeful likes this.
  24. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    Good ! Is tthe reflections behind are ssr ?

    Yes, you pushed Unity 4 Graphics to UE4's level, or better !
     
    Last edited: Jul 22, 2014
  25. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    100% getting this one release great work so far!
     
  26. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    OK so here is a scenario that I will plan implementing... I have a room with low ambient light and off screen I have a light shining through a cookie that is in the shape of fan blades, the cookie is turning to emulate a fan turning, the fog is more pronounced in the lit volume of the light than in the rest of the room... clear as mud right?
     
  27. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    The reflections are either prebaked for the probe shader or "grabbed" for the grab based shader. Grab basically means that the shader "grabs" the screen texture before rendering the object and then gets it's color by sampling that texture. Thanks for the great feedback!

    Thanks, makes me glad to hear :)

    I see what you're planning, it should be possible. Your scene should work great :)
     
    Last edited: Jul 23, 2014
  28. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    How much are you looking for selling this asset for I would happily pay 200 for it :D
     
  29. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I'm currently selling Jove 1.0 for 65$. I intended to keep patching that but I ran into so many issues working around Unity so it kind of spiraled into a major undertaking which is ending up as Jove 2.0 :p It's not gonna be a separate product, I'm simply going to release it as an upgrade to Jove 1.0. As I upload the alpha I'm gonna bump the price to 95$, and then increase it further with every patch.
     
    Last edited: Jul 29, 2014
    Tiny-Man likes this.
  30. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Awesome pricing, ill wait till Jove 2.0 comes out before buying it, so is release expected to be in early August?
    If so big thumbs up
     
  31. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Yeah, early August is the date I've set. I'm on vacation until the middle of August, so I have all the time in the world to work on it now :)


    As for the list of stuff to do before release that I posted on the previous page, this is how it looks like now
    1. Clustered shading - DONE
    2. Bloom - DONE
    3. Localized IBL - DONE
    4. Rework sky
    5. Local fog (in addition to atmospheric scattering, local fog needs more precision and volumetric lighting than far away stuff does)
    6. SSR
    7. Virtual camera* (bloom really goes here as well, but as it is a more prevalent effect I bumped it up).

    Finished first three, added reworking sky and swapped priorities of fog and SSR. This is the current roadmap, how many features will make it to the first release I do not know but those that do not will follow in patches right after. I've been going over the code and refactoring everything and I realized there's a lot more stuff I can do with the dynamic sky so I decided to rework it. Still going to use the same technique but make it more... applicable to a game envrionment.
     
  32. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Any shiny new updates?
     
  33. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Skyshop is 125$, if Jove system would be more expensive than 90$ , then perhaps something would justify it like performance. I'm curious how would perform Jove in a complex game scene ? Could it be some demo scene using many shaders to mesure the impact of shaders ?
     
  34. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    I disagree that this should be under 90, due to the fact it brings so much more into unity, a custom rendering pipeline, PBR (which skyshop doesnt have), SSR etc
     
  35. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I've spent the last days working over the code, refactoring to improve readability, performance improvements and generally fixing small "TODO: Fix this later". I've also been simplifying names and presenting more information to the user. All in all a lot of stuff that makes for a better user experience, but not exactly the material that beauty shots are made of ;) I did however have a go at the shadow mapping to fix a few things I've been putting off. I redid the sampling distribution and generally improved the soft shadows. I took a few screenshots to show you the looks at different quality settings.

    Shadows1.png Standard point sampling, hard shadows


    Shadows2.png Low quality soft shadows, notice the jitter along the edge. Far less visible on a texture than a smooth plane though


    Shadows3.png Medium quality soft shadows, jitter less noticable. Penumbra is slightly larger since the smoothing can handle it


    Shadows4.png Highest quality, jitter is hardly noticable even on a smooth plane. I also increased the penumbra, giving very smooth falloffs
    The jitter (the noise in the shadow falloff) is caused by a random rotation of the samples. There is basically a trade off between banding and noise. If you dislike the jitter you can turn it off and have banding instead.

    What is wonderful about full deferred shading is that the shading complexity, as in the performance requirements, is the same no matter the scene. Lighting takes the same amount of time, the only difference between a scene with 1 mesh and 100 mesh is the cost of processing the vertices and rendering to the screen space GBuffer. Basically, it means that you only pay the cost of a pretty simple shader per object, the lighting cost is independent of the amount of objects and only dependent on the amount of lights.

    Jove 2.0 is already battle proven, it is being used by an upcoming game set to release to XBox One, PlayStation 4 and PC later this year. While I alone am responsible for the commercial version of Jove, I have been developing it in cooperation with said company and an independent developer. I can unfortunately not reveal which company at this time, so bear with me :) For now you will have to take my word for it.

    As for the pricing, I do not mean to tout my own horn but there really is no asset that even comes close to this. I mean, if I split Jove 2.0 into several unique products and priced them competitively in their respective segments I could probably sell the entire thing for 300$-500$. If you also factor in that each part integrates seamlessly into another, and that the performance because of that is a lot better, the pricing is becoming justified. Do keep in mind however that what is being released in August is an alpha, that is why I have chosen what I believe to be a low price of 95$. When Jove 2.0 reaches its finished state, as in leaving beta, I see the price rising to at least double that. As I said, there is really nothing like this.

    If you have any more questions or concerns I'm glad to answer them :) Hopefully Jove will prove its' worth to you in a few weeks.
     
    Tiny-Man likes this.
  36. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Will you do like particle shaders in the future?
    Keep up the good work :)
     
  37. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I have a last question, will Jove 2 be as good as Unity 5 shaders ? Will Jove 2 not be obsolete when UT5 will be available ?
     
  38. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Welp... I broke my cardinal rule (never buy before it's proven)... I purchased Jove 1.0... I figured I get it at the steal price of 65$ in the hopes that Jove 2.0 will perform as well as it reads... augh...
    Ah well, I'm still at the character model/rigging, environment building stage, so by the time I get around tuit Jove should be ready for assembly.
     
  39. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Haha i bought Jove 1.0 ages and ages ago and i think i only imported it once, it seemed very strong but i was dipping my toes in everything and i was swayed by popular movement. I think it was that sway in people that inspired Jove 2.0, and i hope it works out very well
     
  40. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I'm gonna port Unitys default particle shaders to Jove, and possible add lit versions as well, before releasing the first version. I do want to create my own particle framework later on, probably doing GPU particles, but that is further down the line.
    No, Jove will not be obsolete. I can see why you would think that and I'll do my best to explain why it isn't true. Unity is a general purpose engine made for running on anything from a smart phone to a high end computer. This is reflected in the choices they make during development, most core features work on the entire range of possible hardware configurations. Without getting too technical, this basically means that they can not go all out on fancy features due to the restraints they have placed on themselves. Unity, at least for me, has always been about the flexibility of the engine and not its base features.
    I, on the other hand, have no restraints placed on me. I'm primarily looking at building a DX11 renderer, with some support for DX9/mac. This means heavy usage of compute shaders and things that are simply not available on other platforms. Since I can focus on fancy stuff without having to care about everything else, Jove is definitely going to be "more high end" than Unity just by itself. Of course, stuff like Geomerics Enlighten is gonna be awesome, but there's no reason I can't integrate that into Jove ;)
    I'll take as a sign that I'm doing something right ;) Your support is much appreciated!
    I hope it works out too :p



    I took a break from cleaning code and fixing the UI. I had to do something fun instead. So there's now two new checkboxes per light, "Cast Transparent Shadows" and "Colored Transparent Shadows". The below image is the result of both of them checked!

    Shadows.png
     
  41. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Again... I just shipped my pants!!
     
  42. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I should add however that you can currently only have one shadow casting directional light :p Point and spot light shadows (as well as light cookies) are not in yet - but up high on the coming features list - and more than a single directional light shadow map is not possible, and will not be possible, with the way I've made Jove (the memory requirements would be way too large)
     
  43. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Will not UT5 finally offers same shaders as Jove 2 and same lightening techniques using Enlighten or some other non announced features ?

    That's a choice to choose a reduced PC market using heavy demanding renderer indeed.
    One again who says Unity 5 will not propose several lighetning solutions like heavy demanding and as complete and good as Jove 2 , and simple forward standard renderer and simple shaders ?
    I think we will only know within some month at Unite meeting.
     
  44. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I believe Unity 5 does a specular texture based blinn-phong with lambert diffuse. I could be wrong, but if such is the case then no UT5 will not offer the same shaders as Jove 2.0. Also there is far more to a renderer than its shading model, atmospheric and volumetric effects play a huge part as do post processing, all of which I am very confident about. Lighting is only a small part of a pipeline, had lighting been the only thing I would have been finished with Jove 2.0 in February/March, since then I've been working on other things ;)
     
  45. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Will it be some possible version for Unity Free later ?
     
  46. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    Not unless Unity decides to release RenderTexture functionality for Unity free. Jove uses RenderTextures for literally everything. I'm hoping they do for Unity 5, but I don't think it is very likely.
     
  47. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,902
    all i dream of is support for open gl – even if it would come with a minor feature set…

    lars
     
  48. Aieth

    Aieth

    Joined:
    Apr 13, 2013
    Posts:
    805
    I dream of better control over which meshes are rendered and shader texture arrays! Especially the shader texture arrays
     
  49. Cyrien5100

    Cyrien5100

    Joined:
    Oct 17, 2012
    Posts:
    145
    One question, you created your own lighting, but how did you passed array into shaders o_O
    I think it's a good thing to focus on DX11 market, majority of PC gamers have a dx11 capable card.
     
  50. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Is very nice.