Jump to: Board index » General » Fusion

Noob question : Why Fusion ?

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Noob question : Why Fusion ?

PostSun Feb 05, 2017 3:30 pm

Hi there,

Sorry for this noob interlude, but I was wondering why to learn Fusion ?

I mean, it has far less online ressource than after affects, less plugins support, and no 3d camera tracker. And about serious vfx works in a nodal environment, everyone seems to think that Nuke is the way to go. And Nuke has a free version as well.

So is there a place for Fusion, and any reasons to use It instead of the two others ?

Ps : Do not take this thread as an offense, I just want to understand :)
Last edited by Alex Uzan on Sun Feb 05, 2017 4:00 pm, edited 2 times in total.
Offline

Alaz Soytemiz

  • Posts: 135
  • Joined: Tue Nov 11, 2014 8:26 am

Re: Noob question : Why Fusion ?

PostSun Feb 05, 2017 3:40 pm

For me
1) i prefer node based
2) nuke studio is expensive
3) I trust Blackmagic to improve the Software and the community like they did on Resolve.


Sent from my iPhone using Tapatalk
Windows 10 Pro 64Bit
Processor: Intel i7-6800K 3.40GHz
Ram: 128GB
Graphics Card: NVIDIA GeForce GTX 1070
Disks: Samsung SSD 970 PRO, Intel® SSD 750 Series (400GB, 1/2 Height PCIe 3.0, 20nm, MLC)
Offline

Thierry Bergeron

  • Posts: 72
  • Joined: Thu Aug 11, 2016 4:58 am

Re: Noob question : Why Fusion ?

PostSun Feb 05, 2017 4:29 pm

I prefer node for more complex stuff, and for more basic stuff I prefer Motion to AE, the non-commercial Nuke is too limiting and the paid version is too expensive for me, finally I hate renting software like what Adobe is doing.
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Noob question : Why Fusion ?

PostSun Feb 05, 2017 4:50 pm

For me, as with some of the others: I prefer node based compositing. Prior to Fusion I had only used After Effects (for quite a few years), but after getting used to node based compositing, I don't really want to go back to layer based (pre-comping etc ugh): it's so powerful. As for Nuke: it's expensive, I can't justify spending so much on it.

Also, compared to After Effects: true 3D particles without buying plugins!

Also, things like the Custom tool and pCustom tool.....I'm just starting to scratch the surface of these, but they are immensely powerful: I don't think there's an equivalent in After Effects.
www.ablackbirdcalledsue.com
Offline

Abdelrahman Magdy

  • Posts: 291
  • Joined: Fri Jan 23, 2015 10:08 pm

Re: Noob question : Why Fusion ?

PostMon Feb 06, 2017 8:42 am

One other thing about Nuke free. It is actually Nuke Non-commercial, which means you are only allowed to use it to learn Nuke and for some fun projects and that's it.
Fusion, on the other hand, is free. You can use it for whatever you want with tiny limitations here and there.
And when you need the plugin support, you can get the paid version which is far cheaper than Nuke and supports OpenFX, the industry standard. But keep in mind that these plugins are not cheap.

Sent from my SM-G920F using Tapatalk
System specs:
Resolve Studio version: 16.1.0.055
Fusion Studio version: 9.0.2
OS: CentOS 7
CPU: Intel i7-4790k 4GHz Quad-Core
RAM: 32GB
GPU: NVIDIA GeForce 1080 Ti 11GB
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostMon Feb 06, 2017 3:19 pm

Ok, After Effects really shines when you add plugins.
Like Trapcode or Copilot ones.
And there are so many resources online to learn it.
That why every compagny I worked for, has an After Effects licence.

I don't know what Blackmagic want to do with Fusion, but more resources like free tutos, books, and keynote will surely be beneficial.
Offline

Mario Kalogjera

  • Posts: 1201
  • Joined: Sat Oct 31, 2015 8:44 pm

Re: Noob question : Why Fusion ?

PostMon Feb 06, 2017 7:33 pm

I was a heavy Fusion user since late 90-ies, then had to learn Combustion which became primary tool for motion graphics and commercials while Fusion was used for film projects (keying, tracking etc, all more powerful than AE back then)...I then rather bravely switched to Nuke for some projects (camera tracking and stereoscopic) and also from Combustion to AE (less brave choice)...today I primarily use AE for almost everyting for simplicity (never minds it's limitations) as well as being able to have someone else take over comps and vice vesra because almost no one uses anything else in my country. However, I'm looking into dumping Nuke and switching to Fusion again for a stereoscopic project and possibly an animation feature. I could never afford Nuke upgrades neither can the studio I regularly work with, and really never got my head around some logics of Nuke - it's simply too elaborate for me...as somene said, Fusion is Nuke Lite, it's free or rather cheap and you don't need to subscribe like for Adobe Cloud...
Asus Prime X370-Pro+R7 3700X@PBO+32 GB G.Skill AEGIS DDR-4@3200MHz
Sapphire RX6700 10GB
Adata A400 120GB System,A2000 500GB Scratch SSDs
Media storage:"Always in motion is it"
BMD Mini Monitor 4K
Windows 11 Pro+Resolve Studio 18+Fusion Studio 18
Offline
User avatar

Eugene Afanasiev

  • Posts: 600
  • Joined: Sun Aug 30, 2015 2:57 pm
  • Location: Russia

Re: Noob question : Why Fusion ?

PostMon Feb 06, 2017 11:29 pm

If I ever could afford nuke license I'd buy URSA Mini 4.6K! And a couiple of pl Lens. Most of the work I und UHD I could do in Fusion, there is always a workaround for any compositing work anyway...
__
--[[BMD's cameras and Resolve all-post workflow evangelist
My old stuff: http://www.youtube.com/rebelorelse
Debug: Asus ROG Duo GX550 i9 10980 48Gb RAM RTX2080MaxQ DaVinci Resolve Studio / Fusion Studio Latest Version]]--
Offline
User avatar

Bryan Ray

  • Posts: 2474
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Noob question : Why Fusion ?

PostWed Feb 08, 2017 2:07 am

For me, Fusion's price is tough to beat. Fusion Studio + Syntheyes + Mocha Pro is less than half the price of NukeX. Fusion's 3d system needs some advancements to compete with Nuke's, but I like its particles and custom tools a little better.

After Effects still has a place in my pipeline because there are some tasks for which it's still better. Anything dealing with text is easier there, for instance. And I use it to make image sequences from video formats that Fusion doesn't like; AE can open darn near anything. Animating to audio is much easier in AE. I usually rent it for a month or two as needed, though, rather than maintaining a continuous subscription.

For any serious compositing work, a node-based system is my preference. I wouldn't subject myself to compositing in AE again if I could help it. At a studio, I'll use whichever software is in my employer's pipeline, but at home it's Fusion.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostWed Feb 08, 2017 7:44 am

Bryan Ray wrote:Fusion's 3d system needs some advancements to compete with Nuke's

Any example (besides bicubic planes)?
Offline

Jeff Ha

  • Posts: 160
  • Joined: Tue Apr 14, 2015 10:38 am

Re: Noob question : Why Fusion ?

PostWed Feb 08, 2017 11:16 am

Bryan Ray wrote:For me, Fusion's price is tough to beat. Fusion Studio + Syntheyes + Mocha Pro is less than half the price of NukeX. Fusion's 3d system needs some advancements to compete with Nuke's, but I like its particles and custom tools a little better.

After Effects still has a place in my pipeline because there are some tasks for which it's still better. Anything dealing with text is easier there, for instance. And I use it to make image sequences from video formats that Fusion doesn't like; AE can open darn near anything. Animating to audio is much easier in AE. I usually rent it for a month or two as needed, though, rather than maintaining a continuous subscription.

For any serious compositing work, a node-based system is my preference. I wouldn't subject myself to compositing in AE again if I could help it. At a studio, I'll use whichever software is in my employer's pipeline, but at home it's Fusion.



Same here. Certain tasks are a lot quicker in AE. I gravitate towards it at home to knock out quick shots for which I don't really require NukeX. I have both at home. At work we have AE and Fusion. I mainly use AE for motion graphics but tend to rely on Fusion when using 3D and heavy comp. I like the pass workflow in Nuke/Fusion over the layer-based mess in AE. Also, bringing in geo into a compositing session is fun! AE is crap for real 3D. It's been supplemented with hacks from C4D (Cineware) and Element 3D but ultimate it's still a 3D file/scene on a 2D layer which makes it hard to really integrate other effects.

Ultimately I think it depends on what you want to achieve. For a lot of people, AE works just fine.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostThu Feb 09, 2017 11:26 pm

Using both seems quite natural.
One for small 2d tasks, the other for bigger and complex works.

I maybe get a wrong idea, but AE seems more versatile.
More really nice plugins, a native 3d tracker, and layers work is similar as how we do things in photoshop or even any NLE.

We could simplify things, saying that if you only do 2d works, AE is obviosly the way to go.
When Fusion is a better choice for 2d/3d works.
Offline

Kays Alatrakchi

  • Posts: 1290
  • Joined: Thu Jun 26, 2014 8:22 am
  • Location: Los Angeles, CA

Re: Noob question : Why Fusion ?

PostFri Feb 10, 2017 7:14 am

Alex Uzan wrote:I mean, it has far less online ressource than after affects, less plugins support, and no 3d camera tracker.


I've been wanting to switch to Fusion fully, and I've dipped my feet into it, but it's really though to give up all my plugins. I own CS6 so no subscription costs for me.

If the guys at VideoCopilot and Red Giant considered porting their plugins to OFX format, it would be a pretty compelling reason to switch to Fusion. Alternatively, if Fusion 9 added the ability to use AE plugins and scripts, that would be even better. The lack of a solid 3D camera tracker is also a deal breaker.

My attitude is that for the time being, and for my particular workflow, there is no particularly compelling reason to fully switch, but I do keep monitoring these boards for some new developments.

I hope there are some surprises in store for Fusion at NAB in a couple of months.
>>Kays Alatrakchi
Filmmaker based in Los Angeles, CA
http://moviesbykays.com

Resolve 18.1.4, Mac OS X 12.6.3 (Monterey), iMac Pro 64Gb RAM, Decklink Mini 4K, LG C9

Mac Book Air M1, Mac OS X 12.6 (Monterey), 16Gb RAM
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostFri Feb 10, 2017 11:50 pm

Kays Alatrakchi wrote:
Alex Uzan wrote:I mean, it has far less online ressource than after affects, less plugins support, and no 3d camera tracker.


I've been wanting to switch to Fusion fully, and I've dipped my feet into it, but it's really though to give up all my plugins. I own CS6 so no subscription costs for me.

If the guys at VideoCopilot and Red Giant considered porting their plugins to OFX format, it would be a pretty compelling reason to switch to Fusion. Alternatively, if Fusion 9 added the ability to use AE plugins and scripts, that would be even better. The lack of a solid 3D camera tracker is also a deal breaker.

My attitude is that for the time being, and for my particular workflow, there is no particularly compelling reason to fully switch, but I do keep monitoring these boards for some new developments.

I hope there are some surprises in store for Fusion at NAB in a couple of months.

Why ?
What Fusion could bring to you that After effects can't ?
Offline

Kays Alatrakchi

  • Posts: 1290
  • Joined: Thu Jun 26, 2014 8:22 am
  • Location: Los Angeles, CA

Re: Noob question : Why Fusion ?

PostSat Feb 11, 2017 8:12 am

Alex Uzan wrote:Why ?
What Fusion could bring to you that After effects can't ?


Dunno, that whole node thing. People tell me it's the only way to fly, even though I've always been able to achieve what I needed in AE. But what do I know? 8-)
>>Kays Alatrakchi
Filmmaker based in Los Angeles, CA
http://moviesbykays.com

