forked from GafferHQ/gaffer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
7359 lines (5390 loc) · 308 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.41.0.0
========
Breaking Changes
----------------
- Adopted Cortex 10 UV representation (#2281) :
- UVs are now represented as V2f primitive variables,
not separate s/t float primitive variables.
- Primary UV set is called "uv".
- UV origin is in the bottom left, with increasing values of
V going _up_ (flipped vertically compared to previous orientation).
- Indices are now stored on the same primitive variable as the
UVs themselves.
- This has affected the plugs and default values for a number of
nodes.
- SplinePlug : Changed value representation from IECore::Spline to new
SplineDefinition class (#2148).
- Algo headers : Removed compatibility namespacing (#2299).
- Removed CompoundPlug. Use Plug or ValuePlug instead (#2298, #1323).
- Removed CompoundPlugValueWidget. Use PlugLayout instead (#2298).
- FilteredSceneProcessor : Removed deprecated `filterContext` method.
Use FilterPlug::FilterScope instead (#2260).
- Stopped installing Cortex image ops. Use GafferImage nodes instead (#2258).
- Removed OpenImageIOAlgo. Use IECoreImage::OpenImageIOAlgo instead (#2258).
- Removed GafferCortexUI::ImageReaderPathPreview. Use
GafferImageUI::ImageReaderPathPreview instead (#2258).
- GafferBindings : Hid internal details in GafferModule (#2289).
- GafferUIBindings : Hid internal details in GafferUIModule (#2256).
- GafferCortexBindings : Hid internal details in GafferCortexModule (#2248).
Features
--------
- Added Viewer visualisation of Arnold light filters (#2275).
- Added Encapsulate node. This encapsulates portions of a scene by
collapsing the hierarchy and replacing it with a procedural which
will be evaluated at render time (#2283).
- Added FloatSpline OSL shader ((#2292).
- Added VTuneMonitor to annotate VTune profiles with node processes (#2247).
Improvements
------------
- LightTweaks : Added "Delete" menu item to context menu (#2285).
- OSLShader : Improved node graph labels (#2296).
- Parent : Defaulted "root" plug to value of "/" (#2242).
- ArnoldOptions : Added abortOnError and maxSubdivison settings (#2290).
- SplinePlug :
- Added MonotoneCubic interpolation option (#2148).
- Added option to preview splines as curves rather than a colour ramp (#2292).
- CollectScenes : Added "root" plug, to allow subtrees to be collected
from the input scene (#2238).
- OSLObject/ShadingEngine : Added multithreaded evaluation for improved
performance (#2251).
- CompoundDataPlug : Added menu items for adding box plugs (#2263).
- Browser/View apps : Improved image preview (#2258).
- Filter plug UI : Decluttered embedded filter UIs (#2276).
- Group/BranchCreator : Optimised context management (#2270).
Fixes
-----
- ArnoldRender : Fixed error handling for aborted renders (#2279).
- SplineWidget :
- Fixed incorrect colours in rightmost column (#2295).
- Fixed editing of float splines (#2292).
- Fixed curve width (#2293).
- Fixed drawing of curves with minimum Y values other than 0 (#2292).
- ImageWriter : Fixed bug when writing JPEG with blank scanlines (#2268).
- ImageReader : Fixed "enabled" plug, so that turning it off outputs a default
blank image (#2254).
- Documentation :
- Fixed formatting of supported file extensions (#2244).
- Clarified that the SceneReader node does support Alembic (#2244).
- Fixed URL (#2273).
- BoxIO : Fixed bug that could cause promoted plugs to initially be
invisible in the NodeGraph (#2284).
- GraphGadget : Fixed GIL handling in `setRoot()` and `setFilter()`
methods (#2287).
- PlugLayout : Collapsible layouts are now used if a `rootSection`
is specified (#2276).
- PlugAlgo : Fixed bug where promoted plugs had the wrong value (#2298).
- Prune : Fixed hashing of sets (#2243).
- Text : Fixed problems with vertical alignment when there was too much
text to fit in the text area (#2291).
API
---
- ValuePlug : The `Node::plugSetSignal()` is now emitted for all ancestors, not
just for ValuePlugs (#2298).
- GafferCortex::ParameterHandler : Added `hash()` method (#2298).
- RendererAlgo : Added optional `root` argument to `outputObjects()` (#2283).
- SceneAlgo : Added `parallelProcessLocations()` overload taking `root` (#2283).
- Wrapper classes : Added templated variadic constructors (#2250).
- PlugAlgo : Added `promoteWithName()` function (#2284).
- Added Capsule class to represent encapsulated scene hierarchy (#2283).
- StandardLightVisualiser : Added method for querying spotlight parameters (#2275).
- WidgetAlgo : Fixed `grab()` to work around Qt bugs on OSX (#2307).
Build
-----
- Added compatibility with OIIO 1.8 (#2261).
- Requires Cortex 10.0.0-a4.
- Made SConstruct compatible with Python 3 (#2280).
- Fixed problems building the documentation (#2307).
0.40.0.0
========
This release brings improved Alembic support, support for Arnold light filters and Appleseed area lights,
and the usual medley of miscellaneous improvements and bug fixes.
The astute observer may note that the version number leaves a gap from the previous major version
of 0.34. This is because 0.40 is the first version to require the use of a C++11 compiler,
but some current users are stuck on older toolchains for a little while longer. We intend to use the
intervening versions to provide backported feature releases for the older toolchains where needed.
Breaking Changes
----------------
- Simplified GafferScene/GafferSceneUI/GafferImage/GafferImageUI bindings by hiding code which
is only used internally (#2142, #2152).
- TaskNode : Rederived from DependencyNode (#2163)
- Removed OrphanRemover/Behaviour classes. Use StandardSet's built-in orphan removal instead (#2212).
- CompoundNodule : Removed deprecated constructor arguments. Use metadata instead (#2216).
- ContextProcessor : Changed signature of `processContext()` and added `affectsContext()` pure
virtual method (#2220).
- SceneInspector (#2222) :
- Renamed `SceneInspector.inspectsAttributes()` to SceneInspector.supportsInheritance()`.
- Removed `SceneInspector.SideBySideDiff.frame()` method. Client code should use the new
setValueWidget/getValueWidget accessors to get access to the frame contents instead.
- Replaced use of boost::function with std::function (#2224)
- Display :
- Removed server management. Use the Catalogue or manage a display server directly instead (#2228).
- Display : Removed `dataReceivedSignal()`
- Removed GafferBindings::ExceptionAlgo. Use IECorePython::ExceptionAlgo instead (#2241).
Features
--------
- Alembic (#2234) :
- SceneReader and SceneWriter nodes can now read and write Alembic files directly.
The old AlembicSource node is now deprecated.
- Improved performance.
- Added support for points and curves geometry.
- Fixed mesh winding order.
- Light Filters. Added initial support for Arnold light filters. These can be loaded using the
regular ArnoldShader node and assigned to lights using the ShaderAssignment node (#2135).
- Appleseed : Added rectangular area lights (#2237).
Improvements
------------
- SceneWriter (#2161) :
- Added support for serialising sets to .scc files.
- Improved performance by multithreading scene generation.
- TaskNode : Errors are now reported in the NodeGraph (#2163)
- Execute app : Improved error reporting (#2163)
- OSL expressions : Added support for M44f plugs (#2187)
- Shader node : Added attributeSuffix plug. This is primarily of
use with light filters (#2135).
- StandardNodeGadget : Added support for "iconScale" metadata (#2211)
- OSLShader : Added support for "icon" and "iconScale" shader metadata (#2211)
- ArnoldRender : Improved render shutdown performance (#2203)
- OSL ShadingEngine : Added support for converting aggregate data to arrays in `getattribute()` (#2219).
- SceneInspector (#2222) :
- Improved discoverability of diff, inheritance and history views
- Removed history traceback from fields where it was irrelevant
- Fixed click-to-select in Set history tracebacks
- NodeGraph : Node double click and Edit.. menu items now always open a floating
NodeEditor (#2222)
- Merge (#2223) :
- Improved labelling of node inputs (#260)
- Changed default operation to "Over"
- Stats app : Added -preCache argument (#2236)
- Appleseed (#2237) :
- Updated to version 1.7.1-beta
- Added double sided material assignment attribute
- Added per ray type bounce limits
- Improved default texture cache size
Fixes
-----
- NodeGraph : Fixed graphical glitches when drawing connections (#2156, #2170, #2230)
- Dot :
- Fixed bug where Dots created with Control+Click were not always immediately draggable (#2139)
- Fixed bug where any click (not just left click) would create a Dot (#2147)
- Fixed bug with Control+Click creation of Dots in Boxes (#2197)
- Qt :
- Fixed crashes when reparenting child windows (#2168)
- Fixed bug with VectorDataWidget and Qt4 (#2162)
- Fixed bug with GLWidget host resource sharing for Qt4 hosts (#2173)
- Suppressed GLWidget warning messages on OSX (#2195)
- Catalogue :
- Fixed crashes when saving renders to disk (#2174)
- Fixed shuffling of switch plugs during image delete (#2193)
- Fixed loading of old files which referred to OIIO's "catrom" filter, which is now
named "catmull-rom" (#2177).
- OpenGLShader : Fixed problems caused by attempting to reload shaders when no GL
implementation is available (#2176)
- OSLImage (#2198) :
- Fixed bug which meant that tiles with origin -64 were passed through unchanged
- Fixed UVs for images with negative display window origins
- Fixed global `P` values to reflect pixel centres, not corners
- Menu : Fixed handling of special regex characters in search field (#2221)
- Color editors : Fixed bug that allowed the creation of multiple editors for the
same plug (#2209, #2222)
- ScriptNode : Fixed bug where `isExecuting()` returned the wrong result when
loading a script containing references (#2227).
- Reference : Fixed "Duplicate as Box" menu item to create the Box with the
right parent when the Reference node is not at the root of the script (#2229).
- MonitorAlgo : Fixed use of unitialised value (#2233)
- CompoundDataPlug : Fixed bug which prevented non-alphanumeric names being used
in `addMembers()` (#2228)
API
---
- Added default template arguments for Plug and GraphComponent methods. This simplifies
the use of methods like `GraphComponent::getChild()` and `Plug::getInput()` (#2167).
- Added `SceneAlgo::parallelProcessLocations`. Over time this will replace `parallelTraverse()` (#2161).
- ImageAlgo : Fixed tile range for `parallelProcessTiles` (#2164)
- TaskNode : Rederived from DependencyNode (#2163)
- Arnold ParameterHandler : Allowed plug type to be overriden using a `gaffer.plugType` metadata
entry (#2135).
- StandardSet : Added automatic orphan removal feature (#2212)
- Context : Added `EditableScope::removeMatching()` method (#2220)
- Menu : Added support for `partial( WeakMethod( ... ) )` in commands (#2222)
- NodeSetEditor : Added `floating` argument to `acquire()` method (#2222)
Build
-----
- Fixed invalid debug assertions in Shape node (#2186)
- C++11 is now required as a minimum (#2167)
- Improved speed of Travis tests (#2145)
- Requires Cortex 10.0.0-a1
0.34.0.0
========
Breaking Changes
----------------
- ImageReader/ImageWriter : Replaced hardcoded colourspace management with configurable
system. The default colourspace for several file formats has changed. (#2121)
- ImagePlug : Changed type of `metadataPlug()` (#2087)
- ImageWriter : Changed default exr compression to "zips" (#2092)
- Shader : Added `loadShader()` and `reloadShader()` virtual methods (#2098, #2088)
- ScriptNode : Added argument to `ScriptNode::paste()`. Default behaviour is unchanged. (#2117)
- ConnectionGadget : Added virtual method (#2102)
Features
--------
- Added configurable colourspace management to ImageReader and ImageWriter nodes (#2121)
- Added ResamplePrimitiveVariables node (#2105)
- Added DeleteFaces node (#2118)
- Added DeletePoints node (#2120
- Added DeleteCurves node (#2120)
- Added CollectImages node (#2116)
- Added CollectScenes node (#2127)
- Added DeleteSceneContextVariables node (#2111)
- Added DeleteImageContextVariables node (#2111)
- Added Erode and Dilate filters (#2134)
- Added support for Qt5 (#2132)
Improvements
------------
- Image : Improved performance for complex graphs (#2111)
- OSLShader : Improved shader reloading (#2088)
- OSLObject : Added interpolation plug. This allows shading to be
performed per-face or per-face-vertex in addition to the previous
vertex shading. (#2113)
- DirtyPropagationScope : Added python bindings (#2104)
- NodeGraph :
- Improved drawing of connections (#2102)
- Added Control+Click to insert Dots into connections (#2072)
- ImageReader : Added fileFormat and dataType items to metadata (#2121)
- Catalogue : (#2106)
- Improved performance
- Moved saving/snapshotting to the background, so the UI remains responsive while
they occur
- ContextVariables : Added extraVariables plug to facilitate use
with expressions (#2131).
Fixes
-----
- Catalogue : Fixed bug where shader view images leaked into the catalogue (#2106)
- EditMenu : Fixed error handling for paste action (#2117)
- Wrapper :
- Fixed SIP-related problems with Arnold setup on OSX (#2107)
- Defaulted to using lldb for debugging on OSX (#2110)
- MessageWidget : Fixed widget parenting bug (#2117)
- BoxIO : Disabled removal of promoted plugs when a BoxIO is deleted from a parent
with childNodesAreReadOnly metadata (#2122)
- ImagePlug : Fixed GIL management bugs in `imageHash()` and `channelDataHash()` bindings (#2106)
- Shape/Text : Fixed bug where disabling the node still modified the image (#2106)
- ImageProcessor : Fixed bug which prevented some nodes from using expressions based on
channel name. The bug was introduced in version 0.30.0.0 (#2124).
- Box : Fixed bug which could prevent the boxing of nodes containing internal
connections (#2126).
- TransformTool : Fixed interaction with Transform node (#2136).
API
---
- Added AtomicCompoundDataPlug (#2087)
- ImagePlug/ImageNode : Changed metadataPlug() to AtomicCompoundDataPlug (#2087)
- ScriptNode : Added `continueOnError` argument to `paste()` method. (#2117)
- ShadingEngine : Added `needsAttribute()` method (#2114)
- Shader : Added `reloadShader()` method (#2088)
- ConnectionGadget : Added `closestPoint() method (#2102)
- Display : Added `copy` argument to `setDriver()` method (#2106)
- Catalogue : Added `Image::copyFrom()` method (#2106)
- Context : Added `removeMatching()` method (#2111)
- DependencyNodeClass : Added constructor taking no_init, for when a
DependencyNode has no public constructor (#2134)
Build
-----
- Fixed compilation with GCC 4.1.2 (#2103)
- Updated dependencies : (#2109)
- OIIO 1.7.15
- OSL 1.8.9
- Cortex 9.21.1
- Qt 5
0.33.3.0
========
Improvements
------------
- ImageWriter : Added plug for jpeg chroma subsampling (#2101)
- Layer selector :
- Sorted layer names (#2089)
- Simplified menu for standard *.RGBA layers (#2100)
- Seeds : Added densityPrimitiveVariable plug to allow point density to be varied
across the surface of a mesh (#2095)
- Added InInt and OutInt OSL shaders, to support integer primitive variables in
the OSLObject node (#2093)
- Stats app : Added -task argument to allow collection of stats from TaskNodes (#2090)
- Arnold :
- Added standard AOVs to Outputs node config (#2089)
- Cleaned up UI for alHair (#2086)
- GraphGadget : (#2078)
- Added Ctrl+click to select a Backdrop without selecting the nodes it contains
- Fixed keyboard modifiers for node selection
- SplineWidget (#2079) :
- Added dropdown menu for selecting interpolation (BSpline/Linear/CatmullRom)
- Fixed banding when drawing at large sizes
Fixes
-----
- Metadata : Fixed bug which could cause crashes at shutdown if a python slot
was connected to a metadata signal (#2097)
- Image view : Fixed error handling bug (#2091)
- Catalogue :
- Fixed hangs caused by GIL management bug (#2085)
- Fixed bug whereby selection was lost when renaming an image (#2082)
- Backdrop : Fixed problems caused by driving title/description with an expression
which contains an error (#2083)
API
---
- SceneView : Added `frame()` method for framing objects (#2084)
- GafferSceneUI : Added ContextAlgo namespace containing functions for managing
scene expansion and selection (#2084)
- PlugWidget/PlugValueWidget : Added `acquire()` methods (#2084)
- WidgetAlgo : Added `grab()` method for taking screengrabs (#2084)
0.33.2.0
========
Features
--------
- Added Image Catalogue node (#2077)
- Key features include:
- Loading, exporting, removing, and renaming images on disk.
- Receiving renders from an InteractiveRender node, automatically combining
multiple AOVs into a single image stream.
- Snapshot (copying) images, including in-progress renders.
- Adding notes to images.
- Drag 'n' drop of any other image node into the image list to snapshot it
and add it to the catalogue.
Improvements
------------
- OSL ShadingEngine : Added 'shading:index' special attr to getattribute (#2067)
- This can be used to fetch the index of the current shading point.
Fixes
-----
- BoxIO : Fixed `setup()` to deal with non-serialisable plugs (#2081)
- DebugDispatcher : Fixed naming bug when creating nodes inside other nodes (#2073)
- Plug : Fixed bug whereby non-serialisable children were serialised (#2077)
API
---
- Display : Added setDriver/getDriver mechanism (#2077)
- PathBinding : Added bindings for pathChangedSignalCreated and havePathChangedSignal (#2077)
0.33.1.0
========
Improvements
------------
- ArnoldOptions : Added "ai:parallel_node_init" (#2062).
- This defaults off to match Arnold's default, but it may be beneficial to turn on
in many cases. Note that it is not safe to use with Cryptomatte currently.
- Stats App (#2059) :
- Added parameter to allow storing stats in a file.
- Added parameter to optionally supress the node summary.
- Sorted args alphabetically for consistency of output.
- CompoundDataPlug : Added support for InternedStringVectorData (#2065)
- Dispatcher : Improve batching of no-ops such as TaskList (#2064)
- GafferDispatchTest : Added DebugDispatcher (#2064)
- Documentation : Added metadata reference (#2063)
Fixes
-----
- SetExpressions : Support ':' in names of sets and objects (#2070)
- EventLoop : Specify application name as "Gaffer" (#2071)
- FilterPlugValueWidget : Remove unnecessary node placement code (#2074)
Build
-----
- Using C++03 ABI with GCC 5.1 and greater (#2069)
- Fixed gcc 4.1 compilation issues (#2057)
0.33.0.0
========
Breaking Changes
----------------
- Image :
- ImageWriter : Defaults to writing all channels instead of just RGB (#2021).
- DeleteChannels : Changed channels plug default to "" (#2021).
- ImageStats : (#2018)
- Defaulted to sampling A in addition to RGB.
- Changed interpretation of ImageStats channels to simply be a list of 4
channels that correspond directly to the output RGBA plugs. Behaviour is
unchanged apart from situations where an incomplete or ambiguous channel
mask was in use.
- Warp : New API (#1980).
- Engine no longer depends on channelName.
- Derived classes no longer responsible for computing inputWindow.
- API :
- Renamed UndoContext to UndoScope (#2049).
- Removed `Nodule::registerNodule()` overload which took a plug name regex.
Use "plugValueWidget:type" metadata instead (#2045).
- Added private data member to PerformanceMonitor (#2016).
- Added `createUStrings` argument to OpenImageIOAlgo::DataView
constructor (#2040).
- Removed ChannelMaskPlug. Use a StringPlug and `StringAlgo::matchMultiple()`
instead (#2021).
- Renamed renderer backends to "Arnold" and "Appleseed" (#1994).
- Added virtual method to Style class (#2051).
Features
--------
- Scene :
- Added light linking (#1985)
- Light links are specified as set expressions using the StandardAttributes
node.
- Currently only supported in the Arnold renderer backend.
- Added "scene:renderer" context variable which can be used to query which
renderer a scene is being generated for (#1994).
- SetFilter : Added support for using arbitrary set expressions instead of
just a single set (#2052).
- Added RotateTool for interactively rotating objects in the viewport (#2051).
- Added MeshTangents node to compute Tangent & Binormal primitive variables on a mesh (#2028).
- Image
- Added Median node (#2022)
- Added Mix node (#2026)
- Added CopyChannels node (#2006)
- Improved support for images with multiple layers : (#2018, #2021)
- Added layer selector to image viewer
- Added improved layer/channel selection to many nodes
- Added ability to use wildcards to select channels to process
- Added colorSpace plugs to ImageReader and ImageWriter (#2004).
- Box : Added BoxIn and BoxOut nodes to improve the visualisation of promoted
plugs within the NodeGraph (#2011).
Improvements
------------
- TaskList : Added "sequence plug" (#2044).
- Improved GafferImage performance (#2016, #2031).
- OSLShader : Added support for vector->color connections (#2042).
- Expression : Added context menu for inserting common functions and node
bookmarks (#2039).
- Stats app : Added performance monitor summary (#2016).
- Merge : Added min and max modes (#2027).
- Grade : Added support for grading alpha channel (#2023).
- Warp : Improved filtering (#1980).
- Added more string matching features #2015 :
- `[A-Z]` style character classes
- `?` to match any character
- '\' to escape a subsequent wildcard
- Added mode and units settings to the UVWarp node, and renamed it to
VectorWarp (#2014).
- StandardNodeGadget : Added more metadata support (#2011)
- "icon" to add an icon.
- "nodeGadget:shape" to choose a rectangular or oval shape
Fixes
-----
- Shader : Fixed bug when assigning a disabled shader
with pass-through defined (#2025).
- OSLCode : Fixed string length menu item (#2039).
- Expression :
- Fixed string context variable comparison bug (#2040).
- Protected context from modification (#2010).
- ErrorDialogue : Fixed bug in message handling code (#2030).
- StringAlgo : Fixed bug in `matchMultiple()` (#2015).
- Switch/Dot : Fixed plug colours in NodeGraph (#2008).
- Transform/Resize : Fixed sinc filter (#1980).
- Fixed export of color/vector plugs from Boxes (#2012).
- Resize : Stopped resampling when only pixel aspect
ratio is changed (#2007).
- Fixed crash in viewport mouse handling (#2005).
- Fixed Node Reference link in help menu (#2002).
- Fixed framing of lights in the Viewer, by giving them a default bounding
box (#2054).
API
---
- MetadataAlgo :
- Added "childNodesAreReadOnly" metadata. This makes it possible to make the
internal nodes of a node read-only, while still allowing the external
plugs of the node to be edited (#2048).
- Added functions for bookmarking nodes (#2039).
- Added `childAffectedByChange()` overload for Node changes (#2029).
- Added `copy()` function (#2003).
- Added `copyColors()` function (#2008).
- NoduleLayout : Added support for custom Gadgets to be specified via metadata
(#2043).
- ImagePlug :
- Context management (#2041, #2016) :
- Added Context::EditableScope utility class. Use this instead of the
now-deprecated Context::Borrowed copy contructor.
- Added PathScope/SetScope/GlobalScope utility classes to ScenePlug
- Added GlobalScope/ChannelDataScope utility classes to ImagePlug.
- Added FilterPlug::SceneScope utility class.
- Added V2iVectorDataPlug (#2031).
- NodeGadget :
- Added support for "nodeGadget:type" metadata to control the type of gadget
created by a node (#2029).
- GraphGadget : Added support for dynamically changing "nodeGadget:type"
metadata (#2029).
- Added ChannelPlugValueWidget (#2026).
- Added RGBAPlugValueWidget (#2018).
- ImageGadget : Added methods for selecting which channels to view (#2021).
- ImageAlgo : Added `channelNames()` and `layerNames()` functions (#2019).
- Added SetAlgo namespace with methods for evaluating set expressions (#1985).
- PathMatcher : Added `intersection()` method (#1985).
- Added FilterAlgo namespace with methods for doing filtered image sampling
(#1980).
- SceneAlgo : Added render adaptor API. This provides a simple registry
of SceneProcessors which will be used internally within Render nodes
to perform just-in-time adaptations of the scene for rendering (#1994).
- PlugAlgo : Added plug promotion methods (#2003).
- Added RotateHandle class (#2051).
Build
-----
- DEBUG build option now also disables optimisations (#2009).
- Enabled coloured compiler output (#2000).
- Updated to use Cortex 9.18.0
- Added QtUiTools module to build package.
0.32.0.0
========
Breaking Changes
----------------
- GLWidget : Replaced setOverlay/getOverlay with addOverlay/removeOverlay (#1979).
- Gadget (#1979) :
- Added member variable.
- Made `Gadget::visible()` method const.
Improvements
------------
- ArnoldOptions : Added texture system settings (#1958).
- CustomOptions, CustomAttributes, PrimitiveVariables, OSLCode : Added option to add point and normal values in addition to vectors (#1977).
- OSLShader : Added support for specifying nodule visibility via metadata (#1975).
- Appleseed :
- Added automatic instancing support (#1978).
- Added support for multiple cameras (#1978).
- GUI : User defaults are now applied to new ScriptNodes (#1960).
- OpenColorIO : Added support for specifying OCIO context variables per node (#1988).
- UIEditor / UserPlugs :
- Added menu items for adding array plugs (#1989).
- Added control for setting the documentation:url metadata (#1995).
- Main menu (#1987) :
- Added options for flushing Arnold render caches.
- Added issue tracker link
- Renamed "mailing list" to "forum"
- GLWidget (#1979) :
- Added support for multiple overlays.
- Fixed overlay drawing problems.
- Viewer (#1979) :
- Added support for tool toolbars.
- Added support for tool shortcuts.
- Added sidebar showing all available tools.
- Added translate and scale manipulators.
- Arnold : Added support for subdiv_smooth_derivs attribute on polymeshes (#1996).
Fixes
-----
- Isolate : Fixed bug when using keepLights or keepCameras (#1965).
- InteractiveArnoldRender : Fixed occasional hangs (#1983).
- Browser app : Fixed shutdown errors (#1981).
- Light visualisers : Fixed errors triggered by specific intensity values (#1982).
- OSLShader : Fixed ambiguities between point, vector and normal types (#1977).
- Display : Fixed to support retries after failing to launch the server (#1972).
- UIEditor : Fixed preset naming bugs (#1966).
- Wrapper : Fixed bugs when Gaffer was installed in a location with spaces in the file path (#1961, #1962).
- ErrorDialogue : Fixed parentWindow lifetime issues (#1986).
- CDL : Fixed dirty propagation (#1988).
- Crop : Fixed hang when using a crop with no input image (#1993).
- DispatcherUI : Removed emulated "PlaybackRange" option which was clashing with CustomRange (#1991).
- NodeUI : Fixed documentation:url metadata (#1995).
API
---
- GafferUI::PlugAdder : Added support for subclassing in Python ()
- CompoundNumericPlug : Added `IECore::GeometricData::Interpretation` setting (#1977).
- Added `GafferImage::OpenImageIOAlgo` namespace with various utility functions (#1977).
- Added `Gaffer::PlugAlgo` namespace with a `replacePlug()` utility function (#1977).
- Fixed binding of `Serialiser::childNeedsSerialisation` (#1973).
- Added `WidgetAlgo.joinEdges()` (#1979).
- Gadget : Added setEnabled/getEnabled/enabled methods (#1979).
- Style : Using enum to define axes for translate/scale handles (#1979).
- StandardStyle : Added `disabledState()` (#1979).
Build
-----
- Fixed build on macOS Sierra (#1978, #1992).
- Using clang on OSX.
- Removed troublesome XCode 8.2 build for now.
- Updated standard dependency versions :
- Appleseed 1.6.0-beta
- Boost 1.61
- OSL 1.7.5
- Alembic 1.6.1
- FreeType 2.7.1
- Qt 4.8.7
- Cortex 9.16.2
0.31.0.0
========
Breaking Changes
----------------
- ScriptNode (#1935)
- Removed evaluate() method.
- Removed scriptEvaluatedSignal() method.
- Reordered virtual methods.
- Options (#1929)
- Moved "prefix" plug to CustomOptions node.
- Added virtual method.
- Shader : Removed NetworkBuilder from the API (#1936).
- OSL ShadingEngine : Added argument to `shade()` method (#1944).
- Moved all Algo to nested namespaces (#1953).
Improvements
------------
- ShaderSwitch (#1938)
- Added support for all parameter types.
- Added support for expressions and other inputs to the index plug.
- Added a generic Switch node to the NodeGraph menu (#1938).
- ArnoldShader
- Added support for pass-through of an input parameter when disabled (#1936).
- Added simplified NodeGraph view for shaders like AlSurface and Standard. They
are now shown with most parameters hidden by default, and additional parameters
can be added on demand (#1951).
- OSLShader : Added support for pass-through of input parameters (#1936).
- ArnoldOptions : Added sample clamp options (#1943).
- Camera : Added "Copy From Viewer" item to NodeEditor tool menu (#1950).
- Stats app (#1949)
- Added command line arguments to output
- Added current version to output
- Added -contextMonitor argument (#1952)
- OSLObject : Added support for "world" and "object" coordinate systems (#1944).
- Arnold renderer : Added automatic creation of directories for log files (#1954).
- Rewrote NodeGraph nodule layout code for improved consistency between plugs on nodes
and nested plugs. StandardNodeGadget and CompoundNodule now support the same set of
metadata (#1952).
Fixes
-----
- Fixed error when importing GafferScene or GafferImage before GafferDispatch.
- ScriptNode : Fixed node deletion code to automatically reconnect nested child plugs (#1936).
- Set : Fixed update bug (#1941).
- ObjectSource : Fixed update bug (#1941).
- Reference : Fix reload bug where connections to nested plugs were lost (#1940).
- Dot : Fixed bug where output plug was lost during save (#1946).
- OSLImage : Fix `affects()` so input image affects shading.
- ChannelDataProcess : Fix `affects()`.
API
---
- ScriptNode (#1935)
- Made serialisation and execution useable from C++.
- Added `isExecuting()` method.
- Switch
- Added `setup()` method to simplify creation of custom switches.
- Added `activeInPlug()` method.
- ImageGadget
- Added `textureLoader()` method.
- Added PlugAdder gadget to simplify the process of adding dynamic
plugs within the NodeGraph.
- OSL Shading Engine : Added support for named transform spaces (#1944).
- Added ContextMonitor class.
- Menu : Added `modal` argument to `popup()` method.
- MetadataAlgo : Added `affectedByChange()` overload for nodes.
0.30.2.0
========
Improvements
------------
- Graph Layout : Don't apply positions if the layout algorithm fails.
- StandardOptions : Added "render:sampleMotion" parameter.
- Currently with Arnold support ( RenderMan support requires Cortex update ).
- Arnold backend : Options prefixed with "header:" are written into the header of image outputs.
Fixes
-----
- ArnoldDisplacement :
- Accepts OSLShader inputs to map plug.
- Fixed dirty propagation.
- ArnoldOptions : Removed errorColorBadMesh option.
- Arnold backend : Leave instancing of ASS archives to Arnold itself.
- Fixed a crash bug when Arnold's procedural cache is in use (tested in Arnold 4.2.15.1)
- Build :
- Fixed failing Travis tests by removing `ImageWriterTest.testMultipleWrite()`.
- IE options supply DCC specific LINKFLAGS if specified.
0.30.1.0
========
Improvements
------------
- Arnold backend : Added support for adding arbitrary parameters to the Arnold options by using
a CustomOptions node to create options prefixed with "ai:declare:" (#1911).
- ArnoldOptions : Added AA_seed. If not specified, this defaults to the current frame (#1913).
- Expression : Added support for PathMatcherDataPlugs in python expressions. In particular this allows the FilterResults node to be used as an input to an expression (#1915).
- Documentation : Added Expression reference (#1918).
Fixes
-----
- Dispatcher
- Fixed GIL management bug which could cause deadlock if pre/post dispatch slots launched threads that attempt to use Python (#1916).
- Fixed UI bug in frame range field (#1917).
- Reference : Reconnect outputs from any plugs.
API
---
- Menu : Added support for `functools.partial` in "active" and "checkBox" fields (#1914).
- NodeGraph : Added support for "nodeGraph:childrenViewable" metadata. This controls whether the subgraph of a node is accessible via the "Show Contents..." menu item and the cursor down keypress (#1914).
- PathMatcher/PathMatcherData : Added Python __repr__ support (#1915).
0.30.0.0
========
Breaking Changes
----------------
- Resample : Replaced `dataWindow` plug with `matrix` plug (#1896).
- OpenImageIOReader : Changed units of cache memory limit methods to bytes (#1895).
- Serialiser : Added `serialisation` argument to all methods (#1882).
- Metadata : Removed `inherit` argument from the `plugsWithMetadata()` and `nodesWithMetadata()`
methods (#1882).
- ExecutableRender : Removed `command()` method (#1885).
- Changed return type of `Filter::outPlug()`, `FilteredSceneProcessor::filterPlug() and
`FilterProcessor::inPlug()`. Source code compatibility is maintained.
Features
--------
- Added Mirror node for flipping and flopping images (#1896).
- Added FilterResults node for searching an input scene for
all locations matched by a filter (#1908).
Improvements
------------
- Reference : Added "Duplicate as Box" menu item in NodeGraph (#1898, #1899).
- Box : Added "Import Reference" menu item in NodeEditor (#1898, #1899).
- OSLObject/OSLImage : Added support for vector shader parameters (#1901).
- OSLShader : Added support for array parameters (#1892).
- Render nodes : Added cache clearing after scene generation (#1900).
- Stats app : Added OIIO memory usage reporting (#1895).
- GUI app : Increased default cache size to 1 gigabyte (#1895).
- Image view : Added solo channel plug and button (#1881).
- Node Graph :
- The internal network of Reference nodes may now
be viewed by pressing the cursor down key (#1882).
- ArnoldShader : Added support for "gaffer.plugType" "" metadata.
This can be used to disable the loading of a plug (#1884).
- Documentation
- Added release notes section (#1886).
- Fixed broken links (#1894).
- Improved loading times for scripts with many ArnoldShaders.
- Added support for alternate shiboken install location (#1891).
- Isolate : Added `keepLights` and `keepCameras` plugs (#1893).
- Light Visualisers :
- Added basic area light visualisations to StandardLightVisualiser.
- Added visualisation metadata for Arnold quad, disk, cylinder, and skydome lights.
Fixes
-----
- ImageTransform : Fixed negative scaling (#1896, #1613).
- Set : Fixed filter update bug (#1878, #1908).
- Cache preferences : Stopped serialising metadata unnecessarily (#1895).
- OSX (#1879, #1566, #1880, #1885)
- Fixed numerous build errors
- Fixed problems caused by System Integrity Protection
- Reference (#561, #1882)
- Fixed copy/paste of nodes from inside a Reference
- Prevented editing of internal nodes. They may now be viewed
but in a read-only state.
- Arnold
- Fixed ai:shape:step_size attribute (#1883).
- Fixed crashes when using as_color_texture shader (#1905).
API
---
- OpenImageIOReader (#1895)
- Added `cacheMemoryUsage()` static method
- Changed units of cache memory limit methods to bytes.
- Serialiser : Added `serialisation` argument to all methods (#1882)
- Metadata (#1882)
- Added simplified API and deprecated previous API
- Added MetadataAlgo.h with methods for controlling read-onliness and
querying if a metadata change affects a particular plug.
- Removed `inherit` argument from the `plugsWithMetadata()` and `nodesWithMetadata()`
methods.
- Plug : Deprecated ReadOnly flag - use MetadataAlgo instead (#1882).
- ExecutableRender : Removed `command()` method (#OSX).
- StandardNodule : Added support for "label" metadata (#1889).
- Added M44fVectorDataPlug (#1892).
- ValuePlug : Added `clearCache()` method (#1900).
- ErrorDialogue
- Added ErrorHandler context manager.
- Added `messages` constructor parameter.
0.29.0.0
========
Highlights of this release include an entirely rewritten Appleseed backend with support
for editing geometry and environment lights during interactive renders, an OSLCode node
for the writing of OSL shaders within Gaffer, and much improved OSL support in GafferArnold.
Apps
----
- Screengrab
- Added delay command line argument (#1861).
Core
----
- StringPlug
- Fixed substitutions when plug has an input (#1860).
Appleseed
---------
- InteractiveAppleseedRender (#1833)
- Reimplemented completely to using new Gaffer scene description
APIs.
- Added support for adding/removing/deforming/transforming objects during rendering.
- Added support for changing environment lights during rendering.
- Improved performance and responsiveness.
- AppleseedRender (#1833)
- Reimplemented completely to using new Gaffer scene description APIs.
- AppleseedShaderBall
- Added threads and max samples settings (#1833).
- Increased sphere tesselation #1869.
Arnold
------
- InteractiveArnoldRender
- Added support for editing subdivision attributes while rendering (#1855).
- ArnoldOptions
- Added log verbosity settings (#1866).
- OSL
- Improved OSL shader support using Arnold's new osl_shader node (#1873).
- Improved warning messages for unsupported parameters (#1872).
OSL
---
- Added OSLCode node, to allow editing of OSL shader snippets on the fly (#1861).
UI
--
- ArnoldShader
- Added support for specifying UI layout via Arnold metadata.
In particular, this greatly improves the NodeEditor UI for the
AlShaders (#757, #1864).
- ArnoldAttributes
- Fixed formatting of Subdivision section summary (#1855).
- NodeMenu
- Sorted Arnold shaders into submenus (#1870).
- ScriptEditor/Expression/PythonCommand
- Made code font monospaced (#1861).
- ShaderView
- Fixed initial framing (#1861).
- Fixed bug triggered by shaders changing type (#1861).
- Expression
- Fixed broken popup menus on non-ValuePlugs (#1861).
- OSLShader
- Fixed support for "null" widget type (#1865).
- ImageReader/SceneReader/AlembicSource
- Improved layout of reload button (#1867).
- ArnoldOptions
- Moved threads setting to Rendering section.
- Added indentation to nested collapsible widgets (#1866).
- SceneInspector
- Fixed errors when selected path doesn't exist (#1874).
- Display
- Don't attempt to start server unless UI is connected (#222).
- Added home shortcut for image view.
- Selection/Crop Tools
- Fixed precision issues when far from origin.
Documentation
-------------
- Consolidated reference docs into a parent section (#1860).
- Added string substitutions reference (#1860).
API
---
- Renderer
- Added bool return value to ObjectInterface::attributes(), to signify
success/failure #1855.
- OSLShader
- Added support for unloading with `OSLShader::loadShader( "" )` (#1859).
- Fixed loading of surface type after loading of shader type (#1859).
- LabelPlugValueWidget
- Added support for "labelPlugValueWidget:renameable" metadata (#1861).
- MultiLineTextWidget
- Added "role" property (#1861).
- MultiLineStringPlugValueWidget
- Added support for specifying role via "multiLineStringPlugValueWidget:role"
metadata (#1861).
- OSL
- Added GafferOSL/Spline.h header, to simplify use of splines in shaders (#1861).
- View
- Removed `virtual void plugDirtied()`.
- CompoundDataPlug
- Added support for BoolVectorData (#1863).
- PlugLayout