forked from ImageEngine/cortex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
4865 lines (3295 loc) · 170 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.4.0.0a2 (relative to 10.4.0.0a1)
==========
> Note : None of these changes need to be mentioned in the release notes for the final release version of `10.4.0.0`. They are all inherited from `10.3.4.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.4.0.0a1 (relative to 10.3.2.1)
==========
Improvements
------------
- 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).
Breaking Changes
----------------
- 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).
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
------------
- DisplayDriverServer : Added mechanism to limit available ports (#1140).
- IECoreUSD::DataAlgo: Added `role()` to convert from Cortex geometric interpretation (#1142).
Fixes
-----
- USDScene : Fixed collections for USD 20.08 (#1139)
Build
-----
- Fixed GitHub CI for recent branch renaming (#1144).
10.1.6.0 (relative to 10.1.5.0)
========
Improvements
------------
- SceneCache : Improved reporting of errors during file close (#1122).
- AlembicScene : Improved warning messages (#1135).
Fixes
-----
- USDScene : Fixed incompatibility with USD 21.02 (#1134).
- AlembicScene : Fixes crashes caused by attempting to load invalid primitive variables (#1135).
Build
-----
- Update to Arnold 6.2.0.0 (#1133).
10.1.5.0 (relative to 10.1.4.0)
========
Improvements
------------
- IECoreArnold : Added support for the `shutter_curve` parameter of Arnold cameras (#1132).
- Environment : Added `IECORE_RTLD_GLOBAL` environment variable to control the use of `RTLD_GLOBAL`
when importing Python modules and loading Maya and Houdini plugins. Set it to `0` to disable the
use of `RTLD_GLOBAL` (#1127).
Build
-----
- Arnold output driver : Removed link to `libai.so`.
10.1.4.0 (relative to 10.1.3.0)
========
Improvements
------------
- AlembicScene : PointsPrimitive variables with Varying interpolation are now conformed to Vertex interpolation on load.
Build
-----
- Automated upload of builds for new releases.
- Added build artifacts for CI builds.
10.1.3.0 (relative to 10.1.2.0)
========
Features
--------
- IECoreScene : Added camera interpolator (#1107)
- IECoreAlembic : Added support for writing cameras (#1107)
- IECoreArnold : Added support for animated camera projections (#1115)
- IECoreUSD : Apply UsdSkel blendshapes and linear blend skinning when loading (#1109).
- Note we are not exposing UsdSkel via the Cortex API, we're just baking the deformation onto the Cortex Primitive.
Improvements
------------
- MurmurHash : Added accessors for internal values (#1104)
- IECoreMaya::FromMayaParticleConverter : Convert "particleRenderType" Maya attribute to a constant string "type" PrimitiveVariable (#1116)
- Note that only 3 values are supported explicitly:
- Points (3) -> "disk"
- Spheres (4) -> "sphere"
- Sprites (5) -> "patch"
- "disk" is used as a fallback for all other values
Build
-----
- Requires SCons 3.0.2+ (for Substfile to avoid `sed` dependency on Windows (#1105)
- GCC 9 compatibility (#1112)
- Added option to control boost python lib suffix (#1108)
- Fixed `pythonVersion()` when LIBPATH contains variables (#1115)
- GitHub CI : Update to Dependencies 2.1.1 (#1110)
- GitHub CI : Test IECoreArnold, IECoreAppleseed and IECoreVDB (#1117)
- Windows CI (#1105, #1114) :
- Disable permissive mode to make MSVC more standards compliant.
- Fixed IECoreUSD for Windows.
10.1.2.0 (relative to 10.1.1.0)
========
Improvements
------------
- USDScene : Added support for reading and writing USD `kind` as a `usd:kind` string attribute (#1101).
- ParameterParser : Added support for parsing escaped flag arguments into StringVectorParameter. Parsing `\-flag` now yields an argument of `-flag` (#1102).
Fixes
-----
- DataTraits : Fixed attempts to instantiate `V[23][ifd]DataBase` classes when constructing data from an element. The appropriate `V[23][ifd]Data` types are used instead (#1099).
Build
-----
- IECoreUSD : Fixed linking in newer GCC versions (#1100).
10.1.1.0
========
Improvements
------------
- IECoreMaya::FromMayaParticleConverter (#1097) :
- Added support for `nParticle` shapes
- Added PrimitiveVariable name remapping capability. Use <mayaName>=<primvarName> syntax within the existing `ieParticleAttributes` space separated list.
- If `radiusPP=width` is specified, the values will be adjusted (as width is expected to be diameter)
- If `rotationPP=orientation` is specified, the euler angles will be converted to quaternions using the default order
- If `rgbPP=Cs is specified, the GeometricInterpretation will be set to Color, though the data exported is still V3fVectorData
- IECoreUSD
- MeshAlgo : Fixed loading of meshes with left handed orientation (#1093)
- USDScene :
- Warn for collection members not below the collection's prim (#1094)
- Added support for loading USD purpose as an attribute called "usd:purpose" (#1095)
Build
-----
- Updated GitHub Actions envvar/path adjustment mechanism (#1096)
- Support Clang 12 (#1096)
- Support Houdini 18.5 (#1098)
10.1.0.0
========
> **Important** : For many years we've used the semantic versioning scheme as defined at http://semver.org. However, in practice, there are external forces (eg clients: artists, producers) who view the major version as a significant milestone rather than a minor ABI break. As a result we've kept the major version at 10 for nearly 3 years now (since Jun 5, 2017), to indicate that we haven't yet fully locked down compatibility on anything.
>
> At IE we've been using Cortex 10 in production for almost 2 years and have rarely (if ever) been bitten by the occasional ABI breaks that have trickled in over that time.
>
> This commit introduces a "milestone" version scheme equivalent to GafferHQ/gaffer. We're setting the current milestone to 10 and bumping the major version to 1, indicating this is indeed an ABI break within the Cortex 10 landscape.
>
> We will now always increment the major version whenever introducing any backwards-incompatible change. We'll bump the milestone version whenever Cortex reaches significant milestones in terms of functionality.
Features
--------
- Build : Improved version numbering scheme (#1058)
- IECore : Added Version.h which provides #defines for the various version parts, a utility macro for composing a compatibility version, version related methods (partially ported from IECore.h), and python bindings for the new methods (#1058)
- Note partial backwards compatibility is provided by including `Version.h` within `IECore.h`
Breaking Changes
----------------
- IECore : Introduced a `milestone` version and decremented `IECore::majorVersion()`. Any conditional logic using the Cortex version (both compile time and runtime) should be updated to accommodate a compatibility version instead.
- The `IECore::*Version*()` methods have move from `IECore.h` to `Version.h` and are now inlined.
10.0.0-a88
==========
Improvements
------------
- SceneCache : Improved reporting of errors during file close (#1122).
10.0.0-a87
==========
Improvements
------------
- IECoreMaya::FromMayaParticleConverter : Convert "particleRenderType" Maya attribute to a constant string "type" PrimitiveVariable (#1116)
- Note that only 3 values are supported explicitly:
- Points (3) -> "disk"
- Spheres (4) -> "sphere"
- Sprites (5) -> "patch"
- "disk" is used as a fallback for all other values
10.0.0-a86
==========
Improvements
------------
- ParameterParser : Added support for parsing escaped flag arguments into StringVectorParameter. Parsing `\-flag` now yields an argument of `-flag` (#1102).
Fixes
-----
- DataTraits : Fixed attempts to instantiate `V[23][ifd]DataBase` classes when constructing data from an element. The appropriate `V[23][ifd]Data` types are used instead (#1099).
10.0.0-a85
==========
Improvements
------------
- IECoreMaya::FromMayaParticleConverter (#1097) :
- Added support for `nParticle` shapes
- Added PrimitiveVariable name remapping capability. Use <mayaName>=<primvarName> syntax within the existing `ieParticleAttributes` space separated list.
- If `radiusPP=width` is specified, the values will be adjusted (as width is expected to be diameter)
- If `rotationPP=orientation` is specified, the euler angles will be converted to quaternions using the default order
- If `rgbPP=Cs is specified, the GeometricInterpretation will be set to Color, though the data exported is still V3fVectorData
Build
-----
- Updated GitHub Actions envvar/path adjustment mechanism (#1096)
- Support Clang 12 (#1096)
- Support Houdini 18.5 (#1098)
10.0.0-a84
==========
Improvements
------------
- IECore
- InternedString : Added `tbb_hasher()` overload and `IECORE_INTERNEDSTRING_WITH_TBB_HASHER` define (#1089)
- IECoreUSD :
- Support reading cameras (#1082)
- Convert "displayColor" to "Cs" and vice versa (#1085)
- Audotmatically generate `__cameras` and `usd:pointInstancers` sets for Camera and UsdGeomPointInstancer objects respectively (#1089)
- Memory and performance improvements for instanced scenes (#1086)
- Memory and performance improvements for reading/writing tags and sets (#1087, #1089)
- Temporarily removed support for arbitrary attributes (#1089)
- This was only partly functional, and will return with improvements in a subsequent release
Fixes
-----
- IECoreImage
- ImageReader : Fixed crash when writing large non-linear images (#1081, #1083)
- Deprecated `readChannel`
- ColorAlgo : Deprecated `transformChannel`
- DisplayDriverServer : Fixed hang when the service was not terminated properly (#1084)
- IECoreHoudini
- CobIOTranslator : Fixed crash in Houdini 18 wehn using OIIO 2.2+ (#1090)
- Note this required dropping support for ptc/pdc files.
10.0.0-a83
==========
Improvements
------------
- IECoreImage::OpenImageIOAlgo : Added `version()` function for checking OIIO version (#1073).
- IECoreUSD (#1070, #1076, #1079, #1080) :
- Added TypeTraits and DataAlgo to handle reading/writing low level data.
- Added PrimitiveAlgo to handle reading/writing PrimitiveVaraibles for all objects.
- Fixed support for writing indexed PrimitiveVariables.
- Fixed interpolation of "normal" PrimitiveVariables.
- Added ObjectAlgo to handle reading/writing geometry objects.
- USDGeomMesh : Added support for animated corners and creases.
- UsdGeomCurves : Improved support for curve type/wrap/basis.
- UsdGeomSphere : Added support for PrimitiveVariables.
- UsdGeomPointInstancer : Aligned PrimitiveVariable naming with `GafferScene::Instancer`.
- USDScene :
- Added support for "visibility" attributes.
- Added user facing warnings when we fail to write objects.
- Improved logic for which UsdPrims represent children by adding support for untyped prims.
- IECoreMaya::FromMayaPlugConverter : Added support for `usedAsColor` flag on Maya attributes to generate Color3fData
Fixes
-----
- IECore::StringAlgo : Fixed interactions between `matchMultiple()` and '*' (#1074).
- IECoreUSD (#1070, #1076, #1079, #1080) :
- PrimitiveAlgo :
- Fixed writing of indexed PrimitiveVariables.
- Fixed interpolation of "normal" PrimitiveVariables.
- ObjectAlgo :
- Fixed support for time varying geometry.
- UsdGeomPoints : Fixed reading of widths and id PrimitiveVariables.
- UsdGeomCurves : Fixed reading of widths PrimitiveVariables.
- UsdGeomSphere : Fixed time sampling for radius.
- UsdGeomPointInstancer :
- Fixed reading of orientations.
- Account for forwarded prototype targets.
- USDScene :
- Avoided use of "default prim" for storing scene tags (ie. sets/collections).
- Fixed attribute hashing.
Build
-----
- Compatibility for OpenEXR 2.4.1 and OpenImageIO 2.2.x (#1073).
- Compatibility for OpenImageIO 1.5.x by limiting functionality (#1078).
- Allow builds with partial boost installations by limiting functionality (#1078).
- Fixed linking issue with boost_wave, which is only used by IECoreGL (#1078).
- Fixed Windows CI (#1075).
10.0.0-a82
==========
Fixes
-----
- IECoreArnold : Fixed console verbosity during startup with recent Arnold versions (#1071).
- IECoreMaya::FnSceneShape: Fixed expansion of locations containing curves (#1072).
10.0.0-a81
==========
Improvements
------------
- IECoreUSD (#1067, #1068) :
- Automatically convert "uv" <-> "st" on read/write.
- Added TypeTraits and DataAlgo to ease conversion between USD and Cortex types (note both are private currently).
- IECoreMaya::FnSceneShape (#1069) :
- Automatically transfer shader assignment from parent to children during expansion.
- Added "addChildCreatedCallback" to enable further customization during expansion.
Fixes
-----
- IECoreUSD : Fixed geometric interpretation (role) for "P" and "uv"/"st" data on points/curves/meshes (#1068).
Build
-----
- IECoreUSD : Simplify CXXFLAGS and fixed test dependencies (#1068).
10.0.0-a80
==========
Fixes
------------
- IECoreMaya : Updated headers to support maya 2020 (#1066).
10.0.0-a79
==========
Improvements
------------
- IECoreGL::Shader : Support shaders with 3D samplers (#1064)
Fixes
-----
- USD : Fixed errors when writing scenes with invalid names (#1062)
10.0.0-a78
==========
Fixes
-----
- ClassLoader : Fixed deprecation warnings in Python 3.
- ConfigLoader : Fixed invalid escape sequence.
10.0.0-a77
==========
Improvements
------------
- IECoreScene : Removed several legacy PointsPrimitive Ops (#1052).
- IECoreHoudini : Added support for M44d PrimitiveVariable <--> Attrib conversion (#1053).
- IECoreHoudini SceneCache Nodes : Added `TransformPointCloud` geometry mode (#1053).
- This mode provides a point per location, regardless of whether an object/shape
exists at that location. Each point has the following attribs:
- "transform" matrix attribute
- "hasObject" int attribute (1 if the location has an object)
- "pscale" float attribute (the uniform scale from the "transform")
- "scale" vector attribute (the non-uniform scale from the "transform")
- "orient" quat attribute (the rotation from the "transform")
- "rest" vector attribute (the translation from the "transform")
- "restTransform" matrix attribute (if "user:Mref" exists at that location in the file)
Fixes
-----
- ClassLoader : Fixed invalid escape sequence (#1057).
Build
-----
- Added support for Python 3 (#1050, #1051).
- Note several enum bindings now bind "None_" variants to avoid clashing with the keyword.
- Added support for Boost 1.67+ (#1049).
- Added GitHub Actions CI workflow (#1048).
- MacOS : Fixed SIP issues as well as some failing tests (#1048).
10.0.0-a76
==========
Improvements
------------
- IECoreMaya : Improved SceneShape performance in VP2 (#1047).
Fixes
-----
- IECoreScene :
- MeshAlgo : Fixed `reverseWinding()` for primitive variables referencing the same data (#1044).
- CurvesAlgo : Fixed `updateEndpointMultiplicity()` for catmull-rom curves and throw an exception for bezier curves (#1046).
- IECoreGL CurvesPrimitive : Fixed preview of constant or vertex color "Cs" primitive variables (#1046).
- IECoreAlembic :
- Fixed round-tripping of interpretation for secondary UV sets (#1044).
- Improved CurvesPrimitive support (#1044).
- Read "N" and "uv" from the dedicated Alembic properties.
- Write "width", "N" and "uv" to the dedicated Alembic properties, not to `arbGeomParams`.
- IECoreMaya : Fixed bug in FromMayaMeshConverter when UV export is disabled (#1043).
Build
-----
- Provide support for Boost 1.55.0 by excluding `StringAlgo::substitute()` and associated methods (#1042).
10.0.0-a75
==========
Improvements
------------
- InternedString : Added `__len__` python binding (#1041).
- IECoreMaya LiveScene : Added `toMayaAttributeName()`, `fromMayaAttributeName()`, and `visibilityOverrideName` (#1041).
Fixes
-----
- IECoreMaya SceneShape (#1041) :
- Fixed bug which had been causing Maya shape visibility to affect LiveScene location visibility.
- Fixed radial DAG menu positions for the Swap Expand options.
10.0.0-a74
==========
Features
--------
- StringAlgo : Added string substitution functionality (#1039).
Improvements
------------
- InternedString : Added constructor taking a `boost::string_view` (#1039).
- CompoundData : Added default template type for `member()` methods (#1039).
10.0.0-a73
==========
Improvements
------------
- IECoreUSD : Updated USDScene to perform naive loading of USD instances (#1036).
- IECoreHoudini : Houdini 18 compatibility (#1035).
Fixes
-----
- IECoreScene ShaderNetworkAlgo : Adapt `convertOSLComponentConnections()` for OSL 1.10 (#1031).
- IECoreMaya :
- SceneShape VP2 : Fixed marquee selection for component locations (#1038).
- SceneShapeInterface : Fixed bugs in `selectionIndex()` and `glGroup()` and removed `buildComponentIndexMap()` (#1038).
- IECoreNuke SceneCacheReader : Fixed selection issues for Scene View knob when using motion blur (#1037).
10.0.0-a72
==========
Fixes
-----
- IECore::Enum : Fixed comparison of different Enum types (#1032).
We're now closer to matching Python 3 `enum.Enum` behaviour.
- IECoreMaya::ToMayaMeshConverter : Fixed a bug converting indexed normals (#1033).
10.0.0-a71
==========
Improvements
------------
- IECore :
- Refactored `Enum`, `MenuDefinition`, `MenuItemDefinition` to new style Python classes (#1012).
- MenuDefinition : Added `size`, `item` and `update` methods (#1012, #1013).
- Canceller : Added `cancelled` method (#1019).
- IECoreImage : Added OIIO 2 support (#1011).
- IECoreMaya :
- FnSceneShape : Added ability to promote scene attributes so they can be overriden in Maya (#1029).
- Added `UndoFlush` and updated other Context Managers to be used as decorators (#1029).
- IECoreAlembic : Added support for the `width` primitive variable when reading curves and points (#1017).
- IECoreUSD : Added support for the `UsdGeomSphere` primitive (#1023).
Fixes
-----
- IECoreAppleseed :
- Added support for Appleseed 2.1 (#1011).
- Added numerous stability enhancements (#1011).
- IECoreMaya :
- SceneShape VP2 :
- Fixed disappearing geometry in Flat Shaded mode (#1016).
- Fixed partial evaluation of invisible SceneShapes. This is particularly relvant for animation rigs driven by SceneShape output plugs (#1018).
- Fixed internal memory consumption. We now use `IECORE_MAYA_VP2_MEMORY` to track all VP2 related caching (#1018, #1021).
- Fixed several draw errors for expanded shapes, including extra geometry, doubling transformations, and incorrect root bounds (#1024).
- Fixed single component selection for expanded shapes, recently collapsed shapes, and scenes with link locations (ie. instances). Note marquee selection is not yet supported (#1026).
- Fixed crash when switching from VP2 back to VP1 (#1026).
- SceneShape UX :
- Changed radial DAG menu to use `IECoreMaya.Menu` rather than a native Maya menu (#1013).
- Fixed a bug in `FnSceneShape.selectComponentNames()` which broke the radial DAG menu (#1029).
- Fixed a bug that prevented a SceneShape from correctly expanding by tag (#1029).
- Fixed crashes when undoing FnSceneShape operations (#1029).
- LiveScene : Fixed a bug in `hasAttribute()` related to `ieAttr_` attributes (#1029).
- FromMayaEnumPlugConverter : Fixed RunTimeTyped registration (#1030).
- IECoreHoudini :
- Improved error reporting for the SceneCache ROP when exporting mixed curves and free points (#1025).
- Fixed ieMeshInterpolation conversion for mixed poly/subdiv SOPs (#1028).
Breaking Changes
----------------
- IECoreMaya::SceneShapeUI : Changed signature for callbacks registered via `addDagMenuCallback` to take an `IECore.MenuDefinition` rather than a Maya Menu (#1013).
Build
-----
- cmake : General improvements (#1022).
10.0.0-a70
==========
Fixes
-----
- IECoreMaya : Maya 2019 Compatibility (#1007)
- IECoreMaya::FnSceneShape: Fixed shape drawing on expansion (#1010).
Breaking Changes
----------------
- IECoreMaya (#1007):
- Removed several (but not all) VP1 codepaths.
- Removed Box3Manipulator, TransformationMatrixManipulator, & ViewportPostProcessCallback.
Build
-----
- CXX : Added `-D_GLIBCXX_USE_CXX11_ABI=0` when building with GCC 5.1+ (#1014).
- Azure : Fixed Windows CI (#1015).
10.0.0-a69
==========
Fixes
-----
- IECoreScene::PrimitiveAlgoUtils : Fixed GeoemtricData bug in AverageValueFromVector (#1003).
- IECoreMaya::FnSceneShape : Fixed intermediateObject bug with `recursiveExpandAsGeometry()` (#1004).
- IECoreHoudini::FromHoudiniPolygonConverter : Fixed crash with corrupt ieMeshInterpolation attribs (#1006).
Build
-----
- IECoreImage : Workaround env issue when building for certain DCCs (eg Houdini 17.5) (#1005).
10.0.0-a68
==========
Improvements
------------
- `IECoreScene::MeshAlgo` : Added `calculateNormals()` and deprecated `MeshNormalsOp` (#1002).
10.0.0-a67
==========
Fixes
-----
- IECoreMaya SceneShape : Fixed shape evaluation / dirty issue on file load (#1001).
Build
-----
- Run Linux, MacOS, and Windows CI on Azure (#1000).
- Publish MacOS and Linux builds of Cortex via Azure (#1000).
10.0.0-a66
==========
Fixes
-----
- CurvesAlgo : Fixed `updateEndpointMultiplicity()` for bSpline and catmullRom curves (#997).
- IECoreArnold : Automatically resample Vertex primvars to Varying on cubic Curves (#998).
10.0.0-a65
==========
Fixes
-----
- IECoreNuke : Fixed uv coordinate conversion (#999).
10.0.0-a64
==========
Fixes
-----
- IECoreScene : Ensure ShaderNetwork connections are loaded from scc caches (#992).
- IECoreHoudini : Fixed LiveScene PrimGroup to Tag conversion in H17.5 (#993).
10.0.0-a63
==========
Improvements
------------
- IECoreMaya : Added `dagPath()` to `LiveScene` (#991).
Fixes
-----
- IECoreMaya : Fixed bug which enforced a particular rotation order when exporting tranformations (#984).
Build
-----
- SConstruct : Fixed Mac builds (#990).
10.0.0-a62
==========
Improvements
------------
- IECoreMaya : Added "Expand by Tag as Geo..." item to radial menu (#989).
- ToGLStateConverter : Added support for "gl:depthTest" attribute (#985).
Fixes
-----
- Fixed errors when building with the Clang version packaged with XCode 10.2 (#986).
10.0.0-a61
==========
This is the first official release with Windows support. Big thanks to Eric Mehl and Alex Fuller