Resolve 18.1.4, Mac OS X 12.6.3 (Monterey), iMac Pro 64Gb RAM, Decklink Mini 4K, LG C9

Mac Book Air M1, Mac OS X 12.6 (Monterey), 16Gb RAM
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostSat Feb 18, 2017 3:08 pm

Yeah, that's still confusing :D

I can understand the money issue that could bring people to get Fusion.
But when you already have an After Effects Licence, and don't work with 3d files from Maya or 3Dmax, the switch doen't seem to me that necessary.
But maybe I'm wrong too :D

I did many tuts from youtube, and quite like this software.
But I don't know, After Effetcs have so many ressources, I can't convince myself that spending a lot of time learning Fusion is needy.

I mean, is there some stuff you can do in one software and can't in the other ?
It would be a good start to let people understand their choice.
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostSat Feb 18, 2017 3:48 pm

i think you can do nearly everything in both, its only a matter of how complicated it is.
Offline

Edwin Rivera

  • Posts: 160
  • Joined: Wed Aug 03, 2016 4:53 pm

Re: Noob question : Why Fusion ?

PostSun Feb 19, 2017 10:58 am

Take it from me man, i was an After Effects user for 5 years and i got pretty good using it, put then my pc crashed and i lost everything

When i got my computer back a friend told me about fusion and it's capacities and i tried it but i was really scared of nodes and i thougt that giving it time to fusion and switching softwares was gonna be like starting over since i never used nodes before

Nevertheless i made the switch and i don't regret it. AE and fusion are both great but the prices speak for themselves. And sure it doesn't have a lot of tutorials for now but both platforms have something mase easier that the other don't

My advice is that you learn it because is another skill and because it can help you make an easy process than After Effects. Plus it's free just give it a try
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostSun Feb 19, 2017 11:41 am

Hi Edwyn,
Thanks for your feedback :)

Actually, I've been using Fusion since one week, and did a lot of tuts.
It seems really powerful, but still think that for 2D composition only, without 3D footage, things are more natural to do in After Effects.

Take the cmiVFX Fusion Earth training for example
https://cmivfx.com/products/428-fusion-earth

It was really painful to do it in Fusion, when you have to create everytime a Merge and a Transform Tool between each element. I also did it in After Effects, and no comparison how easy it was.
Offline

thomascheng

  • Posts: 63
  • Joined: Tue Jun 24, 2014 5:53 pm

Re: Noob question : Why Fusion ?

PostSun Feb 19, 2017 3:14 pm

Here are my reasons for using Fusion over AE or Nuke:

1) Fusion Free Version can be used on commercial projects - Great for training new artist and getting their feet wet on simpler task.

2) Fusion Studio Cost 1K and comes with more features than the 3K Nuke Basic.

3) External 3D trackers are cheaper and more powerful. I use PFtrack and Syntheyes, they blow away NukeX. Fusion plus PFTrack cost roughly 2.5K, still cheaper than the 9K NukeX. Throw in Neat Video Denoiser and you're still around 3K vs 9K.

4) Farm render nodes are free. Nuke you have to pay per node.

5) Fusion is generally faster than Nuke (they have to get you to buy render nodes).

With all this said, Nuke handles color management better, has better support for switching between OpenExr Channels. Their 3D tracker and planar tracker are decent, enough that I wouldn't have to use an external app for simpler jobs. While NukeX comes with a lot and you wouldn't need to buy a lot of external plugins, it still cost 9K.
Offline

Kel Philm

  • Posts: 597
  • Joined: Sat Nov 19, 2016 6:21 am

Re: Noob question : Why Fusion ?

PostSun Feb 19, 2017 9:30 pm

Agreed Thomas, also Nuke is a yearly subscription where as Fusion is (for the time being) a one off Payment (for the full version).

For 90% of my work they are pretty much the same (though I do feel rendering in Fusion may be a bit quicker). Just feel some of Fusions interface is a little unintuative where nuke has its nose it front there.

I am a small Studio still trying to get a foot hold so 9K a year for Nuke is just not affordable and they are a pretty nasty company to the smaller end of the market, plus I like BM's ethos to try an bring affordability and quality production/post to the market (some for free!)

I very rarely go back to AE, handy to have but not really useful when things get complex.
Offline

Chris Tempel

  • Posts: 163
  • Joined: Wed Nov 12, 2014 6:09 pm

Re: Noob question : Why Fusion ?

PostMon Feb 20, 2017 3:54 pm

I used AE for six years before jumping to Fusion. I just got sick of precomps within precomps. A node based system eliminates all of that. I did one short film in Fusion but didn't really like how it's node graph works, so I tried Nuke NC and it all just made so much more sense. That said, I can't afford Nuke so I looked into Natron, which is a free and open source Nuke clone. Natron is now my go-to compositor: It's free, it works and looks like Nuke, and there's no limitations :) The only drawback is that it's missing 3D and particles, but both are on the developers to-do list. Actually, the latest version includes a beta 3D card plugin, so things are moving quickly. What's more, there are plenty of Nuke tutorials online, and most of those can be applied to Natron without effort.
Offline

Andy Witkowski

  • Posts: 46
  • Joined: Thu Nov 20, 2014 2:53 pm
  • Location: United States

Re: Noob question : Why Fusion ?

PostMon Feb 20, 2017 9:43 pm

Alex Uzan wrote:It was really painful to do it in Fusion, when you have to create everytime a Merge and a Transform Tool between each element. I also did it in After Effects, and no comparison how easy it was.


At first, this seems like a drawback but it's actually better, in my opinion. Node based compositors will teach you to become a better compositor/artist. Sure, it's quicker and easier to just hit the "P" key or literally just click on a layer and move it in AE. But in a node based compositor, you're able to see every change you make and this makes it so much easier to tweak, troubleshoot, and stay in control.

If you have something complex going on, it's much easier to add a transform node at the bottom of a node tree than it is to go into a precomp of a precomp and change/add it. If there's something wrong with your comp, just follow up the node tree up to see where the anomaly first occurs. In AE, you'll have to dig around your layers and precomps, solo'ing layers, checking properties, effects controls, etc.

Don't get me wrong, I use both and they have their pros and cons - depending on the work you're doing. In general, though, I think it's great to use a node/tool based compositor because you do see everything laid out in front of you at all times. It's easier to understand what is going on instead of digging through layers and opening precomps.
Offline

thomascheng

  • Posts: 63
  • Joined: Tue Jun 24, 2014 5:53 pm

Re: Noob question : Why Fusion ?

PostTue Feb 21, 2017 2:14 am

Fusion comps also seem to be more streamlined than Nukes. I also seem to create gigantic Nuke node trees due to how components are broken down so much. For example, I only need 1 color correct node to make color adjustment, but in Nuke, you need at least 3 to do the same work of 1 node in Fusion.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 1:07 am

After reading your post, one question only came to my mind :
Would you still use Fusion if Nuke was at the same price ?
Offline

