Search Unity

[RELEASED] Deckard Render - Cinematographic Renderer for Unity

Discussion in 'Assets and Asset Store' started by olix4242, Feb 5, 2019.

  1. mikaisomaa

    mikaisomaa

    Unity Technologies

    Joined:
    Sep 14, 2015
    Posts:
    365
    Can this render semitransparent PNGs for compositing the frames over a video?
     
  2. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Well, actually, as it uses physical camera - even if you in theory could output an alpha, you wouldn't be able to get it to behave well.
    Why? Because alpha compositing is one of those things that are actually "hacks" and is actually pretty limited. It works well when you have simple overlays and objects that are presumably completely sharp. It starts to break apart as soon as you have blurred or transparent objects. And, it might work still with blurred objects, but it won't be correct. And there is a huge difference between "working" and "working correctly". Alpha blending controlls only a "coverage" but actual, real life physics are much more complex because blending is a mixture of adittive, multiplicative and coverage blending. This means that it's very context dependent. When you have a DOF, or effects like Bloom - blending becomes dependent on background and foreground, so it actually gets non-separable. There are also many physical effects that change how blurred borders behave as light rays pass on edges of objects - creating a spatial distortion. (example: put a finger in fornt of your eye, focus on background while moving your finger - you will see how a background distorts slightly while doing so. Deckard actually simulates also this behaviour - something that can't be done in compositing).
    Then, there is another problem of how unity works - most image effcets can't support alpha blending and destroy any alpha information (for a same reasons described above).
    Strategy for this type of problem is to use background image or video and do compositing right in Unity with Deckard.


    PNG's arent empty, they only have alpha set to transparent. It will still make a movie form those PNG's without problems. But good that you've mentioned this - I will make a workaround of eliminating this aplha just for ease of use.

    Strange. Let me know if shader editing doesn't solve your problem. BTW, are those models made with Fuse? If yes, I think that an issue might be in Fuse setting wrong roots of your characters - and this confuses Unity animation and culling systems.

    This is already on TODO list ;) I will integrate this later on when everything else gets polished as it actually isn't that simple to do.
     
  3. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Eheh, thanks a lot :)
     
  4. mikaisomaa

    mikaisomaa

    Unity Technologies

    Joined:
    Sep 14, 2015
    Posts:
    365
    Thanks for the response. I think I need this for film too. :)
     
    Gekigengar and olix4242 like this.
  5. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Blatant request from developer: If you like Deckard and want to support it, please write a small review on Assetstore ;)
     
    wetcircuit likes this.
  6. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Yes, Fuse….. I had no issues with Standard shader…. Do you know where I can find discussion on this issue?
    Or maybe a transparency setting in ASE that is more stable? It only happened with my skin, no other ASE shader (applied to same figure) was effected.

    (not blaming Deckard, as I said everything looks fine with Unity Standard shader)
     
    Last edited: Mar 12, 2019
  7. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Not sure, but this problem might be related to using forward shaders (if it is your case) with skinned animations. But I'm really not sure, it is pure guess.
    But then again, it might come from a specific shader and it's flags. Without putting my hands on both character and shader, it is pretty hard to tell.
     
    wetcircuit likes this.
  8. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Right now I'm making this Deckard specific shader that can deal with brushed metallic surfaces (or other types of surfaces that have micro scratches - actually, mostly all surfaces).
    img00002.jpg
     
    newguy123, Adam-Bailey and wetcircuit like this.
  9. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    562
    Would be great to have a suite of Deckard specific shaders to use that work better with it.
     
  10. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    That's idea.
    I'm also testing a new idea of adding some power material modifiers that could work as addons for existing unity shaders. They could probably extend standard shaders with some new features without having to dig into shader programming.
     
  11. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Deckard pretty much kills my Mac Pro just by the component being active – not hitting play and not rendering to hdd, just sitting idle. Every other computer function from click-drag to navigating other file folders is severely hampered/stutters…. It's as if Deckard is constantly re-rendering, even if nothing has changed and Unity is idle in the background. Toggling off the component (or the toggle switch within the component) restores natural function….

    Not sure if that is normal, or should be reported as a problem.

    I also had a hard freeze when rendering over night, approximately when the computer turned on the screensaver.
    Changing Deckard's frame size (to 720p) changed my cursor size (suddenly jumbo-sized cursor) until a restart. These issues are inconsistent (1-time each).
     
  12. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Here is Deckard warming up. Video
     
    wetcircuit and olix4242 like this.
  13. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Yes it does require a robust machine, I did the one below on a MBP. Tried a 4k render but it died. Macs are no match for a powerful video card with strong gpu.
     
  14. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Well, keeping component active makes it render on any interface change - this is a default Unity Editor behaviour. You should use Deckard On or Deckard OFF button in Scene View to avoid unneccessary Deckard cycles rendering. Also, Mac Pro isn't really that performant for 3D rendering like modern graphics cards (Nvidia GTX 10xx or RTX 20xx series), and I think that it might also go into it's thermal throttling. So, this should be considered as default behaviour. Unity Being idle in background doesn't change anything, as Unity still continues to process. I will see if I can change this action by adding some hacks.
    This might be due to thermal issues. Or driver problems. As Deckard requires much more cycles to be performed on GPU - some crashes could arrise sooner instead of later. Keeping Deckard active for 1 hour could be as keeping computer active for 20 hours by using unity, or keeping it active for 200 hours in idle state. But I assume that it all goes to thermal throttling, and your mac pro GPu get's too hot. Ati cards are power hungry, and have bad performance vs. thermals index. This means that they can get pretty hot in a Mac Bin.

    TIPS:
    -Set your game view to fixed resolution, something that is pretty low for comfortable workflow. Then use Scale slider to fill your Game view.
    -In Deckard settings set Use Half resolution for previewing. This will require 4x less processing power.
    -drop down Max Progressive Quality.
    -turn off Deckard rendering by using deckard on-off button in a scene view.

    -Turn off screensaver as it could interrupt rendering resulting in a crash due to switching power schemes. I though't that unity shoulkd do this by itself, but probably it gets activated by user input.
     
    wetcircuit likes this.
  15. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Here is a new test of how two different shaders can be combined. From my tests it looks like my intuition on combined materials could be really powerfull.

    This is also a new step into adding real optical filters. Filters that can be added in front of your camera like a simle object, and are able to simulate various real filters and abberations.
     
  16. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Wow that glass!
     
    olix4242 likes this.
  17. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    petersx, Deckard_89 and wetcircuit like this.
  18. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    1,488
  19. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    I have done some changes also on skin shader as I didn't like the one before. img00002.jpg
     
    pixelsteam, petersx and WoodenDragon like this.
  20. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    Sounds like my ps4 playing Red Dead 2.
     
    pixelsteam and olix4242 like this.
  21. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    New animation done in Deckard
     
  22. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Congratulations Deckard seems like a great rendering tool! As a newbie I have a little trouble with incompability issues. For exemple most of my assets like vegetation studio Pro needs the post processing v2 so I decide to just start a new unity project to test and understand the basic of Deckard but when opening your demo files I have this error:

    MissingComponentException: There is no 'Animator' attached to the "Main Camera" game object, but a script is trying to access it.
    You probably need to add a Animator to the game object "Main Camera". Or your script needs to check if the component is attached before using it.
    DeckardRender.DeckardRender.LateUpdate () (at Assets/DeckardRender/Scripts/DeckardRender.cs:504)


    So the camera is basically rendering a static scene. :)
    Any idea how to get the demo working in ubity 2018.3.4f1? Thanks for your help.
     
  23. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Looks pretty cool, but there's some popping at 0:10/0:11?
     
  24. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Using Post Processing v1 isn't mandatory, and you can use also V2 without problems. Only limit is that you won't be able to use better quality screen space reflections.
    Also, a fact that Vegetation Studio uses post processing v2 doesn't mean anything. PPS is only a post processing effect, and it doesn't have anything to do with assets themself. What I mean - even if you turn off PPS v2, asset should work.

    Well this is correct behaviour. There is no any animation assigned - it is only a scene that shows it's rendering - if you need animated rendering, you can freely animate it with animator, or simply move a camera in scene view - so that you can see what happens when you do it.
    New version of Deckard will have more animated examples.
     
  25. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Ops, looks like I did some keyframing wrong ;)
     
  26. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
  27. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Really nice trailer. It really shows the power of Deckard.

    A few more questions... I have problems with the unity post processing 2 component. It is inserted in between Deckard preprocess and Deckard Render but
    when adding effect I don't see any change in the picture and all settings are coloured grey and can not be change.

    Also when "capture on play" is enabled I can capture without any problem but If i disable it and manually select the "render animation button", it doesn't seem to work.
     
    pixelsteam likes this.
  28. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Fantastic work, congratulations to the team!

    We can't wait to take it for a spin ;)
     
    olix4242 likes this.
  29. ArcaneParadigm

    ArcaneParadigm

    Joined:
    Jan 8, 2014
    Posts:
    6
    So this will work with Vrpanorama and you can render 360 vids correctly? It would be dope if you renrenders some of the Book of the Dead and added some glass sheets in the enviroment to show of that especially at the end with the sappy creature
     
    fablemaker likes this.
  30. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    303
    I remember that you mentioned it wasn't compatible with Unity's Timeline and Cinemachine Systems right? because of the procedural / realtime and unpredictible nature of those, and deckard needing data in advance to make proper calculations in things like motion blur.

    Do you think it is it going to be compatible someday?

    I think it is important if it is compatible because Unity is pushing a lot those tools for film, so studios will want to use them and having the option to render with Deckard would make it a must have, but if they have to change their worlfow, it could be problematic to choose between Unity's tools for animation/cinematography and deckard for the render side.
     
  31. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Please forget my two questions above. I finally got the postprocessing stack v1 to work and I read from the doc that "capture on play" has to be always on to record a sequence or movie.
     
    olix4242 likes this.
  32. RobOuellette

    RobOuellette

    Joined:
    Jun 5, 2018
    Posts:
    10
    This looks super dope! I have a compositor/colorist question:

    I know there's no documentation yet -- but I noticed from a screenshot on this thread that Deckard is emulating film stock/print color response. I'm not sure if you're using a LUT for this or something else, but are you also able to export the imaqe sequences out without that? Are the exports in a Linear color space?

    If not, it might be a handy ability for colorists and compositors working on game trailers, etc. to be able to output Linear files straight into a grading suite like Resolve, and do transforms (like Linear>LOG, Linear>Rec.709 or anything ACES) and mess with LUTs there so they can non-destructively control the look while still being able maintain the benefit of everything else that Deckard offers.
     
  33. Yasuchiki

    Yasuchiki

    Joined:
    Jun 19, 2015
    Posts:
    4
    I purchased immediately.
    This is a really nice renderer. I just used Unity to make CG movies, but I've been frustrated with the cheap rendering quality. I was impressed by the quality that I made with DCC by seeing the image made using Dekard! .
    I saw the moment that a character that was like a doll lived a life!
    For me, it is an asset that I can not make CG movies without this.

    But a big problem happened.
    I tried to render a moving character as a test, but the animated SkinnedMesh parts are rendered out of position. Parts that are supposed to be skinned in the same bone dance in the air.
    Specifically, the body and costume, eyes, and teeth of the character skinned in the same bone tree are in the correct position when the animation is stopped, but when they start moving, their positions are displayed slightly differently. In other words, the eyes will pop out of the face. When the character's movement slows down, the popping out also becomes smaller, and when it stops completely, it returns to the correct position.

    This is only an issue when rendering with Dekard, and of course it appears correctly outside of Dekard.

    Is this a known issue?
    When I checked DekardRender's DEMO movie again, the character did not move at all. Does Dekard Render still not be Skinned Mesh yet?
    Please let me know if there is a solution to this problem and there is a plan to improve it.

    Knowing Dekard's amazing rendering quality, I can no longer feel comfortable making it with Unity rendering.
    Please resolve as soon as possible! !
    I would like to write a review after this major problem is solved.
     
    olix4242, witson and wetcircuit like this.
  34. witson

    witson

    Joined:
    Feb 17, 2015
    Posts:
    10
    Hi olix4242!
    Unfortunately, I encountered the same problem as Yasuchiki. Render really turned out great! But in my case, I planned to use it for rendering for the most part character animation. I would be happy if such an opportunity appears in the near future. Thank!
     
  35. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    I also have the pop eye and hair problem when trying to render a walking character.
    Also when selecting my walking character as the source for focus, the character doesn't stay in focus while walking. I have a collider but it doesn't seem to work.
    Would it be possible to describe the steps (collider setup, auto focus on or not...) to use the focus on moving target such as a character walking? Thanks!
     
  36. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I've had the same experience as above with skinned meshes.
     
  37. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Are you all using Fuse characters? Or custom ones?
    Fuse characters have this bad habit of having problems with root obnjects, and thisthat triggers one of the bugs in unity. When this happens?
    -your character uses multiple materials
    -each part of a character uses different root bone objects

    FIX:
    -Select all skinned mesh parts (all character objects that use Skinned Mesh Renderer component)
    -In Skinned Mesh Renderer script look for a value of Root Bone. You will notice that all objects probably have different Root Bones.
    -In a hiearchy view find an object that is usually called "mixamo:Hips" (for Fuse characters). If you use your own custom characters, than this object chould be a root of your bones system.
    -Drag and drop this object into a Root Bone field.
    -Now, all your skinned mesh parts should have a same root bone object and your animation will play correctly.

     
    Last edited: Mar 16, 2019
    wetcircuit likes this.
  38. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    colorDeckard.jpg
    Yes, you can turn those profiles on or off and export colors as they are in Unity. You have also options to export into a industry standard colors like REC709 or Log C (Arri Log C is a best option for later editing in Resolve).
     
    Last edited: Mar 16, 2019
    RobOuellette likes this.
  39. Yasuchiki

    Yasuchiki

    Joined:
    Jun 19, 2015
    Posts:
    4
    Great! I solved it wonderfully! ! Thank you for the superfast support!

    I did not notice that it was set to this place because there was no problem until now.
    My character is an original skeleton created by MAYA imported into Unity with FBX.
    As you mentioned, it was completely solved by setting the top of the bone tree as RootBone.

    This is no reason to not use DeckardRender anymore.
    I am grateful for the great tools and great support!
     
  40. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    I'm here to help ;)
     
    Last edited: Mar 17, 2019
  41. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    It's not that it doesn't work. It works, and you can still render with Deckard - but your motion blur probably won't be as perfect. Also, if you switch between cameras, you will get a nasty blur between frames.
    In most cases it might not be as important - but, nevertheless, my suggestion is to avoid direct usage of timeline, and instead, bake timeline to animations before rendering final animation.

    Main problem is that Cinemachine isn't really made for film, but for interactive animation. This means that it's good for pre-production, but not for production. For example, it will always make slightly different decisions when using procedural framing. It also doesn't show in editor exactly what it will show in 'game'. for anything in film industry you need a perfect repeatability. You have to know that your framing won't change if you render first or second time. This still isn't possible. And those errors usually are more pronounced when working in filmic framerates (24fps) that are lower than a standard 60-120 fps in gaming.
    But for this, there is a Unity Recorder tool, that can transform cinemachine procedural animations into Unity animations that should be used afterwards for rendering with Deckard.
     
    daville likes this.
  42. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    No, this won't work with VR Panorama. It is completely different beast than VR Panorama. It is made to simulate behavoiur of a real camera - in it's bad and good features.
    In 360 video you actually don't want any of those things as all introduce some kind of distortion, that is natural for film lens but should be avoided for 360. This is a reason why it's so hard to make good 3600 camera, and a production with any 360 camera is pretty hard and difficult - much harder than when rendering 360 panoramas in CGI.
     
  43. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Well, you have 3 modes of using focus:
    -free focus (default) where you can insert a numerical focus distance (and animate this distance in animator).
    -Autofocus on target object - in this case, you should insert a target gameobject into a target field (and you shouldn't select autofocus option - it will be activated by default if target object isn't empty) It will try to focus on this object. In a case of character, you can set this to be any bone of your character that you want to follow. Don't set this to character itself or it's skinned mesh - but set it for example to a Eye bone if you want to focus on characters face.
    You could also set this to any other object in your scene, or an empty object, and use this emplty object to pull your focus.
    -Autofocus by using colliders - this will use colliders. It's not suited for characters as they can't use mesh colliders and other simple colliders aren't precise enough for correct working if you have a shallow DOF).
    All autofocus modes require some time to put object in focus. This in editor might be too slow in some cases. I already did an update for a next version of Deckard - it will have a value for focusing speed.
     
  44. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Thank you for the detail description of the focus modes. I understand a bit better now.

    Can you tell me if an object that is being focus on is supposed to get blurry when getting close to the camera. Perhaps to simulates real camera physics? Because the "Focus on" seems to work until the object gets close to the camera. Or is the "focus on" option normally used for static meshes?

    Also when rendering a walking character I have the same problems than when trying to render plants with wind enabled.
    the animation gets all jerkey. Curiously It is not jerky when using VR panorama or another video renderer.

    Trying your character mesh fix suggestion didn't work for me but I noticed that my eyes and hair pop up only when the character walks a little closer (but not that close) to the camera a bit like a clip thing. Perhaps I am doing something wrong or maybe Deckard shouldn't be use for a character walking close to or thru a camera.

    Thanks again. This is a great renderer. I am just trying to get my head around it. :)
     
  45. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Check your bounding on those meshes. in the scene view it will show as a white box outline. shift the bounding box so the mesh is inside it.
    Screen Shot 2019-03-18 at 4.10.18 PM.png
     
  46. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Thank you for the quick reply wetcircuit but the meshes are inside the box both for the eyes and hair.
     
  47. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    This is a known issue that I have explained here. Unfortunately, this is a bug that lies deep in Unity engine and it's internal timing, so it cant be solved without upddates from Unity side. I hav eplained it here:

    https://forum.unity.com/threads/released-deckard-render-cinematographic-renderer-for-unity.624439/#post-4299469

    Only possible fix would be to make a custom grass waving shader - and I will be probably look soon into doing it.
    p. s. You don't notice this in VR panorama only because it renders a little bit faster, but it is always there. grass will move faster. You can always manually adjust wind speed on terrain, and that chould fix things a little bit. But it is pretty hard to do.
    Check a solution by Wetccircuit, but also, be sure to check that your clipping planes are set correctly. One note: deckard clipping planes doesn't behave like they behave in unity. You will always get a smooth fade instead of classic hard clip.

    Well, this is a physics of a real camera. You always have a nearest focuss distance, and you can't go closer. this i closely related to sensor size, lens length and aperture.
    TIP: when using Deckard for making filmic videos, forget about default FOV in Unity. It is tuned for games to be as closer to human vision. Cinema language usually doesn't use that large FOV's. For example, a portrait is mostly filmed on 50 -80 mm lens lenght. general scenes on 35-50mm. some 'extreme wide shots for static landscapes rarely on anything smaller than 18mm. but mostly, in film, you usually go to larger focal lenghts and try to keep a distance from a subject. This ives better shallow DOF, and a less distortion of a human face.
     
  48. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Thanks for the quick reply and tips . I might have to wait for unity to fix their internal timing bug before digging more into Deckard. But it look very promising.

    Thanks again!
     
  49. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    I wouldn't wait for Unity to fix this issue - it is probably something that is deep in a core of a system fro who knows how long.
    Good news is that it seems that I've figured out how does this happen and how to compensate for this bug.
    -If you are fine with your grass speed without Deckard, you should go to your terrain, search for a field of Wind Settings for Grass Speed and write down it's value.
    -once you have decided how many passes Deckard should use (Render Quality value in Deckard) you should remember that value.
    -Go to your terrain, and divide "Grass Speed" value by Deckard Render Quality value multipiled by two.

    So, if your "grass speed" = 0.5 and your Rendering Quality is 70, you should do this calculus:
    newGrassSpeed = 0.5 / 70 * 2
    And you should set a new wind speed to 0.003571429
    TIP: you can always do any calculus in a value field without a need to use calculator.
     
  50. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Ok, after some work I've found a solution/hack for a grass that will be available in a new version.