-
Notifications
You must be signed in to change notification settings - Fork 124
/
Changes
5522 lines (3752 loc) · 191 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
10.5.x.x (relative to 10.5.9.2)
========
10.5.9.2 (relative to 10.5.9.1)
========
Fixes
-----
- USDScene :
- Fixed round-tripping of colons in set names.
- Fixed `hash()` to consider animation on ModelAPI extents when hashing the bound.
- ToMayaMeshConverter : Reverted #1386 that no longer locked normals set on the Mesh from the scc to fix issues with Maya incorrectly recomputing normals as Vertex normals when they were originally computed as Face normals.
- CurvesAlgo : Fixed `resamplePrimitiveVariables()` for use with periodic curves.
10.5.9.1 (relative to 10.5.9.0)
========
Fixes
-----
- OpenImageIOAlgo : Fixed `data()` handling of arrays of type `TypeDesc::CHAR`, `TypeDesc::UCHAR`, `TypeDesc::USHORT`, `TypeDesc::SHORT`, `TypeDesc::UINT` and `TypeDesc::HALF`. Among other things, this fixes the round-tripping of ICC profiles in ImageReader/ImageWriter.
10.5.9.0 (relative to 10.5.8.0)
========
Improvements
------------
- USDScene : `hasBound()` and `readBound()` now use `UsdGeomModelAPI` extents hints if they are available. This behaviour can be disabled by setting the `IECOREUSD_USE_MODELAPI_BOUNDS` environment variable to a value of `0`.
10.5.8.0 (relative to 10.5.7.1)
========
Improvements
------------
- IECoreUSD::DataAlgo : Added binding for `toUSD()` function.
Fixes
-----
- ShaderNetworkAlgo : Fixed crash caused by cyclic connections in `removeUnusedShaders()`.
- ShaderStateComponent : Fixed GL rendering failures caused by unsupported values for texture parameters.
- USDScene :
- Fixed exceptions caused by attempt to write shader parameters with unsupported value types.
- Fixed duplicate loading of `arnold:*` primvars on lights as attributes. These are now only loaded as parameters on the light shader.
- IECoreUSD::DataAlgo : Fixed exceptions thrown by `toUSD()` and `valueTypeName()` when passed datatypes not supported by `dispatch()`. An empty VtValue or SdfValueTypeName is now returned instead.
Build
-----
- CI : Updated to GafferHQ/dependencies 8.0.1.
10.5.7.1 (relative to 10.5.7.0)
========
Fixes
-----
- USDScene :
- Adding mapping of `arnold:*` light parameters to and from the non-standard `primvars:arnold:*` attributes preferred by the `arnold-usd` project.
- Fixed writing of `treatAsPoint` and `treatAsLine` light parameters, which were being written as generic `inputs:*` attributes and not the specific
attributes defined by the SphereLight and CylinderLight schemas.
10.5.7.0 (relative to 10.5.6.2)
========
Features
--------
- MeshPrimitive : Added `interpolateBoundary`, `faceVaryingLinearInterpolation` and `triangleSubdivisionRule` properties for controlling the shape of the subdivision limit surface.
Fixes
-----
- MeshPrimitive : Removed `interpolation` from topologyHash. The topologyHash should only include things which affect the layout of primitive variables.
10.5.6.2 (relative to 10.5.6.1)
========
Fixes
-----
- USDScene : Fixed round-tripping of `ai:light` shader type for the output shader of light networks.
10.5.6.1 (relative to 10.5.6.0)
========
Fixes
-----
- USDScene : Fixed round-tripping of `__lights` set membership for non-UsdLux lights.
- DisplayDriverServer : Fixed delays connecting to the server on Windows.
Build
-----
- SConstruct : Support detection of OpenEXR versions with a patch version containing multiple digits.
- Fixed building with MSVC and Gaffer Dependencies 8.x.
10.5.6.0 (relative to 10.5.5.0)
========
Improvements
------------
- `IECoreGL::Selector`: Added constructor overload that accepts a boolean indicating a more precise, camera-space depth sample will be used to sample depth instead of OpenGL's depth buffer.
- `IECoreGL::ColorTexture`: Added new constructor that accepts an argument specifying the internal storage format to use.
10.5.5.0 (relative to 10.5.4.2)
========
Features
--------
- PyBindConverter : Added new class providing interoperability between Boost Python bindings and PyBind11 bindings.
Improvements
------------
- USDScene : Added basic loading of UsdGeomNurbsCurves, converting them to CurvesPrimitives.
- OStreamMessageHandler : Added level prefix to every line.
Fixes
-----
- CompoundObject : Fixed crashes in Python bindings caused by passing `None` as a key.
- VDBObject : Fixed Python bindings for OpenVDB 10.1.
10.5.4.2 (relative to 10.5.4.1)
========
Fixes
-----
- ExceptionAlgo : Fixed memory leak in `translatePythonException()`, which was failing to manage the reference count for exceptions bound by `IECorePython::ExceptionClass`.
10.5.4.1 (relative to 10.5.4.0)
========
Fixes
-----
- OpenImageIOAlgo : Properly handle empty metadata values.
10.5.4.0 (relative to 10.5.3.0)
========
Improvements
------------
- ShaderNetwork : Added support for InternedStringData attributes in string parameter substitutions.
- MurmurHash : Added specialisation for `std::hash`, among other things allowing the use of MurmurHash as a key in `unordered_map`.
- CompoundObject : Defaulted template argument to `Object` in `member()` methods.
10.5.3.0 (relative to 10.5.2.1)
========
Improvements
------------
- OpenImageIOAlgo : Added support for `InternedStringVectorData` to `DataView`.
Build
-----
- Windows : Fixed include order.
10.5.2.1 (relative to 10.5.2.0)
========
Build
-----
- SConstruct : Make sure VDB includes can be found
- USDScene : Fix build for older USD versions
10.5.2.0 (relative to 10.5.1.0)
========
Improvements
------------
- USD PrimitiveAlgo : Added `readPrimitiveVariable()` utility method for reading from regular `UsdAttributes`.
- USDScene : Added support for reading from in-memory stages by passing a filename of the form `stageCache:{id}.usd` where `{id}` specifies a stage which has been inserted in the `UsdUtilsStageCache`.
Fixes
-----
- USDScene :
- Fixed handling of invalid values on the following attributes :
- PointBased : `positions`, `normals`, `velocities`, `accelerations`.
- Curves : `widths`.
- PointInstancer : `ids`, `protoIndices`, `orientations`, `scales`, `velocities`, `accelerations`, `angularVelocities`.
- Points : `ids`, `widths`.
Invalid values are now ignored with a warning, instead of loading as invalid primitive variables.
- Fixed treatment of unconnected material outputs during reading. If they were "authored" but not connected to a source, they were incorrectly being treated as valid attributes, and loading as empty ShaderNetworks which caused problems elsewhere.
- ToMayaMeshConverter : No longer locks normals set on the Mesh from the scc.
Breaking Changes
----------------
- IECoreMaya : Maya meshes converted from Cortex data no longer have normals set explicitly and instead relies on Maya to calculate them.
10.5.1.0 (relative to 10.5.0.0)
========
Improvements
------------
- USDScene : Added limited support for reading and writing `Volume` prims via `IECoreVDB::VDBObject`.
Fixes
-----
- USDScene : Fixed writing of lights so they are represented as appropriate `UsdLux*Light` prims in USD.
- FrameRange : Prevented creation of FrameRanges with negative steps
- IECore.dataTypeFromElement : Fixed support for list to Vector conversions
- LinkedScene : Fixed bug where `linkLocations` attribute was baked incorrectly if the link target location wasn't the ROOT
- This in turn caused LinkedScene::setNames() and LinkedScene::readSet() to error
- IECoreNuke::FromNukePointsConverter : Use `Color3f` instead of `Color4f` to be compatible with `Gaffer`
- IECoreNuke::SceneCacheReader : Fixed crash with `SceneCacheReader` when widget updates while Caribou updates
10.5.0.0 (relative to 10.4.10.0)
========
Features
--------
- MeshAlgo :
- Added new algorithms for computing mesh normals : `calculateUniformNormals()`, `calculateVertexNormals()` and `calculateFaceVaryingNormals()`.
- Added `correspondingFaceVertices()` method.
Improvements
------------
- MeshAlgo `distributePoints()` :
- Added support for density primitive variable values above 1.
- Added sampling of arbitrary primitive variables via the new `primitiveVariables` parameter.
- Improved accuracy.
- Improved performance.
- MeshAlgo `triangulate()` : Improved performance.
- MeshAlgo `connectedVertices()` : Improved performance.
Fixes
-----
- MeshAlgo `distributePoints()` :
- Fixed duplicate points at triangle edges.
- Fixed handling of points exactly at the density threshold.
- TriangleAlgo :
- `triangleClosestBarycentric()` : Fixed numerical precision bug.
- `triangleContainsPoint()` : Fixed handling of zero-area triangles.
- PolygonVertexIterator : Fixed to use `std::iterator_traits` so that raw pointers are supported.
Breaking Changes
----------------
- IECoreAppleseed : Removed. With Appleseed's removal from Gaffer `1.3.0.0` Cortex no longer provides IECoreAppleseed.
- Python : Removed support for Python 2.
- Primitive : Changed `variableIndexedView()` return type from `boost::optional` to `std::optional`.
- MeshAlgo `distributePoints()` :
- Changed function signature.
- Bug fixes mean subtle changes to the resulting points.
10.4.10.3 (relative to 10.4.10.2)
=========
Fixes
-----
- USDScene : Fixed treatment of unconnected material outputs during reading. If they were "authored" but not connected to a source, they were incorrectly being treated as valid attributes, and loading as empty ShaderNetworks which caused problems elsewhere.
10.4.10.2 (relative to 10.4.10.1)
=========
Fixes
-----
- LinkedScene : Fixed bug where `linkLocations` attribute was baked incorrectly if the link target location wasn't the ROOT
- This in turn caused LinkedScene::setNames() and LinkedScene::readSet() to error
- IECoreNuke::FromNukePointsConverter : Use `Color3f` instead of `Color4f` to be compatible with `Gaffer`
- IECoreNuke::SceneCacheReader : Fixed crash with `SceneCacheReader` when widget updates while Caribou updates
10.4.10.1 (relative to 10.4.10.0)
========
Fixes
-----
- FrameRange : Prevented creation of FrameRanges with negative steps
- IECore.dataTypeFromElement : Fixed support for list to Vector conversions
10.4.10.0 (relative to 10.4.9.1)
========
Improvements
------------
- IECoreNuke::LiveScene :
- Adding caching to speed up querying Nuke's GeometryList for large hierarchy
- Support for `ParticleSprite`
- `setOp` method to avoid re creating `LiveScene` from scratch
Fixes
-----
- IECoreMaya.SceneShape : Fixed reading of time samples for expanded link locations
- Traverse the time plug connections to check for a maya global time connection
- CheckedGILRelease : Safe to call if thread doesn't hold the GIL
- IECoreNuke::SceneCacheReader : release GIL during `_validate` to avoid crash with Caribou
- IECoreNuke::LiveScene :
- Fix crash when there is not input `GeoOp`.
- Fix uninitialized bounds
- Fix bug with duplicated parents
- Fix bug when querying children combined between multiple parents
10.4.9.1 (relative to 10.4.9.0)
========
Fixes
-----
- USDScene : Fixed hash clashes when the same USD file containing instanceable prims was opened a second time. Because USD doesn't assign prototypes deterministically, hashes would be shuffled between prototypes, yielding inconsistencies between the hashes for the two scenes. Hashes are now completely unique from scene-to-scene, so no locations can have clashing hashes.
10.4.9.0 (relative to 10.4.8.0)
========
Improvements
------------
- USDScene :
- Improved performance of `setNames( includeDescendantSets = True )` substantially for compositions with instanced prims.
- Improved performance of `readSet( includeDescendantSets = True )` substantially for compositions with instanced prims.
- Improved performance when reading materials from instanced prims.
- Added loading of `UsdGeomCube` prims (as MeshPrimitives).
- SceneInterface : Added `_copy` argument to Python bindings for `readAttribute()`, `readTransform()` and `readObject()`. Pass `_copy = False` to receive the original constant result directly instead of a mutable copy. Use with care (typically only for debugging and testing)!
- TypedData : Added move constructors.
Fixes
-----
- USDScene :
- Fixed loading of `__cameras`, `__lights` and `usd:pointInstancers` sets from within instanced prims.
- Fixed cancellation when reading `UsdGeomSphere` prims.
10.4.8.0 (relative to 10.4.7.1)
========
Improvements
------------
- USDScene : Exceptions thrown by `child()` are now more descriptive.
Fixes
-----
- USDScene : Fixed `hasChild()` bug which considered prims to be children when `child()` and `childNames()` did not.
10.4.7.1 (relative to 10.4.7.0)
========
Fixes
-----
- USDScene :
- The UsdShadeMaterialBindingAPI schema is now applied to all prims with material bindings, making the written files compatible with `USD_SHADE_MATERIAL_BINDING_API_CHECK=strict` mode.
- Fixed loading of USDGeomXformable's `ResetXformStack` operator.
10.4.7.0 (relative to 10.4.6.0)
========
Improvements
------------
- IECoreGL::PointsPrimitive : Added `renderUsesGLPoints()` method (#1347).
- IECoreGL::CurvesPrimitive : Added `renderUsesGLLines()` method (#1347).
- StringAlgo : Added `concat()` and `toInt()` methods (#1343).
- IECoreScene::ShaderNetworkAlgo (#1343) :
- Added `convertToOSLConventions()`, `expandSplines()` and `collapseSplines()`.
- Deprecated `convertOSLComponentConnections()`, `expandSplineParameters()` and `collapseSplineParameters()`.
- USDScene : Added support for roundtripping connections to SplineData parameters.
Fixes
-----
- IECoreUSD::PrimitiveAlgo (#1346) :
- Fixed reading of primitives containing `primvars:normals`. These are now correctly loaded as a primitive variable called `N`, taking precedence over the UsdGeomPointBased `normals` attribute.
- Fixed writing of indexed normals so that the indexing is retained on load. Note that this means that normals are now _always_ written as `primvars:normals` and never via the UsdGeomPointBased `normals` attribute.
10.4.6.0 (relative to 10.4.5.0)
========
Features
--------
- MeshAlgo : Added new MeshSplitter class, for efficient splitting meshes based on uniform primitive variables.
- ImathHash : Added new header that defines `std::hash` for Imath types.
Improvements
------------
- PointsPrimitive, Primitive : Accelerated bounds computation using `tbb::parallel_reduce`.
- MeshAlgo : Improved performance of `segment()`.
Fixes
-----
- ImageReader : Fixed compilation with versions of OIIO < 2.4.
- USDScene : Invalid primitive variables are now skipped during loading, with a warning being emitted instead.
- MeshAlgo : Fixed crease handling in `deleteFaces()`.
Build
-----
- Updated CI builds to use GafferHQ/dependencies version `6.0.0`, making them suitable for use in Gaffer `1.2.x.x`.
10.4.5.0 (relative to 10.4.4.0)
========
Improvements
------------
- CurvesAlgo, MeshAlgo, PointsAlgo : `resamplePrimitiveVariable()` now supports all data types when resampling a `Constant` primitive variable.
Build
-----
- Update Windows release build dependencies to 6.2.1.
- Added compatibility with OpenImageIO 2.4.
10.4.4.0 (relative to 10.4.3.1)
========
Improvements
------------
- USD :
- Added loading of `float4` USD shader parameters as `Color4` parameters.
- Added support for Arnold-USD's convention for representing connections to individual indices of an array.
Build
-----
- Added compatibility with USD 23.02.
- Updated Windows dependencies to 6.2.1.
10.4.3.1 (relative to 10.4.3.0)
========
Fixes
---
- IECoreMaya.SceneShapeSubSceneOverride : Visibility override fixes (#1320).
- Removed SceneInterface visibility check, as it is now obsolete and causing issues.
- Check visibility for root locations, so bounds aren't incorrectly drawn.
- VDBObject : Fixed infinite recursion in isEqualTo() (#1314).
10.4.3.0 (relative to 10.4.2.1)
========
Features
--------
- IECoreNuke : Add LiveScene support for Nuke (#1310).
- LiveSceneKnob : Knob to interface with LiveScene from Python.
- LiveSceneHolder : Node to hold LiveSceneKnob to provide a Python interface with LiveScene.
- IECoreMaya : Add non-drawable `ieSceneShapeProxy` subclassed from `ieSceneShape` (#1311).
Improvements
------------
- Added string constructor and static `fromString` function to `IECore.MurmurHash`.
Fixes
-----
- IECoreUSD : Fixed error in `pluginfo.json` preventing USD on Windows from loading `IECoreUSD.dll`.
- IECoreScene : Fixed MeshPrimitiveEvaluator assert typo.
Build
-----
- Updated Windows dependencies to 6.2.0.
- Added WITH_OIIO_UTIL option.
10.4.2.1 (relative to 10.4.2.0)
========
Build
-----
- Added Windows package to build artifacts and release binaries.
10.4.2.0 (relative to 10.4.1.2)
========
Improvements
------------
- AlembicScene : Added support for `unsigned char`, `uint16`, `int16` and `uint32` GeomParams, mapping them to and from
`UCharVectorData`, `UShortVectorData`, `ShortVectorData` and `UIntVectorData` PrimitiveVariables respectively (#1297).
- CubicBasis (#1298) :
- Added `Constant` standard basis, for performing stepped interpolation.
- Bound `numCoefficients()` method to Python.
- ShaderNetworkAlgo : Added support for spline parameters with `Constant` basis. These are mapped to the `constant` interpolation type in OSL (#1298).
Fixes
-----
- Spline : Fixed bugs evaluating splines with discontinuities in the basis (#1298).
10.4.1.2 (relative to 10.4.1.1)
========
Build
-----
- Updated to GafferHQ/dependencies 5.1.0 (#1296).
10.4.1.1 (relative to 10.4.1.0)
========
Fixes
-----
- AlembicScene : Fixed hash for animated visibility attribute (#1295).
- Font : Fixed crashes caused by negative `char` values (#1291).
- IECoreMaya : Fixed erroneous display of hidden locations in VP2 (#1290).
- IECoreMaya : Updated SceneShape drawing to respect ancestral visibility overrides (#1290).
- IECoreMaya : Fixed SceneShape isolate selection in maya (#1290).
- USDScene : Fixed loading of primitive variables from UsdGeomPointInstancers (#1292).
10.4.1.0 (relative to 10.4.0.0)
========
Improvements
------------
- IECoreGL::Shader : Added support for 1D and 2D textures in `addUniformParameter()` (#1282).
- USDScene : Added loading of `treatAsPoint` and `treatAsLine` attributes from UsdLux lights (#1283).
- AlembicScene : Added support for visibility attribute (#1288).
Fixes
-----
- Windows : Fixed compilation with MSVC 2019 (#1281).
- USDScene : Fixed shader type for UsdLux lights. It is now `light` rather than `surface` (#1283).
- IECoreGL::Shader : Fixed unnecessary accumulation of memory when uniform values are changed (#1284).
- IECoreGL::Buffer : Fixed export of ScopedBinding class (#1287).
- Version : Fixed compilation error when including `IECore/Version.h` without having previously included `IECore/Export.h`.
10.4.0.0
========
Improvements
------------
- USDScene :
- Added support for reading and writing purpose-based material bindings (#1273).
- Added basic support for loading UsdLux lights (#1256).
- IECoreGL::Shader :
- Added support for buffer samplers (#1264).
- Added support for integer sampler parameters (#1261).
- Adopted stricter default compilation flags (#1266).
- IECoreUSD : Added support for version 22.03 (#1245).
- IECoreMaya : Added support for Maya 2022 and Python 3 (#1235).
- IECoreNuke : Added support for Python 3 (#1238).
- IECoreHoudini : Added support for Houdini 19 and Python 3 (#1242).
- Python : Added support for Python 3.9 in addition to 3.7 (#1229).
Fixes
-----
- PointDistribution : Fixed inconsistent distributions between MacOS and Linux. The Linux distribution is now used on all platforms (#1269).
- Fixed compilation with C++17 (#1269, #1265).
- IECoreGL : Fixed build errors on MacOS (#1271).
- USDScene :
- Fixed loading of asset paths containing `<UDIM>` tokens (#1274).
- Fixed `attributesHash()` to consider UsdLuxLights (#1276).
Breaking Changes
----------------
- PerlinNoise/Turbulence : Removed. We recommend OpenShadingLanguage's `liboslnoise` instead (#1269).
- OpenImageIO : Updated required version to 2.3 (#1246, #1230).
- Alembic : Dropped support for Alembic versions prior to 1.6 (#1240).
- IECoreGL : Removed `PerspectiveCamera.h` header. The implementation was already removed in a Cortex 10.1.0.0 (#1241).
- StringAlgo : Removed `join()` (#1221).
Build
-----
- Updated IE options file to support Nuke 13.x custom dependencies (#1263).
10.3.8.1 (relative to 10.3.8.0)
========
Fixes
---
- IECoreMaya.SceneShapeSubSceneOverride : Visibility override fixes (#1320).
- Removed SceneInterface visibility check, as it is now obsolete and causing issues.
- Check visibility for root locations, so bounds aren't incorrectly drawn.
10.3.8.0 (relative to 10.3.7.2)
========
Features
--------
- IECoreNuke : Add LiveScene support for Nuke (#1310).
- LiveSceneKnob : Knob to interface with LiveScene from Python.
- LiveSceneHolder : Node to hold LiveSceneKnob to provide a Python interface with LiveScene.
- IECoreMaya : Add non-drawable `ieSceneShapeProxy` subclassed from `ieSceneShape` (#1311).
Fixes
-----
- IECoreUSD : Fixed error in `pluginfo.json` preventing USD on Windows from loading `IECoreUSD.dll`.
10.3.7.2 (relative to 10.3.7.1)
========
Fixes
-----
- IECoreMaya : Fixed erroneous display of hidden locations in VP2 (#1290).
- IECoreMaya : Updated SceneShape drawing to respect ancestral visibility overrides (#1290).
- IECoreMaya : Fixed SceneShape isolate selection in maya (#1290).
- USDScene : Fixed loading of primitive variables from UsdGeomPointInstancers (#1292).
10.3.7.1 (relative to 10.3.7.0)
========
Fixes
-----
- Version : Fix compile error when including `IECore/Version.h` without having previously included `IECore/Export.h`
10.3.7.0 (relative to 10.3.6.1)
========
Improvements
------------
- IECoreGL :
- Buffer : Added `buffer()` method, which returns the OpenGL buffer handle (#1272).
- Primitive : Added `getVertexBuffer()` and `getVertexCount()` methods (#1272).
Fixes
-----
- IECoreUSD :
- SceneCacheFileFormat : Added support for `IECore::Object` references when determining primvar type (#1280).
10.3.6.1 (relative to 10.3.6.0)
========
Fixes
-----
- USDScene : Fixed read/write of Color4f parameters, including component connections.
- ShaderNetworkAlgo : Added support for Color4f parameters in `add|removeComponentConnectionAdapters()`.
10.3.6.0 (relative to 10.3.5.1)
========
Improvements
------------
- USDScene : Added support for the `doubleSided` attribute.
10.3.5.1 (relative to 10.3.5.0)
========
Fixes
-----
- USDScene : Fixed compatibility with USD 21.08 (#1259).
10.3.5.0 (relative to 10.3.4.1)
========
Improvements
------------
- USDScene : Registered .usdz file format (#1257).
10.3.4.1 (relative to 10.3.4.0)
========
Build
-----
- IECoreUSD : Support for USD 20.??
10.3.4.0 (relative to 10.3.3.0)
========
Improvements
------------
- USDScene :
- Improved loading speed for stages where the same material is bound to many prims (#1253).
- Added support for `SdfAssetPath` attributes, which are now loaded as StringData containing the resolved asset path (#1252).
Fixes
-----
- CurvesAlgo : Fixed `resamplePrimitiveVariable()` to support vertex-to-varying and varying-to-vertex conversion for V2f primitive variables (#1251).
- USDScene : Fixed loading of materials containing shaders with exposed inputs (#1252).
10.3.3.0 (relative to 10.3.2.1)
========
Improvements
------------
- IECoreGL
- Shader : Added support for 1D samplers (#1243).
- CurvesPrimitive : Added limited support for point drawing mode (#1247).
10.3.2.1 (relative to 10.3.2.0)
========
Fixes
-----
- USDScene :
- Fixed reading of Houdini's paired representation of primvars with varying-length arrays per vertex/face (#1233).
- Fixed reading of custom attributes without an authored value. These are now ignored by `attributesNames()` (#1234).
CI
--
- Windows : Added testing of IECoreUSD (#1233).
10.3.2.0 (relative to 10.3.1.0)
========
Improvements
------------
- ShaderNetwork : Added `_copy` argument to `getShader()` binding (#1228).
- ShaderNetworkAlgo : Added `addComponentConnectionAdapters()` and
`removeComponentConnectionAdapters()` (#1228).
Fixes
-----
- USD :
- Fixed export of shading networks containing component-level connections (#1228).
- Fixed compilation with USD 20.08 (#1226).
Build
-----
- Windows :
- Defaulted to `O2` optimisation level (previously `Ox`) (#1224).
- Added RenderMan display driver to build (#1225).
- CI : Updated to GafferHQ/dependencies 4.0.0 (#1227).
10.3.1.0 (relative to 10.3.0.0)
========
Features
--------
- USDScene (#1214) :
- Added support for reading and writing `IECoreScene::ShaderNetwork` attributes via USDShade.
- Added initial support for writing Arnold globals.
- ShaderNetworkAlgo : Added `expand/collapseSplineParameters()` functions (#1218).
Improvements
------------
- Windows :
- Added IECoreGL support (#1211).
- Added IECoreUSD support (#1204).
- Fixed many build warnings (#1217).
- SceneInterface : Improved error messages for unrecognised file extensions (#1214).
Fixes
-----
- FromHoudiniPolygonsConverter : Fixed bug whereby a mixture of open and closed polygons were converted as a single MeshPrimitive. We consider open polygons to be linear CurvesPrimitives, so they should not be convertable as MeshPrimitives (#1212).
- CurvesPrimitiveEvaluator : Fixed C++17 compilation error (#1216).
- SceneCacheFileFormat : Stopped labelling primvars as custom (#1214).
10.3.0.0 (relative to 10.2.3.0)
========
Improvements
------------
- LinkedScene : Path element separators (forward and backslash) are now platform independent (#1193).
- Paths are internally stored using forward slash only.
- Paths are returned by `readAttribute` in OS-native format.
- IECoreGL : The `render:displayColor` attribute is now passed to the `Cs` parameter of GLSL shaders (#1209).
- IECoreUSD : Added round-tripping of constant USD primvars through Cortex as attributes with a `render:` prefix (#1188).
Fixes
-----
- StreamIndexedIO : Fixed memory leak when passing `NullIfMissing` or `ThrowIfMissing` to `directory()` (#1181).
- Build : Fixed build error when running `scons` via Python 3 (#1184).
- TBB : Reduced reliance on deprecated TBB features (#1194).
- IECoreScene tests : Added missing tests for SceneInterface, TransferSmoothSkinningWeightsOp and TypedPrimitiveOp (#1193).
Breaking Changes
----------------
- IECoreArnold : Removed. This is now maintained as part of `GafferHQ/gaffer` (#1199).
- HeaderGenerator : `machineName`, `systemRelease`, `systemVersion`, may differ from previous versions on Windows. Linux and MacOS are unaffected.
- HeaderGenerator : `nodeName` is no longer converted to all capital letters and may differ from previous versions on Windows. Linux and MacOS are unaffected.
CI
--
- Windows : Added testing of IECoreImage, IECoreScene, IECoreAlembic and IECoreVDB (#1183, #1193, #1205, #1206).
- Migrated build container hosting to the GitHub Container Registry (#1200).
10.2.3.1 (relative to 10.2.3.0)
========
Fixes
----
- FromHoudiniPolygonsConverter : Fixed bug whereby a mixture of open and closed polygons were converted as a single MeshPrimitive. We consider open polygons to be linear CurvesPrimitives, so they should not be convertable as MeshPrimitives.
10.2.3.0 (relative to 10.2.2.0)
========
Improvements
-----
- IECoreUSD SceneCacheFileFormat : Added support for per frame writing (#1178).
- This can be used in conjunction with Houdini Solaris "flush after each frame" write mode.
- It will limit the time samples to the frame range supplied via SdfFileFormatArgs.
- TBB binding : Added Python binding for `tbb_global_control.active_value()` (#1189).
- IECoreNuke : Removed Op menu (#1186).
- IECoreHoudini : Python 3 Support (#1196).
Fixes
----
- IECore.IgnoredExceptions : Fixed python 3 traceback lifetime issue (#1195).
- IECoreAlembic : Fixed reading/writing indexed UVs for curves (#1179).
- IECoreUSD USDScene : Fixed custom attribute hashing (#1197).
Build
----
- CI (#1190) :
- All tests run via GitHub Actions, removed Azure & Appveyor testing.
- Windows : Added testing of IECore.
10.2.2.0 (relative to 10.2.1.0)
========
Improvements
------------
- UniverseBlock : Added `universe()` method (#1177).
Fixes
-----
- ExceptionBinding : Fixed reference counting bug which leaked Python reference objects (#1173).
10.2.1.0 (relative to 10.2.0.1)
========
Improvements
------------
- USDScene : Added basic support for custom attributes (#1172).
- PrimitiveVariable::IndexedView (#1170) :
- Added `isValid()` method.
- Added explicit conversion to bool.
Fixes
-----
- TextureLoader : Fixed alpha handling bug when applying colour transforms (#1169).
- TypedData : Fixed template instantiation warnings on Windows (#1166).
10.2.0.1 (relative to 10.2.0.0)
=======
Fixes
-----
- Maya and Houdini LiveScene : Fixed for updated SceneInterface (#1168)
- IECoreUSD SceneCacheFileFormat (#1163, #1165) :
- Convert between `Cs` and `displayColor` on read/write
- Fixed compilation with GCC 9
10.2.0.0
=======
Improvements
------------
- MurmurHash (#1150) :
- Added support for calling `append()` with all types dispatched by `DataAlgo::dispatch()`.
- Added support for calling `append()` with custom types. This is achieved by providing a `murmurHashAppend( MurmurHash &h, const T& )` overload for the type (#1138).
- Added Python binding for `append( BoolVectorData )`.
- Added Python `__hash__` method to allow MurmurHash to be stored in sets and used in dictionary keys.
- Inlined the constructors (#1130).
- Canceller : Added `elapsedTime()` method (#1159).
- MeshAlgo : Removed unnecessary expansion of UV data in the following functions (#1161) :
- `calculateFaceArea()`
- `calculateFaceTextureArea()`
- MeshPrimitive : Added cancellation support for `createPlane()` and `createSphere()` (#1161).
- Object : Added `canceller` argument to `load()` static method. This is currently only respected by the `Primitive` class (#1161).
- MeshAlgo/CurvesAlgo/PointsAlgo : Added `canceller` arguments to many functions (#1161).
- AlembicScene/USDScene : Added cancellation support for the `readObject()` and `readSet()` methods (#1161).
- IECoreUSD::DataAlgo : Added Python bindings for `role()` and `valueTypeName()` (#1155).
Fixes
-----
- Windows (#1141, #1153) :
- HeaderGenerator : Added missing implementation.
- Arnold output driver : Fixed linking.
- Fixed path separator handling bugs (`:` vs `;`).
- IFFFile/PointDistribution/PDCParticleReader/PDCParticleWriter : Fixed file open mode.
Breaking Changes
----------------
- DisplayDriverServer : Changed type used to represent port number.
- MeshAlgo : Removed `tolerance` and `throwErrors` parameters from `triangulate()` function (#1161).
- SceneInterface : Added `canceller` arguments to some virtual functions (#1161).
Build
-----
- Fixed SConstruct for use with Python 3 (#1153).
- Added `PYTHON_LIB_PATH` build option (#1153).
10.1.8.2 (relative to 10.1.8.1)
========
Fixes
-----
- IECoreUSD SceneCacheFileFormat (#1163, #1165) :
- Convert between `Cs` and `displayColor` on read/write
- Fixed compilation with GCC 9
10.1.8.1 (relative to 10.1.8.0)
========
- FromHoudiniPointsConverter : Revert behaviour #1157 (#1162)
- We continue to export empty PrimitiveVariables when there are no points, because downstream processing often requires the existance of P at a minimum.
- FromHoudiniGeometryConverter : Fixed crash with empty string attribs ranges (#1162)
10.1.8.0 (relative to 10.1.7.0)
========
Improvements
------------
- IECoreUSD : Added SceneCacheDataAlgo and python bindings, primarily for convenience in the unittests (#1152)
Fixes
-----
- DisplayDriverServer : Fixed type used in range check (#1149)
- IECoreImage Tests : Fixed tests when using boost and OIIO on different paths (#1160)
- USDScene :
- Fixed compilation with USD 19.11 (#1148)
- Fixed invalid USD Collection names (#1152)
- USD SceneCache Support (#1152, #1158):
- Fixed compilation with GCC 9
- Fixed memory leak
- Fixed crash when loading CurvesPrimitives with invalid basis
- Fixed loading of SceneCache files as USD References and Sublayers
- Note this introduces a top-level IECoreUSD location to the stage hierarchy. Round-tripping through Cortex removes the extra location, but it will be visible when loading SceneCache files into applications (eg usdview)
- AlembicScene : Fixed crash caused by non-scalar userProperties (#1156)
- FromHoudiniPointsConverter : Fixed crash during attribute transfer for empty particle systems (#1157)
10.1.7.0 (relative to 10.1.6.0)
========
Features
--------
- IECoreUSD : Added USD plugin to load SceneCache (scc, lscc) data (#1142).
Improvements