Vladimir LaFortune

  • Posts: 120
  • Joined: Mon Nov 17, 2014 3:37 am

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 12:54 pm

Nuke looks like crap, I'm seriously intimidated by its interface and on top of that it feels heavy and clunky.

Was never a fan of After Effects unless you are doing some simple motion graphics in which case AE has faster workflow than Fusion or Nuke. Puppet Wrap is one awesome feature of AE. Plug-ins for AE are all cheesy but if you are in need of cheese than its the fastest way to get there. Like Trapcode, you need simple preset particle effect you load it in and forget about it.

For all of you After Effects die hards I would really suggest taking a look at HitFilm Pro package. Its like a tight integration of PP and AE in one app, and it has real 3D environment.
Offline

thomascheng

  • Posts: 63
  • Joined: Tue Jun 24, 2014 5:53 pm

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 1:46 pm

Alex Uzan wrote:After reading your post, one question only came to my mind :
Would you still use Fusion if Nuke was at the same price ?


I'm assuming you are asking me this question. I've used both AE, Fusion, Nuke and NukeX on Movies and TV Shows. AE gets too messy when the comp gets big and complicated. You'll spend more time managing your comp than actually doing artistic decision making. I would give NukeX (Nuke Vanilla is not worth it) a slight lead over Fusion right now. If Fusion Studio 9 came with a nice denoiser and 3d/planar tracker, then Fusion would be a no brainer for me. I also personally prefer how nodes work in Fusion over Nuke.

***edit**
Of course you can buy neat video denoiser plugin, which solves the denoiser issue in comp. So really I only want to see 3d/planar tracking integrated into Fusion.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 3:13 pm

thomascheng wrote:
Alex Uzan wrote:After reading your post, one question only came to my mind :
Would you still use Fusion if Nuke was at the same price ?


I'm assuming you are asking me this question. I've used both AE, Fusion, Nuke and NukeX on Movies and TV Shows. AE gets too messy when the comp gets big and complicated. You'll spend more time managing your comp than actually doing artistic decision making. I would give NukeX (Nuke Vanilla is not worth it) a slight lead over Fusion right now. If Fusion Studio 9 came with a nice denoiser and 3d/planar tracker, then Fusion would be a no brainer for me. I also personally prefer how nodes work in Fusion over Nuke.

***edit**
Of course you can buy neat video denoiser plugin, which solves the denoiser issue in comp. So really I only want to see 3d/planar tracking integrated into Fusion.

So Fusion + NeatVideo + Mocha, and you forget about Nuke.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 3:16 pm

Vladimir LaFortune wrote:Nuke looks like crap, I'm seriously intimidated by its interface and on top of that it feels heavy and clunky.
I'm sure we can say that about any complex software we don't know.

Vladimir LaFortune wrote:Was never a fan of After Effects unless you are doing some simple motion graphics in which case AE has faster workflow than Fusion or Nuke. Puppet Wrap is one awesome feature of AE. Plug-ins for AE are all cheesy but if you are in need of cheese than its the fastest way to get there. Like Trapcode, you need simple preset particle effect you load it in and forget about it.
Is there an aternative of this tool in Fusion ?
Offline

thomascheng

  • Posts: 63
  • Joined: Tue Jun 24, 2014 5:53 pm

Re: Noob question : Why Fusion ?

PostWed Feb 22, 2017 9:50 pm

Alex Uzan wrote:So Fusion + NeatVideo + Mocha, and you forget about Nuke.


Mocha is a good planar tracker. I would also add Syntheyes for 3D tracking. If the camera is not zooming, you can use Blender's awesome 3D tracker for free.
Offline

Noel Froger

  • Posts: 68
  • Joined: Thu Sep 15, 2016 10:31 am

Re: Noob question : Why Fusion ?

PostFri Feb 24, 2017 1:04 pm

Don't forget than After Effect just fall appart the more your project goes complex.
On every project with it there's a point where you just regret haven't picked a node based one. Plus the linear workflow is a joke.

BUT, there's a point where fusion just fall appart too where you regret not using nuke or AE. For me this is where your Alembic files aren't referenced and readed from files
or when you need (95% of the time) a project file outputing different time range and sequences (hello AE or Nuke, bye fusion)
or the horrible exr channel/workflow
or working linear with every tool compatibles

So yeah each App have their weakpoint...
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostFri Feb 24, 2017 1:16 pm

Noel Froger wrote:Don't forget than After Effect just fall appart the more your project goes complex.
On every project with it there's a point where you just regret haven't picked a node based one. Plus the linear workflow is a joke.

BUT, there's a point where fusion just fall appart too where you regret not using nuke or AE. For me this is where your Alembic files aren't referenced and readed from files
or when you need (95% of the time) a project file outputing different time range and sequences (hello AE or Nuke, bye fusion)
or the horrible exr channel/workflow
or working linear with every tool compatibles

So yeah each App have their weakpoint...

What is the nuke weakpoint ?
Offline

Noel Froger

  • Posts: 68
  • Joined: Thu Sep 15, 2016 10:31 am

Re: Noob question : Why Fusion ?

PostFri Feb 24, 2017 1:25 pm

Alex Uzan wrote:What is the nuke weakpoint ?

Yeahh... The price ??
Offline

Travis Schmiesing

  • Posts: 133
  • Joined: Wed Oct 14, 2015 4:01 am

Re: Noob question : Why Fusion ?

PostWed Mar 01, 2017 7:02 pm

Why Fusion over AE? Fusion is compositor, AE is more of a motion graphics application that can do compositing.
Offline
User avatar

Rakesh Malik

  • Posts: 3231
  • Joined: Fri Dec 07, 2012 1:01 am
  • Location: Vancouver, BC

Re: Noob question : Why Fusion ?

PostWed Mar 01, 2017 7:24 pm

I worked through some of the compositing and matte painting tutorials on CMIVfx, and those make it very easy to see what the advantages of nodes are. One of the comps was over 40 nodes, and it was fairly simple. One of the Nuke vids was for matte painting... the instructor put together a composite image from a collection of photos, the final had probably close to 200 nodes, yet it was manageable.

Either would have been a nightmare to manage in layers.

Layers are easier to get started with, but nodes give you a lot more room to grow.
Rakesh Malik
Cinematographer, photographer, adventurer, martial artist
http://WinterLight.studio
System:
Asus Flow X13, Octacore Zen3/32GB + XG Mobile nVidia RTX 3080/16GB
Apple M1 Mini/16GB
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostWed Mar 01, 2017 9:32 pm

Travis Schmiesing wrote:Why Fusion over AE? Fusion is compositor, AE is more of a motion graphics application that can do compositing.

I agree.
It's more about what you want to do than what the app can do.

I'm still learning Fusion, and try to reproduce AE Copilot tutorials, and it's not that easy.
Offline
User avatar

Adelson Munhoz

  • Posts: 271
  • Joined: Thu Mar 05, 2015 5:44 pm

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 4:27 am

Everytime I hear that After FX is for motion graphics and Fusion is for composition, I remember the Dunn Lewis' portfolio.

An amazing collection of motion graphics made in Fusion, better than most things I have seen in AE:



There are other professionals using Fusion for motion graphics.

Like this:


And this:


To name a few.

So I think that is more a question of expertise than a fundamental limitation of the software.

Other aspect is regarding to teamwork. Everytime I have to open an another artist's AE project I want to die:
- Endless subcompositions that you have to navigate upstream and downstream just to make a simple modification.

- Endless duplicated elements, result of a huge number of copy and paste operations, since you cannot easily route an operator to several nodes like you do in Fusion (or in any node-based software)

- If someone cleaned the render queue you simply have no clue of what has to be rendered, or which filenames where used to render and to which composition they correspond.

It is much easier to understand a complex project in Fusion made by another person. Simply because the order and the relationship of the operators are drawn in the Flow Area. What has to be rendered is clear.

There are few aspects of AE that I miss, though:
- In a 2D composition in Fusion, you cannot select an element by just clicking on it in the viewport. You must select it in the Flow Area.

- The Puppet Warp

- The Text tool (which is faster to do simple animations)

- Video Copilot

But I am sure that, since BMD has finished the versioning of Fusion to all platforms, they are redirecting their efforts to improving it. So we can expect that Fusion will become even better in the near future.

It is notorious that the Fusion community is growing. People coming from AE because of Adobe's pricing policy ou simply because they want to move to a node-based software. People coming from Nuke because of the high prices. Combustion orphans (like myself). And people that are beginning to compose now and choose Fusion because it has very functional free version.

This creates an ecossystem. This means more people developing and sharing tutorials, scripts and tools, more job opportunities, more market for the plugin manufacturers.

So, why Fusion? Because it is alive and growing. And it's fun.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 4:37 am

I still think AE can do some mograph that Fusion can't do.
Especially because of its fake 3D world.

This for exemple :
http://www.videocopilot.net/tutorials/t ... ent_glass/

I tried all night long to do the same thing in Fusion.
Couldn't.
AE can make 2d depth and still use filters on these (fake) 3D layers.

In fusion you can not create depth on a 2d element, unless if you go in 3D environment.
And then no more filter.

But maybe I'm wrong :)
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 9:12 am

Alex Uzan wrote:I still think AE can do some mograph that Fusion can't do.
Especially because of its fake 3D world.

This for exemple :
http://www.videocopilot.net/tutorials/t ... ent_glass/

