Search Unity

[RELEASED] Deckard Render - Cinematographic Renderer for Unity

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

  1. Mozq8

    Mozq8

    Joined:
    Dec 30, 2016
    Posts:
    61
    Thanks for the tip!

    The problem is I got a powerful laptop but this rendered takes a lot of resources and I can't figured it out how can I make movies with Deckard. It's very slow.
    What's your pipeline?
    Do you make blocking (actors) and camera movements first and enable Deckard in last step before renderinh?
     
  2. Mozq8

    Mozq8

    Joined:
    Dec 30, 2016
    Posts:
    61
    Another problem I have is that whenever I use prefab Deckard Physical Camera and hit play I got a black screen saying that No cameras rendering
    Unity 2019.1.5f1
     
  3. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Yes definitely! I do procedural character movement, but it's looking like Timeline is the way to go for characters in Deckard.
     
  4. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Hi,
    I am at the stage of gathering information for choosing an offline renderer.

    About how much work would it mean for a third party developer (e.g., Slate) to have proper Deckard support? I'm asking this just to see if it would be an acceptable wish towards some other asset's developer.

    And what else is not supported by default for third parties other than skinned mesh support?
     
  5. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Is really the Unity realtime GI the only GI solution that can be used with Deckard? Even if there is no object animation, just a camera flythrough? The Blender classroom scenes were using realtime GI?
    I would think to use Deckard with the Unity GPU lightmapper or the Bakery GPU lightmapper. Is that impossible then?
     
  6. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    That'ss pretty hard to know as it would have to depend really much on how their systems are implemented and how they work internally. It could be as easy as adding few lines of code - but it also could be pretty complex - depending pretty much on how those systems are scripted.
    -Deckard needs a possibility of scrubbing third party timelines on a request.
    -Third party timelines would need a possibility to update it's state multiple times per frame. (by a function call).
     
  7. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Yes, it is. Only Realtime GI.

    You can use them both.. no problems at all. But when you get your hand on Deckard, you will probably learn that you don't need any baked lightmaps. Deckard has really nice soft shadows, and this is mostly enough (with realtime GI) to nicely lit any scene. If you looked at my rendering examples, mostly all of them use just realtime GI and Deckard soft shadows. Realtime GI is just a nice way to speed up production and support realtime lighting changes.
     
  8. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    What are your main reasons to use Realtime GI? Is it the speed of calculation? Is it keeping the scene more interactive than with a baked lightmap?

    Okay, I'll look into Realtime GI once again. Though the Unity GPU progressive lightmapper is getting quite fast and near full featured.

    (It won't have immediate effect, but Unity has just announced the deprecation of Enlighten, the backend for Realtime GI.)
     
    Last edited: Jun 24, 2019
  9. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Both of them.


    This is a pretty sad news. I hope that they get something new as a substitute.
     
  10. amarillosebas

    amarillosebas

    Joined:
    Feb 28, 2013
    Posts:
    44
    Hi. Just bought the asset and am super excited to get to use it tomorrow. One question about this. I'm a very experienced unity user, but I've never used timeline, so I have no clue what "animating a skinned mesh in timeline" means. I read on the first pages of the thread that there was no documentation. Is this still the case? If there's documentation now, is this point about timeline expanded a bit more?
     
  11. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    I read all your posts about rendered images not having an alpha channel and that probably it won't be implemented for several reasons. Though I am confused by your recent post:
    Is this just for the screenshot feature or for normal rendering, too? Or just for the 3D Facebook images?

    By the way, I was planning to start using Unity and Deckard for a new technical animation I've just been hired to do, but the client today unexpectedly told me that they require from me to provide them the rendered images with alpha, too. They want to do some additional work in After Effects they haven't detailed to me yet.

    Otherwise my new little animation is just about how to install a building structure element (mainly objects falling into places), and would not necessarily require the blurring effects (DOF, motion blur) which make exporting alpha not justifiable per your reasons. Is there a workaround perhaps in this blur-less situation to have alpha channel export?
     
    MarkusGod and amarillosebas like this.
  12. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Is it possible with Deckard to capture the GUI? I usually put text onto my videos in post process, but I would consider having titles and icons made with Unity GUI. My idea is to have localized texts and just re-render the whole animation after changing the language.
     
  13. BitAssembler

    BitAssembler

    Joined:
    Jul 13, 2017
    Posts:
    90
    Same here. No rendering camera when in play mode. Using Unity 2018.4. Is this a know issue @olix4242 ? EDIT: GIF also renders a black screen. Single screenshot works though.
     
  14. amarillosebas

    amarillosebas

    Joined:
    Feb 28, 2013
    Posts:
    44
    For some reason, Deckard plays the timeline animation at double speed. If I disable Deckard, and press play, my timeline animation plays correctly at 10 seconds. When rendering with Deckard, 10 seconds of video has two timeline animation loops at 5 seconds each. No idea what's going on.
     
  15. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    It's a depth map yust for facebook usage.
     
  16. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Ok, I have imported yur project, and there appears to be a timeline feature (or better to say - bug) that influences rendering with Deckard.
    This bug is related to using Timeline in Loop, and it somehow accumulates transforms. So, if you need a looping, you should be looping a clip instead of a timeline.
    How to loop a clip?
    -simply left-click on your animation (in your case Camera Pivot (animation) in timeline and select Convert to Clip Track option. Then enlarge your clip to cover animation length that you want to render.
     
  17. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Be sure that Deckard script is completely deactivated when entering a play mode. If you have deselected Use Deckard Render while the script is still active, entering a play mode or opening a scene will result in black screen. On a scene load, just deactivate Use Deckard render.
    (I will see if I can find a workaround for this behaviour for a future release)
     
  18. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    You can do this when using Canvas in Screen Space (or World space)
     
  19. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Skinned meshes are meshes are usually characters/avatars.
     
    Last edited: Jun 27, 2019
  20. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Well, for Deckard those things aren't separable. It simulate how a camera works - and also how natural anitaliasing works. It's more or less, like using a rel camera, and wanting to have alpha channel. It that case you would use green screen background.
    Fortunately, Unity can replay animations and you could re-render them only with alpha mask (so that you can have separate files or videos to use with your color information). For this you would need a post processing effect that shows only alpha channel. If you need one and can't find one, I can probably make it (but only if you are using a standard pipeline - it will not work in HDRP.
    p. s. Let me know if you are using post processing stack v2.. or you prefer only a simple image effect. also, let me know what Unity version do you plan to use?
     
  21. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Ok, I have made few post processing effects for exporting depth and alpha. It requires usage of PPS v2, and it enables two effects that can be used for this task. It requires also animation to be rendered separately for each pass.
    https://www.dropbox.com/s/868y2oeltnxq53p/DeckardPPSv2_channels.unitypackage?dl=0
     
    Last edited: Jun 28, 2019
    wetcircuit likes this.
  22. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    I guess I'm late specifying my work environment, but it isn't decided yet, so if you are done with the alpha post processing effect then I'll adapt. Otherwise my choices are either Unity 2018.4 or the latest 2019.
    It is kind of you to deal with this alpha issue so promptly. It encouraged me to go ahead and buy Deckard. I'm looking forward to working with it. :)
    Will you include the effects in a new Asset Store release or somewhere else?
     
  23. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    IMO, this could (also) be released as a side product. I think many would find it useful.
     
    pango likes this.
  24. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Sorry guys, I forgot to paste a link for those effects. Here it goes:
    https://www.dropbox.com/s/868y2oeltnxq53p/DeckardPPSv2_channels.unitypackage?dl=0
     
    EddieChristian and wetcircuit like this.
  25. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Thank you very much, I downloaded and tried the new effects.

    I could make the depth channel work by specifying a rather small scale, around 0.05 for the demo scene, but I'm not planning to use it and I don't have much experience to evaluate it.

    The alpha channel effect was a bit hard to get working, it didn't show up in the render until I switched the camera Clear Flag to Solid Color. Is that the intended way of working?

    I noticed that the completely transparent areas in the render didn't come out totally black in the alpha channel, but at RGB 15,19,20. The same happened for the normal render if I set the Clear Flag as solid black, on the rendered image this was again RGB 15,19,20.
     
  26. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Yes, of course that you have to set background color to solid and set it's alpha to 0. Otherwise Unity renders background. It might not be intuitive, but it's completely normal and it is how unity works. Unity renders environment by rendering a solid or transparent mesh around a scene.
    As for clear black (and white), be sure to bring down Film Color Anount to 0.0 and bring exposure to 1.0, otherwise deckard will apply its color correction and you will not get correct colors on your output file.
     
    EddieChristian likes this.
  27. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    I made a quick test with SLATE and it mostly worked. As usually, the Deckard renderer component had to be added to the SLATE Render Camera, and the Deckard Object Motionblur component had to be added to animated (transform animations) objects.
    I didn't try skinned meshes.
    I said it mostly worked, because playing the scene did not always render correctly, sometimes only black screens were rendered very quickly as if Deckard had not found or couldn't switch to the SLATE render camera. Do you have an idea why this happened?
     
  28. amarillosebas

    amarillosebas

    Joined:
    Feb 28, 2013
    Posts:
    44
    Am I the only one with this problem? The timeline animation plays at double speed, in both Unity 2019 and 2018. Am I doing something wrong? Timeline frame rate is set to 24 fps. Deckard is configured for 24 fps. The enconded video is at 24 fps. But the timeline plays twice as fast as it should. My animations lasts for 10 seconds. Deckard will render 240 frames in 10 seconds. The animation plays two times in those 10 seconds with Deckard on. With Deckard off, it plays at normal speed.
     
  29. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Be sure to set Update Mode to "Manual" (in Playable Director).
     
  30. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    I really don't have any clue.. I don't own Slate and don't know how to use it. I can only immagine that it has some camera switching going on, that is quite different from Cinemachines camera switching (Cinemachine doesn't actually switch cameras, but uses one single camera, and then just copies properties from virtual cameras - and this works perfectly with Deckard. It could be that Slate switches actual cameras, and this can give problems with deckard).
     
  31. amarillosebas

    amarillosebas

    Joined:
    Feb 28, 2013
    Posts:
    44
    Thanks! I had no idea. That solved it.
     
  32. amarillosebas

    amarillosebas

    Joined:
    Feb 28, 2013
    Posts:
    44
    One more question. I want to start "recording" after some frames. Say, I want to record starting from frame 24. I thought that was what the "Resume from frame" parameter meant. Well, I have no idea what it does, because Deckard seems to not do anything different. Is there a way to start rendering at an arbitrary point?

    The main reason why I want to do this, but not the only one, is the following. I'm trying to capture a loopable animation of an object spinning. Everything works out fine, except the motion blur, which obviously starts calculating after the animation starts. The result is that for the first frames, there's no motion blur. A manual fix for that would be to make the animation longer: instead of starting at rotation 0, I could start from rotation -45, and add some time extra; or even to two cycles. Deckard will render all of the extra frames that I don't need and encode them to a video. I would have to open Premiere, take the frames I want and render the video on my own. I can't do that because it would kill my productivity (I'm on a PC with limited RAM, and opening Premiere along with Unity is very -very- slow for my system).

    The ideal solution would be to tell Deckard "start recording after X frames". Is this possible with the current build? I hope my question is understandable. Or is there any other way to do this?
     
  33. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Slate's camera management is also based on one single rendering camera whose properties are changed during the course of the animation. This camera is by default inactive, becomes active when the timeline starts playing. Perhaps this camera won't get activated always soon enough for Deckard to find it? But the Deckard component is put on this particular render camera so it should find itself... :) I'm just thinking aloud...
     
    Last edited: Jul 4, 2019
  34. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    I need to buy a fluid simulation asset. Does OBI Fluids work well with Deckard after all? Are there any problems?
    Or is there a recommended alternative to it? I need a small amount of water running down a surface shown in a close up view.

    By the way, is OBI Fluids deterministic in a way that the subsequent recordings for saving alpha channels will have the same fluid motions?
     
  35. josterday

    josterday

    Joined:
    Jan 22, 2018
    Posts:
    51
    We use OBI with Deckard. It (mostly) works but can give varying results with motion blur because the fluids are particle based and not an actual mesh. Also keep in mind that those fluids will not show in reflections. There's an NVidia fluid shader option that may work, but I haven't seen that confirmed from OBI users.

    You should be fine on repeatable alpha passes with the fluids. Good fluid sims are hard to come by, so there's not a lot of options for offline support. Can't guarantee it will do everything for you but those are early findings
     
    olix4242 likes this.
  36. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Nice to know. Thanks.
     
  37. BitAssembler

    BitAssembler

    Joined:
    Jul 13, 2017
    Posts:
    90
    Is there a workaround for recording vertex motions (e.g. Unity's HDRP vertex shader wind)? The output is very jittery and out of sync. Do I miss something here? Thanks!
     
  38. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    There shouldn't be any problems with vertex motion if shaders are programmed correctly to respect unity Time values. All movement in vertex shaders should be driven with unity Time values ("_time" shader value).
    This is more or less a same thing like in scripting where you have to multiply values with Unity Delta Time so that time is driven on time base and not on a frame base.
     
  39. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    Thanks for the information about OBI. I tried the Nvidia Flex asset, but the fluid demo crashed crashed Unity every time after running the simulation for a while.

    Some minor issues with Deckard:
    • The Deckard renderer script pollutes the scene with a bunch of child gameobjects called "target" every time when rendering.
    • The first rendered image usually has a weak ghost image, it looks as if the picture itself is copied and pasted back moved downwards by quarter of the image height.
    • Rendering to MP4 caused me some trouble, because I had a longer sequence rendered first then made the number of frames less, rendered again, but the video remained as long as before. It turned out that MP4 encoding takes all the images in the render folder, even the surplus older images from the previous longer run. Could there be an automatic solution for this other than deleting all the images before the shorter render? Like giving parameters to the encoder to use only the currently set frame number?
    • Resume doesn't seem to work for me either. Deckard always starts rendering from the first frame. How should this be used?
    I don't get the above exactly. Is it for procedural vertex animation? In my case I am using the Deform Mesh deformation script, putting mathematically animated deforms like noise on a mesh (CPU based calculations), which moves the vertices randomly during play mode. What do I need to do in order to have this vertex animation motionblurred? I already have the DeckardObjectMotionBlur script on it, but that blurs only translation and rotation, not vertex motion.

    Perhaps it's good to mention that this animation is not controlled with a timeline, it just happens as time passes.
     
    Last edited: Jul 17, 2019
  40. amoka

    amoka

    Joined:
    Dec 18, 2015
    Posts:
    58
    I went on trying SLATE cutscene editor with Deckard. The camera issue is mostly gone, rendering works but sometimes the black "No cameras rendering" screen in the game window happens after rendering stops. Had to activate Deckard rendering in Edit Mode and turn it off again.

    I found that when I put the DeckardObjectMotionBlur script on keyframe-animated moving objects, these objects stopped at their original position for the whole animation. I had to change the cutscene update mode to "Animate Physics" to solve this. It made the motion blur more consistent and precise if fixedtimestep in Project Settings was changed to a small vallue, like 0.002. (It seems from the code that Deckard does this similarly when the "Use Precise Timing" option is checked.)
     
  41. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Yeah, this can happen. I'm trying to solve this issue, but it seems that Unity looses references from time to time when switching from play to editor.

    There is no workaround at a moment for this one. This is mainly because there aren't any available previous frames for some interpolation to be done. And partially because Unity needs some time to stabilize itself. Actually, Deckard has to render 20 frames by stopping time of unity, because of this behaviour. This means that strating times are a little bit of a hack to fix some other more important issues.

    Deckard features "Delete All Images" mostly for this reason. It will delete all your previously rendered images. This could be done automatically on render start, but I'm avoiding this behaviour as it would be desctructive. There is greater probability that you run scene rendering even if you don't wan't to do it. So it's more of a safety logic.

    It will strat from a same frame.. but it will not write those frames. I should probably introduce some better logics for this.

    Hmmm.. CPU deformation can't be sincronized pretty easily for motion blur (if it is driven by Unity time value), so my suggestion is to use shader approach. Problem is that your script will be updated probably once per a frame on its Update, but deckard needs it to be updated more than once.
    How does it work? You can use Unity "_Time" shader value and just add to this value a "_DeckardTime" value. This action will give all necessary values to your shaders.
     
  42. Alaric

    Alaric

    Joined:
    Aug 5, 2012
    Posts:
    5
    Tested on Unity 2019.1.10. Depth of field doesn't appear to work, presumably along with motion blur etc.
     
  43. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Here it works perfectly (and works also on newer alpha and beta versions of Unity). Can you give more info about your case? Are you using HDRP or standard rendering?
     
  44. dfarjoun

    dfarjoun

    Joined:
    Aug 6, 2017
    Posts:
    42
    Was this already implemented? (runtime snapshot)
     
  45. dfarjoun

    dfarjoun

    Joined:
    Aug 6, 2017
    Posts:
    42
    HI,
    I have a game that is totally based on PPS where I use controls for DOF and Motion Blur.
    Is it possible to grab the settings from the PPS and use it for the Deckard? I really need the good motion blur, bokeh and hopefully, good area lights! :)
    Does the area lights create the proper soft shadows? Does it behave accordingly to real life?
    As near the light source is the softer the shadows become?
     
  46. Alaric

    Alaric

    Joined:
    Aug 5, 2012
    Posts:
    5
    Sorry I should have been clear, I am using HDRP which is not fully supported.

    I am specifically after the accumlative motion blur.
     
  47. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    When using Deckard with HDRP, you have to use "Deckard View" to be able to preview Deckard's result (go to Window/Deckard View). This is a workaround becuase latest HDRP doesn't have support for any custom Post Processing effects.

    Be sure to read Rendering with HDRP in Deckards Manual, it explains all neccessary steps.
     
  48. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Not yet :(
     
  49. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,962
    Yes. Shadow softness tries to simlate real light behaviour with all the blurring that happens based on a light source area size and distance. Shadows even support motion blur. Lights with soft shadows require you to add a component (Deckard Soft Shadows) and set desired values for those lights.
    You could script this by feeding point of focus value into Deckard camera. Note that DOF will look somewhat differently that PPS DOF, as PPS DOF isn't completely physically correct.
    There are also some easy ways to controll DOF, like automatic DOF based on colliders, or DOF that follows desired object.
    You can check Deckard Manual that explains most of the things:
    https://www.dropbox.com/s/j81ebdp7z597jn6/readme.pdf?dl=0
     
  50. dfarjoun

    dfarjoun

    Joined:
    Aug 6, 2017
    Posts:
    42
    Too bad!! This is the feature that I'm looking for.
    Is there any possible workaround? A video with 1 frame converted to png or jpg or even a printscreen of the first frame?