forked from GafferHQ/gaffer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
6912 lines (5007 loc) · 290 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.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
- Added support for "layout:accessory" metadata.
- Added RefreshPlugValueWidget and deprecated IncrementingPlugValueWidget (#1867).
- ViewportGadget
- Don't convert raster positions to V2i.
Build
-----
- Added OSLHOME build option, only necessary when building without using GafferHQ/dependencies (#1871).
Breaking changes
----------------
- View
- Removed `virtual void plugDirtied()`.
0.28.3.0
========
OSL
---
- Metadata
- Support OSL "page", "connectable", and "URL" metadata
- Support metadata on spline plugs
- Support min/max metadata
0.28.2.1
========
API
---
- ArnoldShader
- Fix `outPlug()` loading bug introduced in 0.28.2.0.
0.28.2.0
========
UI
--
- Fixed incorrect re-use of widgets when swapping plugs with the same name.
Scene
-----
- Fixed context scoping issue during renders.
Arnold
------
- Added curve min_pixel_width and mode attributes.
- Shaders are now re-loadable, and will automatically reload during script load.
Cortex
------
- Fixed incorrect re-use of plugs when swapping parameters with the same name.
API
---
- SceneAlgo
- Fixed context used by `sets()` function.
- RendererAlgo (preview)
- Fixed context used by `RenderSets` class.
- ArnoldShader
- Added keepExistingValue argument to `loadShader()`.
- Added `loadShader()` to serialisation.
- Reusing existing plugs wherever possible.
- CompoundParameterHandler
- Match by parameter object instead of name.
- CompoundPlugValueWidget
- Match by plug object instead of name.
0.28.1.0
========
UI
--
- The 3D Viewer can now look through lights (#1846).
- Prefixed NodeMenu search text for RSL and OSL shaders with ri and osl respectively (#1850).
Arnold
------
- Added support for trace sets (#1847). Any standard gaffer set with a name beginning with "render:" will be exported to Arnold as a trace set.
- Fixed ArnoldDisplacement crash (#1849).
- Added support for a `gaffer.nodeMenu.category` metadata value to customise the shader menu (#1850).
Scene
-----
- Added LightToCamera node (#1846).
API
---
- Context (#1848)
- Added GIL release in `set()` method bindings to
fix potential deadlocks.
- Fixed bug which meant that `remove()` wasn't
emitting `changedSignal()`.
- SceneAlgo
- Added `sets()` overload to compute a subset of all sets.
- RendererAlgo (preview)
- Added RenderSets utility class.
- Modified output methods to take a RenderSets argument.
- ShaderPlug
- Fixed bug involving plugs with no input (#1849).
Build
-----
- Added INSTALL_POST_COMMAND option, to allow custom commands to be run after installation (#1845).
0.28.0.1
========
UI
--
- Viewer
- Construct as invisible to avoid unnecessary updates
- Improved renderer management for shader swatches
- Support reregistration of shader swatch scenes
Scene
-----
- FilterPlug
- Fixed compatibility with legacy SubGraphs and Dots
Arnold
------
- ArnoldShaderBall
- Added threads plug and limited cores used by the shader swatches
Appleseed
---------
- Removed unwanted shaders from Appleseed shader menu
Build
-----
- Resources now install even when not building docs
0.28.0.0
========
UI
--
- Viewer
- Added interactive shader swatches (#1828).
- Added visualisation of Arnold spotlight lens radius (#1835).
- Fixed visualisation of lights aligned to camera (#1835).
- NodeGraph
- Added "Move To" menu items for Dot nodes.
- InteractiveRender
- Added Play/Pause/Stop buttons.
Scene
-----
- Added LightTweaks node (#1829).
- Added ShaderBall node (#1828).
- Added CopyOptions node (#1834).
- Fixed FilterSwitch serialisation bug (#1814, #1815).
Arnold
------
- Added support for shader network inputs to light parameters (#1828).
- Added support for spline shader parameters (#1813).
- Added support for OSL shaders (#1813).
- Added bucketSize and bucketScanning options to ArnoldOptions node (#1827).
- Added ArnoldShaderBall node (#1828).
- Added performance monitor support to ArnoldRender (#1831).
- Improved parameter linking support in renderer backend.
- Fixed crashes caused by trying to use two render nodes at once in the same process (#1818).
Appleseed
---------
- Added AppleseedShaderBall node (#1828).
- Fixed problems with searchpath initialisation (#1828).
RenderMan
---------
- Added RenderManShaderBall node (#1828).
Dispatch
--------
- Fixed performance problems with complex dispatch graphs (#1820).
Image
-----
- Fixed sizing of whitespace in Text node (#1822).
OSL
---
- Fixed problems with OSL_SHADER_PATHS initialisation (#1813).
Documentation
-------------
- Added missing image to "Getting Started" tutorial (#1810).
Build
-----
- Replaced appleseed build options with single APPLESEED_ROOT option (#1812).
API
---
- Scene
- Added FilterPlug (#1815).
- Added ShaderPlug (#1828).
- Deprecated public attributes methods on Shader node.
- Allowed ObjectSource derived classes to define more than one default set (#1821).
- UI
- Added `Gadget::visibilityChangedSignal()` (#1828).
- Arnold
- Added gaffer.plugType metadata support for shader parameters (#1817).
- Monitor
- Added support for NULL argument to Scope class (#1831).
Breaking Changes
----------------
- Added an argument to `GafferArnold::ParameterAlgo::setupPlug()` (#1817).
- Modified ObjectSource virtual methods (#1821).
0.27.1.0
========
Core
----
- Fixed crash caused by using an invalid expression language (#1801).
Arnold
------
- Fixed motion blurred light bug (#1805).
- Fixed overscan rendering (#1803).
OSL
---
- Added support for matrix parameters (#1798, #1800)
API
---
- Replaced cropWindow with renderRegion in new IECoreScenePreview::Renderer::camera().
0.27.0.1
========
UI
--
- ViewportGadget
- Exposed world position to shaders
0.27.0.0
========
Apps
----
- Screengrab (#1793, #1559)
- Added arguments for Viewer and NodeGraph framing
- Added arguments for Viewer and SceneHiearchy expansion and selection
- Added argument for grabbing a single plug from the NodeEditor
Scene
-----
- Fixed SubTree to error when an invalid root is entered (#1786, #1790).
- Added filter input to Set, to define additional paths to add/remove.
Arnold
------
- Added ArnoldMeshLight node (#1787)
- Added ArnoldDisplacement node (#1776)
- Added subdivision attributes to ArnoldAttributes (#1776)
- ArnoldOptions (#1788)
- Added total depth and transparency depth/threshold plugs
- Fixed warnings about unhandled light parameters
- Fixed crashes/errors caused by multiple cameras and a threading
bug (#1785)
- Fixed bogus warning about "ai:log:filename" option.
OSL
---
- Expression (#1791, #1789)
- Fixed string comparison bug
- Fixed bugs when plug names share a common prefix
- Fixed mistaken assignments
- Added support for spline parameters in shaders (#1782)
- Fixed reload button on shader UI
Documenation
------------
- Added basic lighting and rendering tutorial (#1793).
Build
-----
- Fixed debug builds (#1781)
- Added debug builds to Travis tests (#1781)
- Fixed clang compilation error in Serialisation.cpp
API
---
- Made FilteredSceneProcessor subclassable in Python.
Breaking Changes
----------------
- Rederived Set from FilteredSceneProcessor.
- Changed LightVisualiser API
- Added attributeName argument to visualise() virtual method.
- Added attributeName argument to registerLightVisualiser() factory method.
- Changed StandardLightVisualiser metadata prefix convention from
"light:renderer:shaderName" to "renderer:light:shaderName", to
match the ordering of the data as it appears in the scene module
(attributeName:shaderName).
- Light nodes now output IECore::Shader objects rather than IECore::Lights
0.26.0.0
========
Arnold
------
- Added automatic instancing of identical objects (#1775).
- Added support for user attributes (#1775).
- Added support for filter widths in output specifications (#1773).
- Updated subdivision attributes to match Arnold versions 4.2.8.0 and
onwards (#1775).
- Moved path setup to wrapper. This means that `gaffer env kick` can
be used to render a pregenerated ass file (#1774).
UI
--
- NodeGraph
- Added automatic layout of nodes generated by scripts (#1751, #1771).
- Fixed duplicate position plug names (#762).
API
---
- Renamed ExecutableNode to TaskNode (#1767).
- Protected TaskNode internal virtual methods. Use the TaskPlug
methods instead (#1767).
- Replaced OSLRenderer with ShadingEngine (#1770).
- GraphGadget
- Added unpositionedNodes() method (#1751).
Build
-----
- Updated public build to use OSL 1.7.2 and OIIO 1.6.14.
Breaking Changes
-----------------
- Renamed ExecutableNode.
- Protected internal TaskNode methods.
- Replaced OSLRenderer with ShadingEngine.
- Dropped support for OSL versions prior to 1.7.
0.25.1.0
========
Apps
-----------------------------------------------------------------------
- Screengrab
- Support for grabbing the ScriptEditor.
UI
-----------------------------------------------------------------------
- Fixed crash on mouse move over an about-to-become-visible GLWidget.
Scene
-----------------------------------------------------------------------
- Attributes
- Avoided unnecessary dirty propagation.
- Deactivated filter field when in global mode.
- InteractiveRender
- Fixed object visibility bug.
- Fixed context management bugs.
- RenderUI
- Exposing nodules for task plugs.
Image
-----------------------------------------------------------------------
- ImageGadget
- Taking pixel aspect into account when drawing.
- Fixed color inspector for non-square pixels.
Arnold
-----------------------------------------------------------------------
- ArnoldRenderer
- Reusing shaders where possible.
- Ensuring shader nodes are named (uniquely).
- Fixed sharing of attributes between lights.
- Fixed time_samples.
- Fixed default shader override on ExternalProcedurals.
- ArnoldOptions
- Added missing sampling and depth options.
- ArnoldAttributes
- Supporting additional shading attributes.
- "ai:matte", "ai:opaque", "ai:receive_shadows" and "ai:self_shadows"
Documentation
-----------------------------------------------------------------------
- Added scripting tutorials and reference.
- Added bookmarks to config file tutorial.
- Added examples for the "test" app.
- Added OpenVDB license to appendices.
- Renamed "Performance Guidelines" tutorial to "Managing Complexity".