I tried all night long to do the same thing in Fusion.
Couldn't.
AE can make 2d depth and still use filters on these (fake) 3D layers.

In fusion you can not create depth on a 2d element, unless if you go in 3D environment.
And then no more filter.

But maybe I'm wrong :)


you have to think different, everytime in AE you make a layer a 3d layer its in fusion also a 3d rendering. after that you can apply 2d effects/filters again
will get messy over time with a lot of layers, but possible
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 9:24 am

animation starts at 1001 (my default starting frame), textures from the linked VC tutorial

Code: Select all
{
   Tools = ordered() {
      BSpline1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0822695035460993, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -148.5 } },
      },
      BSpline1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.23958332836628, Y = 0.230158731341362 },
                     { X = -0.288690477609634, Y = -0.116402119398117 },
                     { X = -0.193452380952381, Y = -0.203703703703704 },
                     { X = -0.0848214285714285, Y = -0.246031746031746 },
                     { X = 0.0357142857142857, Y = -0.203703703703704 },
                     { X = 0.117559523809524, Y = 0.0291005291005291 },
                     { X = 0.0595238095238095, Y = 0.216931216931217 },
                     { X = -0.0729166666666667, Y = 0.182539682539683 },
                     { X = -0.145833333333333, Y = 0.0343915343915344 },
                     { X = -0.227678571428571, Y = 0.256613756613757 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      Background1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.54882868491497, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 0.857351602689097, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, -115.5 } },
      },
      ImagePlane3D3 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.291425708253916, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.410700860022448, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -1.52930044708758, },
            ["Transform3DOp.Scale.X"] = Input { Value = 4, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            MaterialInput = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -115.5 } },
      },
      BSpline1_1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0822695035460993, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1_1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -49.5 } },
      },
      BSpline1_1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.282738090271042, Y = -0.0449735437909131 },
                     { X = -0.126488096657253, Y = -0.314814817810816 },
                     { X = 0.0699404761904761, Y = -0.335978835978836 },
                     { X = 0.209821428571429, Y = -0.335978835978836 },
                     { X = 0.282738095238095, Y = -0.195767195767196 },
                     { X = 0.364583333333333, Y = 0.037037037037037 },
                     { X = 0.306547619047619, Y = 0.224867724867725 },
                     { X = 0.174107142857143, Y = 0.19047619047619 },
                     { X = -0.0491071428571428, Y = 0.26984126984127 },
                     { X = -0.113095238095238, Y = 0.0105820105820106 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      ImagePlane3D2 = ImagePlane3D {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 1.9219624, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -1.1412162, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -2.4099951, },
            ["Transform3DOp.Scale.X"] = Input { Value = 5, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            MaterialInput = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -16.5 } },
      },
      Background1_1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.583206340950877, },
            TopLeftGreen = Input { Value = 0.649975409432828, },
            TopLeftBlue = Input { Value = 0.793110173512391, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1_1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, -16.5 } },
      },
      Instance_Merge3D1_2 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            StartEndRenderScripts = Input { },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 550, -181.5 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input {
               SourceOp = "Camera3D1XOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Y"] = Input {
               SourceOp = "Camera3D1YOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Z"] = Input {
               SourceOp = "Camera3D1ZOffset",
               Source = "Value",
            },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            ["Transform3DOp.Target.X"] = Input {
               SourceOp = "Camera3D1XTargetPosition",
               Source = "Value",
            },
            ["Transform3DOp.Target.Y"] = Input {
               SourceOp = "Camera3D1YTargetPosition",
               Source = "Value",
            },
            ["Transform3DOp.Target.Z"] = Input {
               SourceOp = "Camera3D1ZTargetPosition",
               Source = "Value",
            },
            FLength = Input { Value = 18.2123442718302, },
            PlaneOfFocus = Input {
               SourceOp = "Camera3D1PlaneofFocusfordepthoffield",
               Source = "Value",
            },
            ["Stereo.Mode"] = Input { Value = FuID { "Mono" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ControlVis = Input { Value = 1, },
            PlaneOfFocusVis = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, -16.5 } },
      },
      Camera3D1XOffset = BezierSpline {
         SplineColor = { Red = 250, Green = 59, Blue = 49 },
         NameSet = true,
         KeyFrames = {
            [1001] = { -0.728125815878157, RH = { 1018, -0.282373119173566 }, Flags = { Linear = true } },
            [1052] = { 0.609132274235615, LH = { 1035, 0.163379577531024 }, Flags = { Linear = true } }
         }
      },
      Camera3D1YOffset = BezierSpline {
         SplineColor = { Red = 252, Green = 131, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0.44442111401097, RH = { 1018, 0.443073997231696 }, Flags = { Linear = true } },
            [1052] = { 0.440379763673149, LH = { 1035, 0.441726880452423 }, Flags = { Linear = true } }
         }
      },
      Camera3D1ZOffset = BezierSpline {
         SplineColor = { Red = 254, Green = 207, Blue = 46 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 1.52538187148581, RH = { 1018, 1.58428435893103 }, Flags = { Linear = true } },
            [1052] = { 1.70208933382146, LH = { 1035, 1.64318684637624 }, Flags = { Linear = true } }
         }
      },
      Camera3D1XTargetPosition = BezierSpline {
         SplineColor = { Red = 251, Green = 183, Blue = 208 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, RH = { 1018, 0.031389822678872 }, Flags = { Linear = true } },
            [1052] = { 0.094169468036616, LH = { 1035, 0.062779645357744 }, Flags = { Linear = true } }
         }
      },
      Camera3D1YTargetPosition = BezierSpline {
         SplineColor = { Red = 252, Green = 177, Blue = 123 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, RH = { 1018, 0.0674254798915355 }, Flags = { Linear = true } },
            [1052] = { 0.202276439674606, LH = { 1035, 0.134850959783071 }, Flags = { Linear = true } }
         }
      },
      Camera3D1ZTargetPosition = BezierSpline {
         SplineColor = { Red = 254, Green = 247, Blue = 117 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, Flags = { Linear = true } }
         }
      },
      Camera3D1PlaneofFocusfordepthoffield = BezierSpline {
         SplineColor = { Red = 127, Green = 236, Blue = 79 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 1.6790780141844, Flags = { Linear = true } }
         }
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 7, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Texture2D1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 115.5 } },
      },
      Texture2D1 = Texture2DOperator {
         Inputs = {
            Input = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            UScale = Input { Value = 0.33, },
            VScale = Input {
               Value = 0.33,
               Expression = "UScale",
            },
            WrapMode = Input { Value = FuID { "Wrap" }, },
            MaterialID = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 115.5 } },
      },
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "E:\\projekte\\VC_Glass\\139\\ice_diffuse.jpg",
               FormatID = "JpegFormat",
               StartFrame = -1,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 1001,
               GlobalEnd = 1001
            }
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 115.5 } },
      },
      Instance_Renderer3D1_2 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1_2",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.Lighting"] = Input { Value = 0, },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 715, -181.5 } },
      },
      Instance_Merge3D1 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            StartEndRenderScripts = Input { },
            SceneInput3 = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 825, 82.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, -16.5 } },
      },
      Text3D1 = Text3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.468498623465278, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "Fusion"
               },
            },
            Style = Input { Value = "Bold", },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.121374045801527, },
            BevelDepth = Input { Value = 0.0305343511450382, },
            BevelWidth = Input { Value = 0.00190839694656489, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0.0345706091938622, },
            Green1 = Input { Value = 0.036529018595952, },
            Blue1 = Input { Value = 0.0931651778786616, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            Transform1 = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 935, -115.5 } },
      },
      Text3D1ExtrusionProfile = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.0196116135138184, 0.098058067569092 }, Flags = { Linear = true } },
               [0.2] = { 1, LH = { 0.180388386486182, 0.901941932430908 }, RH = { 0.3, 1 }, Flags = { Linear = true } },
               [0.8] = { 1, LH = { 0.7, 1 }, RH = { 0.819611613513818, 0.901941932430908 }, Flags = { Linear = true } },
               [1] = { 0, LH = { 0.980388386486182, 0.098058067569092 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      Instance_Renderer3D1 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererSoftware.Channels.Nest"] = Input { },
            ["RendererSoftware.Lighting"] = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { },
            ["RendererOpenGL.Lighting"] = Input { },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 935, 82.5 } },
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.EnableAccumEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 16, },
            ["RendererOpenGL.DoFBlur"] = Input { Value = 0.1, },
            ["RendererOpenGL.Lighting"] = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, -16.5 } },
      },
      Instance_Renderer3D1_1 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1_1",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererSoftware.Channels.Nest"] = Input { },
            ["RendererSoftware.Lighting"] = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { },
            ["RendererOpenGL.Lighting"] = Input { },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 935, 247.5 } },
      },
      Loader2 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "E:\\projekte\\VC_Glass\\139\\ice_normal.jpg",
               FormatID = "JpegFormat",
               StartFrame = -1,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 1001,
               GlobalEnd = 1001
            }
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 247.5 } },
      },
      Instance_Texture2D1 = Texture2DOperator {
         SourceOp = "Texture2D1",
         Inputs = {
            Input = Input {
               SourceOp = "Loader2",
               Source = "Output",
            },
            VScale = Input { Expression = "UScale", },
            ["FilterMode.Nest"] = Input { },
            MaterialIDNest = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 330, 247.5 } },
      },
      Instance_Merge3D1_1 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            SceneInput1 = Input {
               SourceOp = "Instance_ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            StartEndRenderScripts = Input { },
            SceneInput3 = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 825, 247.5 } },
      },
      Instance_ImagePlane3D1 = ImagePlane3D {
         SourceOp = "ImagePlane3D1",
         Inputs = {
            SceneInput = Input { },
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { },
            ["SurfacePlaneInputs.Matte.Nest"] = Input { },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { },
            ["SurfacePlaneInputs.Controls.Nest"] = Input { },
            ["SurfacePlaneInputs.ObjectID.Nest"] = Input { },
            MaterialInput = Input {
               SourceOp = "Instance_Texture2D1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.Diffuse.Nest"] = Input { },
            ["MtlStdInputs.Specular.Nest"] = Input { },
            ["MtlStdInputs.Transmittance.Nest"] = Input { },
            ["MtlStdInputs.MaterialIDNest"] = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 247.5 } },
      },
      ColorSpace1 = ColorSpace {
         Inputs = {
            ColorSpaceConversion = Input { Value = 1, },
            ColorType = Input { Value = 4, },
            Input = Input {
               SourceOp = "Instance_Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 82.5 } },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 10, },
            ToRed = Input { Value = 4, },
            ToBlue = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            Background = Input {
               SourceOp = "ColorSpace1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 82.5 } },
      },
      ColorSpace1_1 = ColorSpace {
         Inputs = {
            ColorSpaceConversion = Input { Value = 2, },
            ColorType = Input { Value = 4, },
            Input = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1430, 82.5 } },
      },
      Displace1 = Displace {
         Inputs = {
            Type = Input { Value = 1, },
            XOffset = Input { Value = -0.5, },
            XRefraction = Input { Value = 0.0539007092198582, },
            YOffset = Input { Value = -0.5, },
            YRefraction = Input { Value = -0.051063829787234, },
            Spread = Input { Value = 0.0319148936170213, },
            LightChannel = Input { Value = 5, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Instance_Renderer3D1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, -16.5 } },
      },
      BrightnessContrast2 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 0.49645390070922, },
            Contrast = Input { Value = -0.297872340425532, },
            Input = Input {
               SourceOp = "ColorSpace1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1540, 82.5 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            CorrectionRange = Input { Value = 2, },
            WheelRangeDummy1 = Input { Value = 2, },
            MasterRGBGamma = Input { Value = 0.375886524822695, },
            MasterRedGain = Input { Value = 0.829787234042553, },
            MasterBlueGain = Input { Value = 1.25531914893617, },
            MidTonesRGBGain = Input { Value = 0.709219858156028, },
            HighlightsRGBGain = Input { Value = 2.9290780141844, },
            HighlightsRGBGamma = Input { Value = 0.971631205673759, },
            SuppressionRangeDummy = Input { Value = 2, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "BrightnessContrast2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1650, 82.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Displace1",
               Source = "Output",
            },
            ApplyMode = Input { Value = FuID { "Overlay" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1760, -16.5 } },
      },
      SimpleVignette11 = MacroOperator {
         Inputs = ordered() {
            Input1 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "SoftEdge",
            },
            Input2 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "BorderWidth",
            },
            Input3 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "Width",
               Default = 1.12,
            },
            Input4 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "Height",
               Default = 1.12,
            },
            Input5 = InstanceInput {
               SourceOp = "BrightnessContrast1",
               Source = "Gain",
               Default = 0.2,
            },
            Input6 = InstanceInput {
               SourceOp = "BrightnessContrast1",
               Source = "Saturation",
               Default = 0.5,
            },
            MainInput1 = InstanceInput {
               SourceOp = "Input",
               Source = "Input",
            },
            Input7 = InstanceInput {
               SourceOp = "Blur1",
               Source = "LockXY",
               Default = 1,
            },
            Input8 = InstanceInput {
               SourceOp = "Blur1",
               Source = "XBlurSize",
               Default = 0,
            },
            Input9 = InstanceInput {
               SourceOp = "Blur1",
               Source = "YBlurSize",
               Default = 1,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Output",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 2090, -16.5 } },
         Tools = ordered() {
            Ellipse1 = EllipseMask {
               CtrlWShown = false,
               Inputs = {
                  SoftEdge = Input { Value = 0.134042553191489, },
                  Invert = Input { Value = 1, },
                  MaskWidth = Input { Value = 320, },
                  MaskHeight = Input { Value = 240, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  Width = Input { Value = 0.798231438096547, },
                  Height = Input { Value = 0.536192775110585, },
               },
               ViewInfo = OperatorInfo { Pos = { 0.0734863, 9.42813 } },
            },
            BrightnessContrast1 = BrightnessContrast {
               CtrlWShown = false,
               Inputs = {
                  Gain = Input { Value = 0.198581560283688, },
                  Saturation = Input { Value = 0.5, },
                  Input = Input {
                     SourceOp = "Input",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Ellipse1",
                     Source = "Mask",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -64.8715, 74.9352 } },
            },
            Input = BrightnessContrast {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Input = Input {
                     SourceOp = "Merge1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -184.795, 75.2751 } },
            },
            Blur1 = Blur {
               CtrlWShown = false,
               Inputs = {
                  XBlurSize = Input { Value = 0, },
                  Input = Input {
                     SourceOp = "BrightnessContrast1",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Ellipse1",
                     Source = "Mask",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 60.7415, 74.1552 } },
            },
            Output = BrightnessContrast {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Input = Input {
                     SourceOp = "Blur1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 184.794, 74.1552 } },
            }
         },
      }
   }
}

Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 11:08 am

Wow :shock:
Thank You Michael :)

