Chaos Corona Forum
Chaos Corona for 3ds Max => [Max] Corona Goodies - User Contributions => Topic started by: racoonart on 2013-10-17, 13:15:40
-
Ondra was so kind to give me the function for coronas highlight compression and I made a little fusion macro from that. So you can render your stuff without tone-mapping and apply it later in the post.
Corona Highlight compression:
{
Tools = ordered() {
CoronaHighlightCompression1 = MacroOperator {
Inputs = ordered() {
MainInput1 = InstanceInput {
SourceOp = "CoronaHighlighCompression",
Source = "Image1",
},
Input1 = InstanceInput {
SourceOp = "CoronaHighlighCompression",
Source = "NumberIn1",
Name = "HighlightCompression",
MinScale = 1,
MaxScale = 10,
},
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "CoronaHighlighCompression",
Source = "Output",
},
},
ViewInfo = GroupInfo {
Name = "CoronaHighlightCompression",
Pos = { 0, 0, },
},
Tools = ordered() {
CoronaHighlighCompression = Custom {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
Inputs = {
NumberIn1 = Input { Value = 1, },
LUTIn1 = Input {
SourceOp = "CustomTool1LUTIn1",
Source = "Value",
},
LUTIn2 = Input {
SourceOp = "CustomTool1LUTIn2",
Source = "Value",
},
LUTIn3 = Input {
SourceOp = "CustomTool1LUTIn3",
Source = "Value",
},
LUTIn4 = Input {
SourceOp = "CustomTool1LUTIn4",
Source = "Value",
},
RedExpression = Input { Value = "r1 * (1+r1/(n1*n1))/(1+r1)\r\n", },
GreenExpression = Input { Value = "g1 * (1+g1/(n1*n1))/(1+g1)\r\n", },
BlueExpression = Input { Value = "b1 * (1+b1/(n1*n1))/(1+b1)\r\n", },
NumberControls = Input { Value = 1, },
ShowNumber2 = Input { Value = 0, },
ShowNumber3 = Input { Value = 0, },
ShowNumber4 = Input { Value = 0, },
ShowNumber5 = Input { Value = 0, },
ShowNumber6 = Input { Value = 0, },
ShowNumber7 = Input { Value = 0, },
ShowNumber8 = Input { Value = 0, },
PointControls = Input { Value = 1, },
ShowPoint1 = Input { Value = 0, },
ShowPoint2 = Input { Value = 0, },
ShowPoint3 = Input { Value = 0, },
ShowPoint4 = Input { Value = 0, },
LUTControls = Input { Value = 1, },
ShowLUT1 = Input { Value = 0, },
ShowLUT2 = Input { Value = 0, },
ShowLUT3 = Input { Value = 0, },
ShowLUT4 = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 1045, 115.5, }, },
},
CustomTool1LUTIn1 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 204, Green = 0, Blue = 0, },
CtrlWShown = false,
},
CustomTool1LUTIn2 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 0, Green = 204, Blue = 0, },
CtrlWShown = false,
},
CustomTool1LUTIn3 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 0, Green = 0, Blue = 204, },
CtrlWShown = false,
},
CustomTool1LUTIn4 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 204, Green = 204, Blue = 204, },
CtrlWShown = false,
},
},
},
},
ActiveTool = "CoronaHighlightCompression1",
}
Filmic Tonemapping:
{
Tools = ordered() {
FilmicTonemapping1 = MacroOperator {
CtrlWZoom = false,
NameSet = true,
Inputs = ordered() {
Comments = Input { Value = "Filmic tonemap operator is based on John Hable's work for Unchartered 2: http://filmicgames.com/archives/75\r\n\r\nCopyright 2013 Martin Geupel\r\nThanks goes to Simon Lundberg for the respective Nuke Gizmo!\r\nFeel free to re-use, adapt, distribute and change tool to suit your needs, but please don't sell it.", },
MainInput1 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "Image1",
},
Input1 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn1",
},
Input2 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn2",
},
Input3 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn3",
},
Input4 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn4",
},
Input5 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn5",
},
Input6 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn6",
},
Input7 = InstanceInput {
SourceOp = "FilmicTonemapping",
Source = "NumberIn7",
MaxScale = 20,
},
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "FilmicTonemapping",
Source = "Output",
},
},
ViewInfo = GroupInfo { Pos = { 1045, 247.5, }, },
Tools = ordered() {
FilmicTonemapping = Custom {
CtrlWZoom = false,
CtrlWShown = false,
NameSet = true,
Inputs = {
NumberIn1 = Input { Value = 0.22, },
NumberIn2 = Input { Value = 0.3, },
NumberIn3 = Input { Value = 0.1, },
NumberIn4 = Input { Value = 0.2, },
NumberIn5 = Input { Value = 0.01, },
NumberIn6 = Input { Value = 0.3, },
NumberIn7 = Input { Value = 11.2, },
LUTIn1 = Input {
SourceOp = "FilmicTonemappingLUTIn1",
Source = "Value",
},
LUTIn2 = Input {
SourceOp = "FilmicTonemappingLUTIn2",
Source = "Value",
},
LUTIn3 = Input {
SourceOp = "FilmicTonemappingLUTIn3",
Source = "Value",
},
LUTIn4 = Input {
SourceOp = "FilmicTonemappingLUTIn4",
Source = "Value",
},
Setup1 = Input { Value = "n5/n6", },
Setup2 = Input { Value = "n4*n6", },
Setup3 = Input { Value = "n4*n5", },
Setup4 = Input { Value = "n3*n2", },
Intermediate1 = Input { Value = "( ( (n7*(n2*n7+s4)+s3) / (n7*(n1*n7+n2)+s2) ) - s1) ", },
RedExpression = Input { Value = "( ( (r1*(n2*r1+s4)+s3) / (r1*(n1*r1+n2)+s2) ) - s1) *i1", },
GreenExpression = Input { Value = "( ( (g1*(n2*g1+s4)+s3) / (g1*(n1*g1+n2)+s2) ) - s1) *i1", },
BlueExpression = Input { Value = "( ( (b1*(n2*b1+s4)+s3) / (b1*(n1*b1+n2)+s2) ) - s1) *i1", },
NumberControls = Input { Value = 1, },
NameforNumber1 = Input { Value = "Shoulder Str.", },
NameforNumber2 = Input { Value = "Linear Str.", },
NameforNumber3 = Input { Value = "Linear Angle", },
NameforNumber4 = Input { Value = "Toe Str.", },
NameforNumber5 = Input { Value = "Toe Num.", },
NameforNumber6 = Input { Value = "Toe Denum.", },
NameforNumber7 = Input { Value = "White Point", },
ShowNumber8 = Input { Value = 0, },
ShowPoint1 = Input { Value = 0, },
ShowPoint2 = Input { Value = 0, },
ShowPoint3 = Input { Value = 0, },
ShowPoint4 = Input { Value = 0, },
ShowLUT1 = Input { Value = 0, },
ShowLUT2 = Input { Value = 0, },
ShowLUT3 = Input { Value = 0, },
ShowLUT4 = Input { Value = 0, },
Comments = Input { Value = "Filmic tonemap operator is based on John Hable's work for Unchartered 2: http://filmicgames.com/archives/75\r\n\r\nCopyright 2013 Martin Geupel\r\nThanks goes to Simon Lundberg for the respective Nuke Gizmo!\r\nFeel free to re-use, adapt, distribute and change tool to suit your needs, but please don't sell it.", },
},
ViewInfo = OperatorInfo { Pos = { 0, 10.15, }, },
},
FilmicTonemappingLUTIn1 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 204, Green = 0, Blue = 0, },
CtrlWShown = false,
},
FilmicTonemappingLUTIn2 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 0, Green = 204, Blue = 0, },
CtrlWShown = false,
},
FilmicTonemappingLUTIn3 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 0, Green = 0, Blue = 204, },
CtrlWShown = false,
},
FilmicTonemappingLUTIn4 = LUTBezier {
KeyColorSplines = {
[0] = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
},
},
SplineColor = { Red = 204, Green = 204, Blue = 204, },
CtrlWShown = false,
},
},
},
},
ActiveTool = "FilmicTonemapping1",
}
Just copy the code to your flow window or save it as a .setting in your usermacro folder.
Btw, all macros should be used with linear (gamma 1.0) input!
[EDIT]
Captain Obvious added a macro for Nuke!
For download and more details see Post #6
forum.corona-renderer.com/index.php/topic,1807.msg13558#msg13558 (http://forum.corona-renderer.com/index.php/topic,1807.msg13558#msg13558)
[Another EDIT]
Added the Filmic Curve tonemapping as a separate Tool. Big thanks to Captain Obvious for the idea and the guideline ;)
-
I am more and more inclined to have a look at Fusion. The guys at Uniform shown it and it did seemed simplier than maybe I feared/expected (I have a nightmare even from opening Nuke).
I had a brief look at the script but still have hard time envisioning how it works exactly. I have very mixed feelings about the look it produces. Not that I liked Reinhard (quite opposite..) but there's something about it I can't put my finger at, and prefer to do the tonemapping through curves in post.
-
Great, thanks! I implemented it in my Nuke tone mapper gizmo as well. I can post it if anyone's interested.
Corona's tonemapper produces exactly the same results as Reinhard tonemapping. It's just that the settings work differently.
-
Great, thanks! I implemented it in my Nuke tone mapper gizmo as well. I can post it if anyone's interested.
Corona's tonemapper produces exactly the same results as Reinhard tonemapping. It's just that the settings work differently.
Is that really so ? I thought the result with Reinhard became somehow more saturated instead.
-
Fusion is pretty easy to learn, imho way more intuitive than nuke. It's btw relatively easy to use nuke if you know fusion - the concepts are mostly the same - but the overall usage is a lot easier to learn by trying things out in fusion. Nuke has some pitfalls here and there which are simply not existing in fusion (or you don't notice at first ;) ) and scare new users. I love fusion and it's such a pleasure to work with it. I can't imagine to do my work in any layer based compositing program like AE (totally pain in the ass)
The tone-mapping stuff is something I use very rarely, never in max directly (just in corona while rendering and playing with the values). I always save my images linear and do curves in the post. For me it's just a very useful thing to be able to achieve the exact same highlight compression in fusion than the way it is in corona - in case I liked what I saw when playing with the values at render time (or my boss or client etc).
The problem with this kind of compression is (imho) the reduced contrast in the midtones. I tend to reduce the compression just to the highlights with little influence into the midtones (for the soft transition).
Great, thanks! I implemented it in my Nuke tone mapper gizmo as well. I can post it if anyone's interested.
Why not, I'd appreciate if we could complete this thread for all different kind of compositing packages :) I'd modify the topic name then :)
-
Btw, here is a screenshot with a before-and-after gradient from 0-10 range with a waveform diagram. Right image is with highlight compression at 10.0
-
Okay, here's my Nuke gizmo. It's still a WIP. I haven't yet implemented film simulation, but I'm working on it. No menu or install or anything for now; just select the text and copy it into your comp. Only tested in NukeX 7.0v8, but should work fine in regular Nuke as well, and probably in earlier versions as well.
It does Reinhard, Exponential Luma (same as Maxwell and modo), Corona and Filmic.
set cut_paste_input [stack 0]
version 7.0 v8
push $cut_paste_input
Group {
name Tonemap
selected true
xpos -308
ypos -203
addUserKnob {20 tonemap l Tonemap t "Adjusts blend between linear colors and full tonemap"}
addUserKnob {41 operator l Operator t "Available operators:\nReinhard (V-Ray; desaturates highlights)\nExponential luma (modo, Maxwell; saturates highlights)\nFilmic (punchier look, darker shadows; more control over look)\nCorona (similar to Reinhard)" T Switch1.operator}
addUserKnob {41 mix l "Tonemap Mix" t "Blends between input and tonemapped image" T Merge1.mix}
addUserKnob {20 exposure l "Exposure Adjustment" n 1}
exposure 0
addUserKnob {41 mode l "Adjust in" T EXPTool1.mode}
addUserKnob {41 gang T EXPTool1.gang}
addUserKnob {41 red T EXPTool1.red}
addUserKnob {41 green T EXPTool1.green}
addUserKnob {41 blue T EXPTool1.blue}
addUserKnob {20 endGroup n -1}
addUserKnob {20 exponentialStrength l "Reinhard and Exponential Luma Controls" n 1}
exponentialStrength 0
addUserKnob {41 mix_1 l Burn T Reinhard_Merge.mix}
addUserKnob {20 endGroup_3 l endGroup n -1}
addUserKnob {20 filmic_1 l "Filmic Controls" n 1}
filmic_1 0
addUserKnob {19 Grade1_black l lift t "Lifts blacks" R 0 0.1}
Grade1_black 0.005
addUserKnob {41 shoulderStr l "Shoulder Str." t "Higher values produces brighter highlights" T Expression_Filmic.shoulderStr}
addUserKnob {41 linStr l "Linear Str." T Expression_Filmic.linStr}
addUserKnob {41 linAngle l "Linear Angle" T Expression_Filmic.linAngle}
addUserKnob {41 toeStr l "Toe Str." T Expression_Filmic.toeStr}
addUserKnob {41 toeNum l "Toe Num." T Expression_Filmic.toeNum}
addUserKnob {41 toeDen l "Toe Denom." T Expression_Filmic.toeDen}
addUserKnob {41 whitepoint l INVISIBLE +INVISIBLE T Expression_Filmic.whitepoint}
addUserKnob {20 endGroup_1 l endGroup n -1}
addUserKnob {20 Corona l "Corona Controls" n 1}
Corona 0
addUserKnob {41 compression l Compression T Expression_Corona.compression}
addUserKnob {20 endGroup_2 l endGroup n -1}
}
BackdropNode {
inputs 0
name Filmic
xpos -340
ypos -221
bdwidth 144
bdheight 193
}
BackdropNode {
inputs 0
name Corona
xpos -498
ypos -222
bdwidth 151
bdheight 194
}
BackdropNode {
inputs 0
name Luma_modo
xpos -171
ypos -212
bdwidth 274
bdheight 190
}
BackdropNode {
inputs 0
name Reinhard
xpos 116
ypos -215
bdwidth 243
bdheight 191
}
BackdropNode {
inputs 0
name Notes
label "Filmic tonemap operator is based\non John Hable's work for Unchartered 2:\nhttp://filmicgames.com/archives/75\n\nExponential luma operator is used by \nmodo and Maxwell.\n\nReinhard operator is Reinhard global.\n\nCorona is from the 3ds Max plugin render\nengine Corona.\n\n\nCopyright 2013 Simon Lundberg\nFeel free to re-use, adapt, distribute\nand change tool to suit your needs,\nbut please don't sell it."
note_font_size 25
xpos 582
ypos -307
bdwidth 616
bdheight 512
}
BackdropNode {
inputs 0
name Film_Simulation
label "NOT IMPLEMENTED"
xpos -663
ypos -224
bdwidth 141
bdheight 196
}
Input {
inputs 0
name mask
xpos -462
ypos -344
number 1
}
Dot {
name Dot11
xpos 499
ypos -341
}
Dot {
name Dot10
xpos 499
ypos 218
}
Input {
inputs 0
name img
xpos -578
ypos -344
}
Dot {
name Dot14
xpos -547
ypos -295
}
set N1a542300 [stack 0]
EXPTool {
mode Stops
name EXPTool1
xpos -462
ypos -298
}
Dot {
name Dot19
xpos -216
ypos -295
}
Dot {
name Dot33
xpos -216
ypos -241
}
set Naea67450 [stack 0]
Dot {
name Dot24
xpos -275
ypos -241
}
set Nb255c280 [stack 0]
Dot {
name Dot25
xpos -431
ypos -241
}
set Naea5ff70 [stack 0]
Dot {
name Dot28
xpos -612
ypos -241
}
Dot {
name Dot29
xpos -612
ypos -185
}
Dot {
name Dot30
xpos -612
ypos -62
}
Dot {
name Dot31
xpos -612
ypos 80
}
Dot {
name Dot32
xpos 19
ypos 80
}
push $Naea5ff70
Expression {
expr0 r*(1+r/(compression**2))/(1+r)
expr1 g*(1+g/(compression**2))/(1+g)
expr2 b*(1+b/(compression**2))/(1+b)
name Expression_Corona
xpos -462
ypos -147
addUserKnob {20 User}
addUserKnob {7 compression l "Highlight Compression" R 1 10}
compression 1.5
}
Dot {
name Dot26
xpos -431
ypos -47
}
Dot {
name Dot5
xpos -431
ypos 59
}
Dot {
name Dot17
xpos 29
ypos 59
}
push $Nb255c280
EXPTool {
mode Stops
red 1.8
green 1.8
blue 1.8
name EXPTool2
xpos -306
ypos -173
}
Grade {
black {{parent.Grade1_black.r} {parent.Grade1_black.g} {parent.Grade1_black.b} {parent.Grade1_black.a}}
name Grade1
xpos -306
ypos -138
addUserKnob {20 User}
}
Expression {
temp_name0 tNtD
temp_expr0 toeNum/toeDen
temp_name1 tStD
temp_expr1 toeStr*toeDen
temp_name2 tStN
temp_expr2 toeStr*toeNum
temp_name3 lAlS
temp_expr3 linAngle*linStr
expr0 ((r*(shoulderStr*r+lAlS)+tStN)/(r*(shoulderStr*r+linStr)+tStD))-tNtD
expr1 ((g*(shoulderStr*g+lAlS)+tStN)/(g*(shoulderStr*g+linStr)+tStD))-tNtD
expr2 ((b*(shoulderStr*b+lAlS)+tStN)/(b*(shoulderStr*b+linStr)+tStD))-tNtD
name Expression_Filmic
xpos -306
ypos -95
addUserKnob {20 User}
addUserKnob {7 shoulderStr l "Shoulder Str."}
shoulderStr 0.5
addUserKnob {7 linStr l "Linear Str."}
linStr 0.8
addUserKnob {7 linAngle l "Linear Angle"}
linAngle 0.2
addUserKnob {7 toeStr l "Toe Str."}
toeStr 0.9
addUserKnob {7 toeNum l "Toe Num." R 0 0.1}
toeNum 0.065
addUserKnob {7 toeDen l "Toe Denum."}
toeDen 0.9
addUserKnob {7 whitepoint l "White point" R 0 50}
addUserKnob {7 whitepointExp}
whitepointExp {{((whitepoint*(shoulderStr*whitepoint+linAngle*linStr)+toeStr*toeNum)/(whitepoint*(shoulderStr*whitepoint+linStr)+toeStr*toeDen))-(toeNum/toeDen)}}
}
Dot {
name Dot22
xpos -275
ypos -52
}
Dot {
name Dot15
xpos -275
ypos 42
}
Dot {
name Dot9
xpos 47
ypos 42
}
push $Naea67450
Dot {
name Dot21
xpos -151
ypos -241
}
set Nb255b830 [stack 0]
Dot {
name Dot2
xpos -151
ypos -176
}
set N1a544c40 [stack 0]
Dot {
name Dot3
xpos -151
ypos -134
}
set N1a544fb0 [stack 0]
Dot {
name Dot20
xpos -151
ypos -105
}
push $N1a544fb0
push $N1a544c40
Saturation {
saturation 0
name Saturation1
xpos -103
ypos -179
}
Add {
value 1
name modo_add
xpos -4
ypos -185
}
Merge2 {
inputs 2
operation divide
Bchannels rgb
name modo_Divide
xpos -4
ypos -137
}
Merge2 {
inputs 2
operation copy
mix 0.25
name Reinhard_Merge
xpos -4
ypos -108
}
set Cb20bf900 [stack 0]
Dot {
name Dot8
xpos 69
ypos -53
}
Dot {
name Dot4
xpos 69
ypos 34
}
push $Nb255b830
Dot {
name Dot1
xpos 122
ypos -241
}
Dot {
name Dot12
xpos 122
ypos -174
}
set N1a602700 [stack 0]
Dot {
name Dot13
xpos 122
ypos -128
}
set N1a602a70 [stack 0]
Dot {
name Dot18
xpos 122
ypos -85
}
push $N1a602a70
push $N1a602700
Add {
value 1
name Reinhard_Add
xpos 222
ypos -183
}
Merge2 {
inputs 2
operation divide
Bchannels rgb
name Reinhard_Divide
xpos 222
ypos -131
}
clone $Cb20bf900 {
inputs 2
xpos 222
ypos -88
selected false
}
Dot {
name Dot23
xpos 253
ypos -47
}
Dot {
name Dot16
xpos 253
ypos 42
}
Dot {
name Dot7
xpos 90
ypos 42
}
Switch {
inputs 5
which {{operator}}
name Switch1
xpos 38
ypos 112
addUserKnob {20 User}
addUserKnob {4 operator l Operator M {Reinhard "Exponential luma" Filmic Corona}}
operator Filmic
}
Clamp {
maximum_enable false
name Clamp1
xpos 38
ypos 153
}
push $N1a542300
Dot {
name Dot27
xpos -777
ypos -295
}
Dot {
name Dot6
xpos -777
ypos 218
}
Merge2 {
inputs 2+1
operation copy
name Merge1
xpos 38
ypos 215
}
Output {
name Output1
xpos 38
ypos 386
}
end_group
-
It does Reinhard, Exponential Luma (same as Maxwell and modo), Corona and Filmic.
Great Stuff Captain Obvious! I hope you don't mind if I adapt those modes for my fusion macro? I will (of course!) annotate this section as well:
Filmic tonemap operator is based\non John Hable's work for Unchartered 2:\nhttp://filmicgames.com/archives/75\n\nExponential luma operator is used by \nmodo and Maxwell.\n\nReinhard operator is Reinhard global.\n\nCorona is from the 3ds Max plugin render\nengine Corona.\n\n\nCopyright 2013 Simon Lundberg\nFeel free to re-use, adapt, distribute\nand change tool to suit your needs,\nbut please don't sell it.
-
Go for it. I wouldn't mind getting my hands on it when you're done. I'm one of those few crazy people who own and use both Fusion and Nuke! :-D
-
I am super curious about the "filmic" curve, keeps very nice contrast overall. What is it ?
If this gets converted to Fusion I will install it the very next day.
-
I am super curious about the "filmic" curve, keeps very nice contrast overall. What is it ?
If this gets converted to Fusion I will install it the very next day.
It's based on this: http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting (http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting)
Go to page 92.
-
I am super curious about the "filmic" curve, keeps very nice contrast overall. What is it ?
If this gets converted to Fusion I will install it the very next day.
It's based on this: http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting (http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting)
Go to page 92.
Thanks !
"Once you have,you can't live without it" :- D Incredible source btw, so many other cool .pdfs about graphic, forwarded to my brother/graphic programmer.
-
Ok, I have just implemented it and I'm playing around. It is... kind of strange at first but I think it's just the "I need to get used to it" feeling. It's not just setting a bright and dark value and that's it - no - you need to balance shoulder, linear and white point if you play with one of the values.
I'll do the other curves and post an updated macro later :)
-
Hello DeadClown
MacroScript for 3DStudio Max?
-
Thanks Deadclown and Captin Obvious for this interesting script
i've tested the one for Nuke and it works nice, i must test it with other corona renders and my next work.
-
Ok, I added the filmic tonemapping as a separate macro. Since fusions UI capabilities with macros are very limited I decided to keep it 1 macro per curve :) Unfortunately all the sliders default to 0 when you click the little dot in the middle (even when I set it to some other values in the macro tool). If someone knows a solution to that I would be very happy to hear it :)
Hello DeadClown
MacroScript for 3DStudio Max?
No. Fusion and Nuke.
-
Thanks Captain obvious! Great the nuke gizmo
-
Damn that example image really highlights why filmic mapping is superior.
I know the dev team hate unnecessary requests but would it be possible to have the option to utilise filmic compression mapping from within Corona (as an option to the standard mapping)? Shouldn't be too arduous to implement as the code / algorithms are already available here.
This could be something that really sets Corona apart from other renderers, so I don't think its a totally frivolous request. Arch viz shots with good contrast and saturation without burnouts straight out of the box = hnnnnnnnnng!
-
Just wanted to extend my thanks. These are super useful, I've been on the watch for eyeon Fusion tone mappers for years!
-
Is it possible to use the nuke gizmo in nuke 8 ?
-
Opened up the eval version of Fusion, this is how I felt:
(http://www.ludumdare.com/compo/wp-content/uploads/2013/04/i-have-no-idea-what-im-doing-dog.jpg)
Can anyone point me in the right direction on how to get this going to a complete fusion noob? Or would Nuke be better for a compositing beginner?
-
here you go ;)
http://learn.eyeonline.com/ (http://learn.eyeonline.com/)
-
Thanks, much appreciated!
I just got it working, so far so good! Although I am a little puzzled at some of the names of the sliders...would you mind giving a quick run-down of what the sliders do? I guess the "holy grail" would be to find some settings that could town down burnouts whilst retaining contrast and saturation is the rest of the image (kind of like the comparison image posted earlier).
Also, when working this way would it be advisable to render a scene with good overall illumination with visible burnouts, and post process the burnouts out after. Or underexpose the scene / use reduced lighting levels to avoid burnouts and bring the levels up after in post?
-
Damn that example image really highlights why filmic mapping is superior.
I know the dev team hate unnecessary requests but would it be possible to have the option to utilise filmic compression mapping from within Corona (as an option to the standard mapping)? Shouldn't be too arduous to implement as the code / algorithms are already available here.
This could be something that really sets Corona apart from other renderers, so I don't think its a totally frivolous request. Arch viz shots with good contrast and saturation without burnouts straight out of the box = hnnnnnnnnng!
Yes I've asked for this since day one :)
I've asked for something similar to 19lights version.
http://19lights.com/wp/
-
Damn that example image really highlights why filmic mapping is superior.
I know the dev team hate unnecessary requests but would it be possible to have the option to utilise filmic compression mapping from within Corona (as an option to the standard mapping)? Shouldn't be too arduous to implement as the code / algorithms are already available here.
This could be something that really sets Corona apart from other renderers, so I don't think its a totally frivolous request. Arch viz shots with good contrast and saturation without burnouts straight out of the box = hnnnnnnnnng!
Yes I've asked for this since day one :)
I've asked for something similar to 19lights version.
http://19lights.com/wp/
Great application of HDR tone mapping! Might be cool to do some sort of hybrid HDR / filmic mapping?
-
I just got it working, so far so good! Although I am a little puzzled at some of the names of the sliders...would you mind giving a quick run-down of what the sliders do?
The problem is: I can't (easily). The best thing to do is taking a simple gradient, switching on a SubView ("SubV" at bottom left corner of a viewport) and set it to waveform; now you can see what the sliders do on the curve. It takes some time to understand the relationships and that's why I'm not sure if it's a good idea to implement something like that into corona.
-
If Corona's frame buffer had an A-B, before and after post, then you could get a good understanding of what the tone mapping is doing. Similar to 3dsmax's RAM player but live, not loaded up renders, but whats in the frame buffer at the time.
-
work good on Fusion 6
big thx - DeadClown
ps. Fusion best and easy composing software ever !!!
-
This looks super cool! Thanks for making this guys!
I will def test the nuke gizmo! Does anyone have side by side comparisons between the inbuilt corona compression and the filmic?
Thanks
-
Thanks for the Nuke's script. Just to be sure I am taking the right steps. I need to save my render as a 32 exr image, right? Do I need to overwrite the gamma back to 1?
Thanks
-
I have to say big, huge thanks for the nuke script. Working preciously with 32bit exrs.
-
For the guys here wanting to learn fusion, I first tried with Digital tutors, but it's a bit old, but I found that the CMI VFX tutorials are freaking great, you get an indeep overview of fusion with pratical examples that you can apply to your projects, and they are done with the latest release from Blackmagic.
They've been great for me.
Cheers!
-
DeadClown, Thanks a lot for those two Fusion macros. They're very helpful!
-
compare those two pictures. on the left corona frame buffer highilght compress/ on the right fusion script highlight compress. why are these images so different if the code is the same?
maybe there is a bug in corona frame buffer, why corona canot give the same pretty result as fusion does?
-
Did you save the image with a gamma of 1.0? It looks like that to me.
-
i love filmic and coronahighlights in Fusion. i was trying to export them as a LUT. but the highlights get clipped. this is because the 32bit render is brighter than 1.0. is it possible to export a LUT that can work for tone mapping and very bright highlights?