I'm gonna learn a lot from your comp.
I see that you didn't animate the text at first.
That was the big issue I didn't manage.

If you make a 2d text, you can not play with the z depth.
And if you make a 3d text, there is no way to animate a Blur-In and stay in 3D
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 2:05 pm

Alex Uzan wrote:If you make a 2d text, you can not play with the z depth.
And if you make a 3d text, there is no way to animate a Blur-In and stay in 3D


from the VC tutorial: the blur there was just used to fake the depth of the ice, further away = more blur. i would fake the same with the DoF setting in the 3d camera or maybe with Z pass based blur after rendering for text 3d

(animation still on frame 1001)
Code: Select all
{
   Tools = ordered() {
      Background1_2 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.839445405616103, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 0.987252924009254, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1_2",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, -379.5 } },
      },
      BSpline1_3 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0524822695035461, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1_3Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -313.5 } },
      },
      BSpline1_3Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.282738090271042, Y = -0.0449735437909131 },
                     { X = -0.126488096657253, Y = -0.314814817810816 },
                     { X = 0.0699404761904761, Y = -0.335978835978836 },
                     { X = 0.209821428571429, Y = -0.335978835978836 },
                     { X = 0.282738095238095, Y = -0.195767195767196 },
                     { X = 0.364583333333333, Y = 0.037037037037037 },
                     { X = 0.306547619047619, Y = 0.224867724867725 },
                     { X = 0.174107142857143, Y = 0.19047619047619 },
                     { X = -0.0491071428571428, Y = 0.26984126984127 },
                     { X = -0.113095238095238, Y = 0.0105820105820106 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      BSpline1_2 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0822695035460993, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1_2Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -412.5 } },
      },
      BSpline1_2Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.23958332836628, Y = 0.230158731341362 },
                     { X = -0.288690477609634, Y = -0.116402119398117 },
                     { X = -0.193452380952381, Y = -0.203703703703704 },
                     { X = -0.0848214285714285, Y = -0.246031746031746 },
                     { X = 0.0357142857142857, Y = -0.203703703703704 },
                     { X = 0.117559523809524, Y = 0.0291005291005291 },
                     { X = 0.0595238095238095, Y = 0.216931216931217 },
                     { X = -0.0729166666666667, Y = 0.182539682539683 },
                     { X = -0.145833333333333, Y = 0.0343915343915344 },
                     { X = -0.227678571428571, Y = 0.256613756613757 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      Background1_3 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.773725830020305, },
            TopLeftGreen = Input { Value = 0.830294372515229, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1_3",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, -280.5 } },
      },
      ImagePlane3D2_1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.739334348659237, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.234907034191963, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -2.60153530788745, },
            ["Transform3DOp.Scale.X"] = Input { Value = 2.51958015267176, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            MaterialInput = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -280.5 } },
      },
      ImagePlane3D3_1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.291425708253916, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.410700860022448, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -3.6831466, },
            ["Transform3DOp.Rotate.Z"] = Input { Value = 90, },
            ["Transform3DOp.Scale.X"] = Input { Value = 4, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            MaterialInput = Input {
               SourceOp = "Background1_2",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -379.5 } },
      },
      Instance_Merge3D1_2 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["Transform3DOp.Import"] = Input { },
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput4 = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 550, -181.5 } },
      },
      Instance_Renderer3D1_2 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1_2",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererSoftware.Nest"] = Input { },
            ["RendererSoftware.Channels.Nest"] = Input { },
            ["RendererSoftware.Channels.RGBA"] = Input { },
            ["RendererSoftware.Channels.Z"] = Input { },
            ["RendererSoftware.Channels.Coverage"] = Input { },
            ["RendererSoftware.Channels.BgColor"] = Input { },
            ["RendererSoftware.Channels.Normal"] = Input { },
            ["RendererSoftware.Channels.TexCoord0"] = Input { },
            ["RendererSoftware.Channels.ObjectID"] = Input { },
            ["RendererSoftware.Channels.MaterialID"] = Input { },
            ["RendererSoftware.Channels.WorldCoord"] = Input { },
            ["RendererSoftware.Channels.Vector"] = Input { },
            ["RendererSoftware.Channels.BackVector"] = Input { },
            ["RendererSoftware.Lighting"] = Input { },
            ["RendererSoftware.LightingEnabled"] = Input { },
            ["RendererSoftware.ShadowsEnabled"] = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.Lighting"] = Input { },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 715, -181.5 } },
      },
      BSpline1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0822695035460993, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -148.5 } },
      },
      BSpline1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.23958332836628, Y = 0.230158731341362 },
                     { X = -0.288690477609634, Y = -0.116402119398117 },
                     { X = -0.193452380952381, Y = -0.203703703703704 },
                     { X = -0.0848214285714285, Y = -0.246031746031746 },
                     { X = 0.0357142857142857, Y = -0.203703703703704 },
                     { X = 0.117559523809524, Y = 0.0291005291005291 },
                     { X = 0.0595238095238095, Y = 0.216931216931217 },
                     { X = -0.0729166666666667, Y = 0.182539682539683 },
                     { X = -0.145833333333333, Y = 0.0343915343915344 },
                     { X = -0.227678571428571, Y = 0.256613756613757 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      PointLight1 = LightPoint {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 1.26770662726889, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 1.11773017385063, },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, -214.5 } },
      },
      ImagePlane3D3 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.291425708253916, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.410700860022448, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -1.52930044708758, },
            ["Transform3DOp.Scale.X"] = Input { Value = 4, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 4, },
            MaterialInput = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 5, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -115.5 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.54882868491497, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 0.857351602689097, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 110, -115.5 } },
      },
      Text3D1 = Text3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 0.0361785620048507, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.108768091583178, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input {
               SourceOp = "Follower1",
               Source = "StyledText",
            },
            Style = Input { Value = "Bold", },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.0816793893129771, },
            ExtrusionSubdivisions = Input { Value = 4, },
            BevelDepth = Input { Value = 0.0106870229007634, },
            BevelWidth = Input { Value = 0.00763358778625954, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0.18804467179319, },
            Green1 = Input { Value = 0.198783339485411, },
            Blue1 = Input { Value = 0.309357827224905, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, -115.5 } },
      },
      Follower1 = StyledTextFollower {
         CtrlWZoom = false,
         Inputs = {
            Delay = Input { Value = 3, },
            Text = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "Fusion"
               },
            },
            Transform1 = Input { Value = 1, },
            OffsetZ1 = Input {
               SourceOp = "Follower1OffsetZ",
               Source = "Value",
            },
         },
      },
      Follower1OffsetZ = BezierSpline {
         SplineColor = { Red = 175, Green = 224, Blue = 244 },
         NameSet = true,
         KeyFrames = {
            [1001] = { -0.5, RH = { 1002.33333333333, -0.333333333333333 }, Flags = { Linear = true } },
            [1005] = { 0, LH = { 1001.98, -0.002 } }
         }
      },
      Text3D1ExtrusionProfile = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.0666666666666667, 0.333333333333333 }, Flags = { Linear = true } },
               [0.2] = { 1, LH = { 0.133333333333333, 0.666666666666667 }, RH = { 0.4, 1 }, Flags = { Linear = true } },
               [0.8] = { 1, LH = { 0.6, 1 }, RH = { 0.866666666666667, 0.666666666666667 }, Flags = { Linear = true } },
               [1] = { 0, LH = { 0.933333333333333, 0.333333333333333 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
      },
      BSpline1_1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            SoftEdge = Input { Value = 0.0822695035460993, },
            MaskWidth = Input { Value = 1280, },
            MaskHeight = Input { Value = 720, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1_1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 55, -49.5 } },
      },
      BSpline1_1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1013] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.282738090271042, Y = -0.0449735437909131 },
                     { X = -0.126488096657253, Y = -0.314814817810816 },
                     { X = 0.0699404761904761, Y = -0.335978835978836 },
                     { X = 0.209821428571429, Y = -0.335978835978836 },
                     { X = 0.282738095238095, Y = -0.195767195767196 },
                     { X = 0.364583333333333, Y = 0.037037037037037 },
                     { X = 0.306547619047619, Y = 0.224867724867725 },
                     { X = 0.174107142857143, Y = 0.19047619047619 },
                     { X = -0.0491071428571428, Y = 0.26984126984127 },
                     { X = -0.113095238095238, Y = 0.0105820105820106 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
               } }
         }
      },
      Renderer3D1 = Renderer3D {
         Inputs = {
            Quality = Input { Value = 32, },
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.AccumulationEffects"] = Input { Value = 1, },
            ["RendererOpenGL.EnableAccumEffects"] = Input { Value = 1, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 16, },
            ["RendererOpenGL.LightingEnabled"] = Input { Value = 1, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, -16.5 } },
      },
      Displace1 = Displace {
         Inputs = {
            Type = Input { Value = 1, },
            XOffset = Input { Value = -0.5, },
            XRefraction = Input { Value = 0.025, },
            YOffset = Input { Value = -0.5, },
            YRefraction = Input { Value = -0.025, },
            LightChannel = Input { Value = 5, },
            Input = Input {
               SourceOp = "Renderer3D1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Blur2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, -16.5 } },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = 1.9219624, },
            ["Transform3DOp.Translate.Y"] = Input { Value = -0.846243563891512, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -2.4099951, },
            ["Transform3DOp.Scale.X"] = Input { Value = 5, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            MaterialInput = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 4, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -16.5 } },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input {
               SourceOp = "Camera3D1XOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Y"] = Input {
               SourceOp = "Camera3D1YOffset",
               Source = "Value",
            },
            ["Transform3DOp.Translate.Z"] = Input {
               SourceOp = "Camera3D1ZOffset",
               Source = "Value",
            },
            ["Transform3DOp.UseTarget"] = Input { Value = 1, },
            ["Transform3DOp.Target.X"] = Input {
               SourceOp = "Camera3D1XTargetPosition",
               Source = "Value",
            },
            ["Transform3DOp.Target.Y"] = Input {
               SourceOp = "Camera3D1YTargetPosition",
               Source = "Value",
            },
            ["Transform3DOp.Target.Z"] = Input {
               SourceOp = "Camera3D1ZTargetPosition",
               Source = "Value",
            },
            FLength = Input { Value = 18.2123442718302, },
            PlaneOfFocus = Input {
               SourceOp = "Camera3D1PlaneofFocusfordepthoffield",
               Source = "Value",
            },
            ["Stereo.Mode"] = Input { Value = FuID { "Mono" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ControlVis = Input { Value = 1, },
            PlaneOfFocusVis = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 660, -16.5 } },
      },
      Camera3D1XOffset = BezierSpline {
         SplineColor = { Red = 250, Green = 59, Blue = 49 },
         NameSet = true,
         KeyFrames = {
            [1001] = { -0.312586898199878, RH = { 1018, -0.133749762388556 }, Flags = { Linear = true } },
            [1052] = { 0.223924509234088, LH = { 1035, 0.045087373422766 }, Flags = { Linear = true } }
         }
      },
      Camera3D1YOffset = BezierSpline {
         SplineColor = { Red = 252, Green = 131, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0.44442111401097, RH = { 1018, 0.480533032911778 }, Flags = { Linear = true } },
            [1052] = { 0.552756870713395, LH = { 1035, 0.516644951812587 }, Flags = { Linear = true } }
         }
      },
      Camera3D1ZOffset = BezierSpline {
         SplineColor = { Red = 254, Green = 207, Blue = 46 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 1.72373522753357, RH = { 1018, 1.75038168204207 }, Flags = { Linear = true } },
            [1052] = { 1.80367459105908, LH = { 1035, 1.77702813655058 }, Flags = { Linear = true } }
         }
      },
      Camera3D1XTargetPosition = BezierSpline {
         SplineColor = { Red = 251, Green = 183, Blue = 208 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, RH = { 1018, 0.031389822678872 }, Flags = { Linear = true } },
            [1052] = { 0.094169468036616, LH = { 1035, 0.062779645357744 }, Flags = { Linear = true } }
         }
      },
      Camera3D1YTargetPosition = BezierSpline {
         SplineColor = { Red = 252, Green = 177, Blue = 123 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, RH = { 1018, 0.0674254798915353 }, Flags = { Linear = true } },
            [1052] = { 0.202276439674606, LH = { 1035, 0.134850959783071 }, Flags = { Linear = true } }
         }
      },
      Camera3D1ZTargetPosition = BezierSpline {
         SplineColor = { Red = 254, Green = 247, Blue = 117 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 0, Flags = { Linear = true } }
         }
      },
      Camera3D1PlaneofFocusfordepthoffield = BezierSpline {
         SplineColor = { Red = 127, Green = 236, Blue = 79 },
         NameSet = true,
         KeyFrames = {
            [1001] = { 1.6790780141844, RH = { 1018, 1.73522458628842 }, Flags = { Linear = true } },
            [1052] = { 1.84751773049645, LH = { 1035, 1.79137115839243 }, Flags = { Linear = true } }
         }
      },
      Background1_1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1001, },
            GlobalOut = Input { Value = 1100, },
            Width = Input { Value = 1280, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.583206340950877, },
            TopLeftGreen = Input { Value = 0.649975409432828, },
            TopLeftBlue = Input { Value = 0.793110173512391, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "BSpline1_1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 55, -16.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput5 = Input {
               SourceOp = "ImagePlane3D3_1",
               Source = "Output",
            },
            SceneInput7 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
            SceneInput6 = Input {
               SourceOp = "ImagePlane3D2_1",
               Source = "Output",
            },
            SceneInput4 = Input {
               SourceOp = "ImagePlane3D3",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, -16.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Displace1",
               Source = "Output",
            },
            ApplyMode = Input { Value = FuID { "Overlay" }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1760, -16.5 } },
      },
      ColorSpace1_1 = ColorSpace {
         Inputs = {
            ColorSpaceConversion = Input { Value = 2, },
            ColorType = Input { Value = 4, },
            Input = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1430, 82.5 } },
      },
      BrightnessContrast2 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 0.49645390070922, },
            Contrast = Input { Value = -0.297872340425532, },
            Input = Input {
               SourceOp = "ColorSpace1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1540, 82.5 } },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 10, },
            ToRed = Input { Value = 4, },
            ToBlue = Input { Value = 4, },
            ToAlpha = Input { Value = 4, },
            Background = Input {
               SourceOp = "ColorSpace1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 82.5 } },
      },
      ColorSpace1 = ColorSpace {
         Inputs = {
            ColorSpaceConversion = Input { Value = 1, },
            ColorType = Input { Value = 4, },
            Input = Input {
               SourceOp = "Instance_Renderer3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 82.5 } },
      },
      Instance_Renderer3D1 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererSoftware.Nest"] = Input { },
            ["RendererSoftware.Channels.Nest"] = Input { },
            ["RendererSoftware.Channels.RGBA"] = Input { },
            ["RendererSoftware.Channels.Z"] = Input { },
            ["RendererSoftware.Channels.Coverage"] = Input { },
            ["RendererSoftware.Channels.BgColor"] = Input { },
            ["RendererSoftware.Channels.Normal"] = Input { },
            ["RendererSoftware.Channels.TexCoord0"] = Input { },
            ["RendererSoftware.Channels.ObjectID"] = Input { },
            ["RendererSoftware.Channels.MaterialID"] = Input { },
            ["RendererSoftware.Channels.WorldCoord"] = Input { },
            ["RendererSoftware.Channels.Vector"] = Input { },
            ["RendererSoftware.Channels.BackVector"] = Input { },
            ["RendererSoftware.Lighting"] = Input { },
            ["RendererSoftware.LightingEnabled"] = Input { },
            ["RendererSoftware.ShadowsEnabled"] = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { },
            ["RendererOpenGL.Lighting"] = Input { },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 935, 82.5 } },
      },
      Instance_Merge3D1 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["Transform3DOp.Import"] = Input { },
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "PointLight1",
               Source = "Output",
            },
            SceneInput4 = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 82.5 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            CorrectionRange = Input { Value = 2, },
            WheelRangeDummy1 = Input { Value = 2, },
            MasterRGBGamma = Input { Value = 0.375886524822695, },
            MasterRedGain = Input { Value = 0.829787234042553, },
            MasterBlueGain = Input { Value = 1.25531914893617, },
            MidTonesRGBGain = Input { Value = 0.709219858156028, },
            HighlightsRGBGain = Input { Value = 2.9290780141844, },
            HighlightsRGBGamma = Input { Value = 0.971631205673759, },
            SuppressionRangeDummy = Input { Value = 2, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "BrightnessContrast2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1650, 82.5 } },
      },
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "E:\\projekte\\VC_Glass\\139\\ice_diffuse.jpg",
               FormatID = "JpegFormat",
               StartFrame = -1,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 1001,
               GlobalEnd = 1001
            }
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { -55, 115.5 } },
      },
      Texture2D1 = Texture2DOperator {
         Inputs = {
            Input = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            UScale = Input { Value = 0.33, },
            VScale = Input {
               Value = 0.33,
               Expression = "UScale",
            },
            WrapMode = Input { Value = FuID { "Wrap" }, },
            MaterialID = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 110, 115.5 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Scale.X"] = Input { Value = 7, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Texture2D1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 115.5 } },
      },
      SimpleVignette11 = MacroOperator {
         Inputs = ordered() {
            Input1 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "SoftEdge",
            },
            Input2 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "BorderWidth",
            },
            Input3 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "Width",
               Default = 1.12,
            },
            Input4 = InstanceInput {
               SourceOp = "Ellipse1",
               Source = "Height",
               Default = 1.12,
            },
            Input5 = InstanceInput {
               SourceOp = "BrightnessContrast1",
               Source = "Gain",
               Default = 0.2,
            },
            Input6 = InstanceInput {
               SourceOp = "BrightnessContrast1",
               Source = "Saturation",
               Default = 0.5,
            },
            MainInput1 = InstanceInput {
               SourceOp = "Input",
               Source = "Input",
            },
            Input7 = InstanceInput {
               SourceOp = "Blur1",
               Source = "LockXY",
               Default = 1,
            },
            Input8 = InstanceInput {
               SourceOp = "Blur1",
               Source = "XBlurSize",
               Default = 0,
            },
            Input9 = InstanceInput {
               SourceOp = "Blur1",
               Source = "YBlurSize",
               Default = 1,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Output",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 1980, -16.5 } },
         Tools = ordered() {
            Ellipse1 = EllipseMask {
               CtrlWShown = false,
               Inputs = {
                  SoftEdge = Input { Value = 0.134042553191489, },
                  Invert = Input { Value = 1, },
                  MaskWidth = Input { Value = 320, },
                  MaskHeight = Input { Value = 240, },
                  PixelAspect = Input { Value = { 1, 1 }, },
                  Width = Input { Value = 0.798231438096547, },
                  Height = Input { Value = 0.536192775110585, },
               },
               ViewInfo = OperatorInfo { Pos = { 0.0739898, 9.42812 } },
            },
            BrightnessContrast1 = BrightnessContrast {
               CtrlWShown = false,
               Inputs = {
                  Gain = Input { Value = 0.198581560283688, },
                  Saturation = Input { Value = 0.5, },
                  Input = Input {
                     SourceOp = "Input",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Ellipse1",
                     Source = "Mask",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { -64.871, 74.9352 } },
            },
            Input = BrightnessContrast {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Input = Input {
                     SourceOp = "Merge1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { -184.794, 75.2751 } },
            },
            Blur1 = Blur {
               CtrlWShown = false,
               Inputs = {
                  XBlurSize = Input { Value = 0, },
                  Input = Input {
                     SourceOp = "BrightnessContrast1",
                     Source = "Output",
                  },
                  EffectMask = Input {
                     SourceOp = "Ellipse1",
                     Source = "Mask",
                  }
               },
               ViewInfo = OperatorInfo { Pos = { 60.742, 74.1552 } },
            },
            Output = BrightnessContrast {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Input = Input {
                     SourceOp = "Blur1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 184.795, 74.1552 } },
            }
         },
      },
      SoftGlow1 = SoftGlow {
         Inputs = {
            Threshold = Input { Value = 0.202127659574468, },
            Gain = Input { Value = 0.975177304964539, },
            Input = Input {
               SourceOp = "Output",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2145, -16.5 } },
      },
      Loader2 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "E:\\projekte\\VC_Glass\\139\\ice_normal.jpg",
               FormatID = "JpegFormat",
               StartFrame = -1,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 1001,
               GlobalEnd = 1001
            }
         },
         CtrlWZoom = false,
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { -165, 247.5 } },
      },
      Instance_ImagePlane3D1 = ImagePlane3D {
         SourceOp = "ImagePlane3D1",
         Inputs = {
            SceneInput = Input { },
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["Transform3DOp.Import"] = Input { },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { },
            ["SurfacePlaneInputs.Lighting.Nest"] = Input { },
            ["SurfacePlaneInputs.Matte.Nest"] = Input { },
            ["SurfacePlaneInputs.BlendMode.Nest"] = Input { },
            ["SurfacePlaneInputs.Controls.Nest"] = Input { },
            ["SurfacePlaneInputs.ObjectID.Nest"] = Input { },
            MaterialInput = Input {
               SourceOp = "Instance_Texture2D1",
               Source = "MaterialOutput",
            },
            ["MtlStdInputs.Diffuse.Nest"] = Input { },
            ["MtlStdInputs.Specular.Nest"] = Input { },
            ["MtlStdInputs.Transmittance.Nest"] = Input { },
            ["MtlStdInputs.MaterialIDNest"] = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 247.5 } },
      },
      Instance_Texture2D1 = Texture2DOperator {
         SourceOp = "Texture2D1",
         Inputs = {
            Input = Input {
               SourceOp = "Loader2",
               Source = "Output",
            },
            VScale = Input {
               Value = 0.33,
               Expression = "UScale"
            },
            ["FilterMode.Nest"] = Input { },
            MaterialIDNest = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 110, 247.5 } },
      },
      Blur2 = Blur {
         Inputs = {
            Input = Input {
               SourceOp = "Instance_Renderer3D1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 247.5 } },
      },
      Instance_Merge3D1_1 = Merge3D {
         SourceOp = "Merge3D1",
         Inputs = {
            ["Transform3DOp.Translation"] = Input { },
            ["Transform3DOp.Rotation"] = Input { },
            ["Transform3DOp.PivotNest"] = Input { },
            ["Transform3DOp.ScaleNest"] = Input { },
            ["Transform3DOp.TargetNest"] = Input { },
            ["Transform3DOp.Import"] = Input { },
            SceneInput1 = Input {
               SourceOp = "Instance_ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
            SceneInput3 = Input { },
            StartEndRenderScripts = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 247.5 } },
      },
      Instance_Renderer3D1_1 = Renderer3D {
         SourceOp = "Renderer3D1",
         Inputs = {
            ["Gamut.ColorSpaceNest"] = Input { },
            ["Gamut.GammaSpaceNest"] = Input { },
            SceneInput = Input {
               SourceOp = "Instance_Merge3D1_1",
               Source = "Output",
            },
            Reporting = Input { },
            StartEndRenderScripts = Input { },
            ["RendererSoftware.Nest"] = Input { },
            ["RendererSoftware.Channels.Nest"] = Input { },
            ["RendererSoftware.Channels.RGBA"] = Input { },
            ["RendererSoftware.Channels.Z"] = Input { },
            ["RendererSoftware.Channels.Coverage"] = Input { },
            ["RendererSoftware.Channels.BgColor"] = Input { },
            ["RendererSoftware.Channels.Normal"] = Input { },
            ["RendererSoftware.Channels.TexCoord0"] = Input { },
            ["RendererSoftware.Channels.ObjectID"] = Input { },
            ["RendererSoftware.Channels.MaterialID"] = Input { },
            ["RendererSoftware.Channels.WorldCoord"] = Input { },
            ["RendererSoftware.Channels.Vector"] = Input { },
            ["RendererSoftware.Channels.BackVector"] = Input { },
            ["RendererSoftware.Lighting"] = Input { },
            ["RendererSoftware.LightingEnabled"] = Input { },
            ["RendererSoftware.ShadowsEnabled"] = Input { },
            ["RendererOpenGL.Channels.Nest"] = Input { },
            ["RendererOpenGL.Supersampling"] = Input { },
            ["RendererOpenGL.ColorSS"] = Input { },
            ["RendererOpenGL.AuxSS.Nest"] = Input { },
            ["RendererOpenGL.AccumulationEffects"] = Input { },
            ["RendererOpenGL.Lighting"] = Input { },
            ["RendererOpenGL.Texturing"] = Input { },
            EffectMask = Input { }
         },
         ViewInfo = OperatorInfo { Pos = { 935, 247.5 } },
      }
   }
}



on the other hand you can also use the "transform" option in the "shading tab" to move the characters in Z space in the Text+ (2d) node. then you can use the blur in the "shading tab" to soften you text

if you now some how manage to conect the camera angle to the rotation in the "transform" tab you can have also the feeling that the 2d text lives in the same space as the 3d objects.
Offline

Alaz Soytemiz

  • Posts: 135
  • Joined: Tue Nov 11, 2014 8:26 am

Re: Noob question : Why Fusion ?

PostThu Mar 02, 2017 7:27 pm

Adelson Munhoz wrote:Everytime I hear that After FX is for motion graphics and Fusion is for composition, I remember the Dunn Lewis' portfolio.


And I remember krokodoove showcases.


Sent from my iPhone using Tapatalk
Windows 10 Pro 64Bit
Processor: Intel i7-6800K 3.40GHz
Ram: 128GB
Graphics Card: NVIDIA GeForce GTX 1070
Disks: Samsung SSD 970 PRO, Intel® SSD 750 Series (400GB, 1/2 Height PCIe 3.0, 20nm, MLC)
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 1:45 am

michael vorberg wrote:
Alex Uzan wrote:If you make a 2d text, you can not play with the z depth.
And if you make a 3d text, there is no way to animate a Blur-In and stay in 3D


from the VC tutorial: the blur there was just used to fake the depth of the ice, further away = more blur. i would fake the same with the DoF setting in the 3d camera or maybe with Z pass based blur after rendering for text 3d


Thanks again Michael :)

on the other hand you can also use the "transform" option in the "shading tab" to move the characters in Z space in the Text+ (2d) node. then you can use the blur in the "shading tab" to soften you text

if you now some how manage to conect the camera angle to the rotation in the "transform" tab you can have also the feeling that the 2d text lives in the same space as the 3d objects.

Yes that's what I did, and it works well, except one major thing :
The text has no Z depth and the camera can not turn around it as in the VC tut.

I have to say that your comp is way too much complicated to my skills.
I don't know how you manage all this instances whithout a headache :mrgreen:
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 7:31 am

the text+ has no real z depth but a "fake" one:
add a "follower" modifier to your text
in the modifier animate the "Offset Z" under "shading"->"transform", set some "delay" in the "timing" tab
now you should see that the letters grow or shrink if you play the animation

if you now go the "transform" tab in the tool (not the modifier) and play with the "line rotation" you can see the letters move in Z space

(maybe a video can explain this better then written words, have to do one)

the problem is now to connect this rotation to the right perspective of the camera

go to a frame around 20
Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalIn = Input { Value = 1, },
            GlobalOut = Input { Value = 2001, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input {
               SourceOp = "Follower1",
               Source = "StyledText",
            },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            SelectTransform = Input { Value = 2, },
            LineRotation = Input { Value = 1, },
            LineAngleX = Input { Value = -38.8732394, },
            LineAngleY = Input { Value = 67.6056338, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 440, 148.5 } },
      },
      Follower1 = StyledTextFollower {
         CtrlWZoom = false,
         Inputs = {
            Delay = Input { Value = 3, },
            Text = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "Z Depth Text+"
               },
            },
            Transform1 = Input { Value = 1, },
            OffsetZ1 = Input {
               SourceOp = "Follower1OffsetZ",
               Source = "Value",
            },
         },
      },
      Follower1OffsetZ = BezierSpline {
         SplineColor = { Red = 175, Green = 224, Blue = 244 },
         NameSet = true,
         KeyFrames = {
            [1] = { 2, RH = { 9.33333333333333, 1.33333333333333 }, Flags = { Linear = true } },
            [26] = { 0, LH = { 17.6666666666667, 0.666666666666667 }, Flags = { Linear = true } }
         }
      }
   }
}
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 3:37 pm

That's smart.

But quite complicated for a simple task that take less than two minutes in After Effects :mrgreen:
Each app has its own strength.
Offline
User avatar

michael vorberg

  • Posts: 943
  • Joined: Wed Nov 12, 2014 8:47 pm
  • Location: stuttgart, germany

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 6:45 pm

Alex Uzan wrote:That's smart.

But quite complicated for a simple task that take less than two minutes in After Effects :mrgreen:
Each app has its own strength.


do i think it took me any longer then 2 minutes? it would have taken me more time in AE, because i dont know anything about it.

that the conclusion of the whole thread:
if you know your software you can be fast in it!
if you need to search and think in the style of the other software you get stuck and everything seems complicated.
Offline
User avatar

Alex Uzan

  • Posts: 106
  • Joined: Wed Jun 01, 2016 12:49 pm
  • Location: France

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 7:01 pm

michael vorberg wrote:
Alex Uzan wrote:That's smart.

But quite complicated for a simple task that take less than two minutes in After Effects :mrgreen:
Each app has its own strength.


do i think it took me any longer then 2 minutes? it would have taken me more time in AE, because i dont know anything about it.

that the conclusion of the whole thread:
if you know your software you can be fast in it!
if you need to search and think in the style of the other software you get stuck and everything seems complicated.

You're absolutey right Michael.

I know well After Effects, and I only spent the last two weeks on Fusion.
I tried, and now I am confident that I'm more an After Effects Guy.

I don't work with 3D Element or EXR files, and if I need to play with 3D world, I prefer to use C4D than Fusion. Especially when we talk about Light and shadows, an area where Fusion is not really good.
Offline
User avatar

Bryan Ray

  • Posts: 2474
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Noob question : Why Fusion ?

PostFri Mar 03, 2017 7:31 pm

michael vorberg wrote:
Bryan Ray wrote:Fusion's 3d system needs some advancements to compete with Nuke's

Any example (besides bicubic planes)?


A bit late coming back here.

Directional lights that can cast shadows. Some more options for geometry generation and manipulation, like Nuke's ModelBuilder, PositionToPoints and PoissonMesh nodes. And a raytrace renderer. Nuke has access to both RenderMan and V-Ray now.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

bill890

  • Posts: 39
  • Joined: Tue Feb 06, 2018 4:08 pm
  • Real Name: Bill Evergreen

Re: Noob question : Why Fusion ?

PostWed Feb 21, 2018 4:43 pm

Noel Froger wrote:Don't forget than After Effect just fall appart the more your project goes complex.
On every project with it there's a point where you just regret haven't picked a node based one. Plus the linear workflow is a joke.

BUT, there's a point where fusion just fall appart too where you regret not using nuke or AE. For me this is where your Alembic files aren't referenced and readed from files
or when you need (95% of the time) a project file outputing different time range and sequences (hello AE or Nuke, bye fusion)
or the horrible exr channel/workflow
or working linear with every tool compatibles

So yeah each App have their weakpoint...


Hello all

I am completely new to VFX and I am wondering what the following statement does mean:

"where your Alembic files aren't referenced and readed from files ....."


Thank you very much for any feedback!

Bill
Next

Return to Fusion

Who is online

Users browsing this forum: Google [Bot] and 14 guests