forked from ImageEngine/cortex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
1861 lines (1139 loc) · 79.8 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
# 9.0.0-b7
#### IECore
- Storing the bounding box in .cob headers if the object is a VisibleRenderable.
- TransformOp now takes a copy of the data before altering it.
- GCC 4.8 compatibility.
- Boost 1.55.0 compatibility.
- TBB 4.3 compatibility.
#### IECoreMaya
- Fixed FromMayaCameraConverter to account for non-zero film offsets.
- ToMayaCameraConverter now supports setting the film offset using blindData on the Camera.
- Maya 2016 compatibility.
#### IECoreHoudini
- Fixed issue exporting string attributes when Houdini reports an extra null string in the detail.
- Added support for converting quaternions to and from Houdini.
- Houdini 14 compatibility.
#### IECoreRI
- SLOReader sets geometric interpretation on parameters.
- ParameterList makes use of geometric interpretation when available.
#### IECoreAppleseed
- Fixed appleseed error while binding inputs of object instances.
- Various options changes:
- Set decorrelate_pixels automatically depending on render passes.
- If the rendering_threads option is zero, use all CPU cores for rendering.
- If the as:cfg:pt:max_ray_intensity is zero, disable max intensity clamping.
- Disable max number of bounces for max_path_length options set to zero.
- Check the type of the Data passed to setOption before accessing it.
# 9.0.0-b6
#### IECore
- Fixed thread safety bug in BlindDataHolder::blindData()
# 9.0.0-b5
#### IECore
- Fixed PointsPrimitive::bound() to account the width or aspect ratio of the points.
- Made MurmurHash::append() an inline function
#### IECoreMaya
- SceneShapeUI::select now returns false when polygons aren't being displayed in the viewport.
#### IECoreHoudini
- SceneCacheNodes have a new "Full Path Name" parm which creates an attrib for the full path for each shape (default is off).
#### IECoreGL
- Fixed radius of spheres rendered by IECoreGL::PointsPrimitive.
#### IECoreAppleseed
- Camera, transformation, deformation motion blur support.
- Lights can now be turned on and off.
- Interactive rendering support.
- Added support for the photon target attribute.
- Added support for orthographic cameras.
- Added an appleseed log handler that uses MessageHandler to log messages.
# 9.0.0-b4
#### IECore
- Added IECore::ClippingPlane object
- Set __file__ when loading configs
- Emitting a debug message for each config file loaded
#### IECoreMaya
- Added a mutex inside IECoreMaya::LiveScene::hasAttribute()
#### IECoreGL
- Wireframe shading uses Cs instead of vertexCs
#### IECoreRI
- Several IECoreRI::shader() optimizations
- Added clipping plane support to IECoreRI::Renderer
#### IECoreAppleseed
- Refactored IECore primitive to appleseed entities conversions code.
- Simplified IECoreAppleseed::RendererImplementation.
- Use appleseed object alpha maps instead of material alpha maps.
- Fixed a bug when trying to render a scene without cameras.
- Use the names set with setAttribute to name the appleseed entities in generated appleseed scene files.
- Highlight regions being rendered in the interactive display driver. Useful when doing multipass rendering.
- Small refactors in the display driver code.
- Removed some unused headers and other formatting changes.
- Camera and transformation motion blur support
- Added as:automatic_instancing option to enable / disable auto-instancing.
- Better error handling for as:mesh_file_format option
- Better error handling for searchpath option. Added automatic_instancing option
- Support for appleseed 1.1.2
- Fixed bug when connecting members of stuct parameters in OSL shaders.
- Added photon target attribute for objects
- PrimitiveConverter interface changes. Changed the way hashes are computed in IECoreAppleseed.
- Fixed assembly instance names when generating appleseed projects.
# 9.0.0-b3
#### IECore
* Added implicit conversion from python datetime to DateTimeData.
* Linked scenes no longer return duplicate tags
#### IECoreMaya
* Only allow selection using the bounding box if the box is visible
* Latest registered custom attribute reader now takes precedence in IECoreMaya.LiveScene
* On transform nodes, plugs with names prefixed by "ieAttr_" are now translated into "user:" attributes by the IECoreMaya.LiveScene
* String attributes called "ieTags" on transform nodes now interpreted as a space separated list of tags
#### IECoreHoudini
* Latest registered custom attribute reader now takes precedence in IECoreHoudini.LiveScene
#### IECoreRI
* added IECoreRI support for DoubleData, V3dData and Color3dData attributes
# 9.0.0-b2
#### IECore
- Removed SimpleSubsurface
- Removed Marschner code
- Removed HitMissTransform
- Removed TypeInfoCmp
- Removed UniformRandomPointDistributionOp
- Removed MappedRandomPointDistributionOp
- Removed AttributeCache
- Removed InterpolatedCache
- Removed spherical harmonics code
- Removed FileExampiners
- Improved MurmurHash performance
#### IECoreGL
- Added mip mapping to ColorTexture.
#### IECoreAppleseed
- Added visibility attributes support.
- Fixed bug converting OSL int shader parameters.
#### Build
- Windows build fixes.
- Updated default build arguments to work with standard packages on Ubuntu 12.04.
- Configured Travis automated testing.
# 9.0.0-b1
#### IECore
- Fixed GILReleasePtr crash.
- Adding the export macros for proper exporting of symbols.
#### IECoreMaya
- Fixed ieSceneShape component selection bug.
- Fixed crash when expanding ieSceneShapes containing coordinate systems.
#### IECoreGL
- Added ToGLSphereConverter.
- Adding the export macros for proper exporting of symbols.
#### IECoreRI
- Adding the export macros for proper exporting of symbols.
#### IECoreArnold
- Adding the export macros for proper exporting of symbols.
#### IECoreAppleseed
- Added initial support for Appleseed.
- Added crop window support.
- Fixed OSX compilation and linking issues.
#### IECoreAlembic
- Adding the export macros for proper exporting of symbols.
# 9.0.0-a11
#### IECore
- Optimised Object::memoryUsage()
#### IECoreGL
- Added support for setting array uniforms in shader parameters
#### IECoreAppleseed
- Added initial support for Appleseed
# 9.0.0-a10
#### IECore
- Fixed GIL bug in python Object creation
- Added implementation of tbb_hasher for boost::intrusive_ptr
#### IECoreGL
- Added State::ScopedBinding overload, allowing a binding to be ignored
- Changed IECoreGL::HitRecord::name field from InternedString to GLuint
- Added IECoreGL::Selector::loadName() overload to auto-generates names
- Removed TextureUnits.h
- Added python bindings for CurvesPrimitive
- Added python bindings for smoothing state components
- Added ToGLStateConverter for converting attributes to State objects
- Fixed crash in ShaderStateComponent::addParametersToShaderSetup()
#### Incompatibilities
- Changed IECoreGL::HitRecord members
- Removed IECoreGL/TextureUnits.h
#### Build
- Fixed compilation for GCC 4.2 on OS X
# 9.0.0-a9
#### IECore
- TIFFImageReader now checks if the tif is tagged as coming from tdlmake, and if so, sets the sourceColorSpace from the image description set by tdlmake.
#### IECoreGL
- Switched glsl diffuse and specular functions to match 3delight's properly normalized BRDFS
#### IECoreMaya
- Fixed coordinate system->maya locator converter crash for coordinate system with no transform
- Fixed crash in SceneShape::hasSceneShapeObject for invalid scene
#### IECoreRI
- Automatic instancing now defaults to on
# 9.0.0-a8
#### IECoreMaya
- Stopped IECoreMaya::LiveScene::readObject() returning null pointers.
- Stopped IECoreMaya::LiveScene::readAttribute() returning null pointers.
#### IECoreRI
- Fixed precision issue with computing the projection matrix for dsm depth remapping, which was causing deep holdout problems.
- Fixed bug when editing cameras when dealing with multiple cameras.
# 9.0.0-a7
#### IECore
- Reduced overhead of calling memoryUsage() on SimpleTypedData.
- Added pixelAspectRatio to list of standard camera parameters.
- Added InternedString( const char *, size_t length ) constructor.
#### IECoreRI
- Added pixel aspect ratio support to IECoreRI::Renderer.
- Fixed argument passing for RiProcDynamicLoad.
#### IECoreArnold
- Added pixel aspect ratio support to IECoreArnold::Renderer.
#### IECoreHoudini
- ToHoudiniGeometryConverter marks Pref and rest as non-transforming
- Preventing SceneCache Source from transforming rest/Pref
# 9.0.0-a6
#### IECore
- Multithreaded PointSmoothSkinningOp
- Added ExternalProcedural object type
- Added HasBaseType type trait
- Added boost::hash compatibility for MurmurHash
#### IECoreRI
- Added support for DynamicLoad and DelayedReadArchive procedurals
#### IECoreArnold
- Added support for delayed load DSO and .ass procedurals
# 9.0.0-a5
#### IECore
- LinkedScene::hash now takes extra children at links into account
#### IECoreRI
- Added support for RiFrame blocks in IECoreRI::Renderer.
#### IECoreMaya
- Renamed IECoreMaya::MayaScene to IECoreMaya::LiveScene
#### IECoreHoudini
- Renamed IECoreHoudini::HoudiniScene to IECoreHoudini::LiveScene
# 9.0.0-a4
#### IECore
- Bug fix in StreamIndexedIO that was causing sporadic crashes when loading SceneCaches during procedural expansion.
- Fixed some minor bounding box bugs in IECore.SceneCache
- Child bounds can now dilate bounds explicitly specified using IECore.SceneCache.writeBound()
- IECore.LinkedScene now supports extra children at link locations
- Fixed TransformOp double transform bug
# 9.0.0-a3
#### IECore
- Added SceneInterface::hash() method.
- Improved ConfigLoader.
- Now executes files within the same directory in alphabetical order.
- Added subdirectory argument.
- Env var accepted in place of search path.
# 9.0.0-a2
#### IECore
- Made RefCounted bindings release the GIL during C++ destruction.
- Changed RefCounted base class binding to use GILReleasePtr too.
- Replaced IECore::IntrusivePtr with boost::intrusive_ptr.
- Removed staticPointerCast, constPointerCast and dynamicPointerCast.
- Fixed crash in MeshMergeOp.
- Fixed mutex acquisition in LRUCache::updateListPosition().
- PointSmoothSkinningOp handles faceVarying normals and added refIndices parameter
- Changed DespatchedTypedData DataPtr & argument to Data *
- Fixed LRUCache hangs.
- Simplified RefCounted bindings.
- Fixed LRUCache crashes where clear() was called concurrently with get().
#### IECorePython
- Added IECorePython::CastToIntrusivePtr.
#### IECoreMaya
- MayaScene bindings now catch boost python exceptions
#### IECoreGL
- Removed deprecated IECoreGL::Selector::loadIDShader() method.
- Added IECoreGL::Selector::postProjectionMatrix() method.
#### IECoreRI
- Added support for camera edits to IECoreRI::Renderer.
- Added support for motion blurred cameras to IECoreRI::Renderer.
- Added support for multiple cameras to IECoreRI::Renderer.
- Removed "transform" parameter from IECoreRI::Renderer::camera().
- Removed support for hider parameters in IECoreRI::Renderer::camera(). …
- IECoreRI now built for all python versions
- added M44dData attribute support to IECoreRI::Renderer
#### IECoreAlembic
- Added support for the Ogawa backend into IECoreAlembic.
# 9.0.0-a1
#### IECore
- Added from-python conversion of RunTimeTypedClass to IECore::TypeId
- Removed implicit surface functionality
- Removed BGEO and BIN readers/writers.
- Removed IFFHairReader.
- Fixed EXRImageReader canRead to accept scanline images.
- Improved speed of InternedString( int64_t ).
- Tidied up LRUCache
#### IECoreMaya
- Fixed MayaScene for reading scene:visible and custom attributes at the root
# 8.5.0
#### IECore
- Added python binding for RefCounted::refCount()
- Fixed default ObjectPool for larger sizes
#### IECoreRI
- Changed SHWDeepImageReader to convert depth to standard Z (distance from eye plane), instead of spherical distance from the near clip.
- Changed SHWDeepImageWriter to convert back to spherical distance from the near clip, assuming the incoming DeepPixels represent distance from eye plane.
#### IECoreHoudini
- Fixed bug in SceneCache ROP when re-rooting flattened geo with errors
# 8.4.7
#### IECore
- IECore.ls supports ambiguous padding when the sequence is not a regular frame range.
- IECore::frameListFromList correctly handles reverse order lists.
# 8.4.6
#### IECore
- Removed unnecessary overhead from Object::copy().
#### IECoreHoudini
- Fixing crash in SceneCache ROP todo with "scene:visible" attribute.
# 8.4.5
#### IECore
- Fixing seg fault when attempting to read a non-existant attribute several times.
- Minor fixes for issues highlighted by Coverity.
#### IECoreRI
- Added support for string array options in SXRenderer.
#### IECoreMaya
- MayaScene now outputs the "scene:visible" attribute based on Maya visibility.
- SceneShapeInterface::componentNames() and selectionName() now work even if the Maya viewport hasn't refreshed.
#### IECoreNuke
- Added support in DeepImageReader for ZBack channels.
# 8.4.4
#### IECore
- Fixed StringData repr() to support newlines and quotes.
# 8.4.3
#### IECore
- Improved precision of Imath Vec and Color repr() and str().
- Using mutex on all access to the internal directory nodes in StreamIndexedIO.
- SceneCache attribute read is now thread-safe.
#### IECoreMaya
- Working around a bug in Maya for meshes with 6 or more UV sets.
- Fixed precision issue in failing test case.
#### IECoreHoudini
- Improved Exception handling in Houdini SceneCache nodes.
- Improved UI for Expand/Collapse buttons.
- Fixed bug in CortexConverter SOP todo with multiple CortexObject primitives with the same name.
#### IECoreNuke
- Fixed a bug in the SceneCacheReader that was preventing animated scene caches from displaying properly.
# 8.4.2
#### IECoreNuke
- Redesigning SceneCacheReader and fixing it for several known bugs (bug in 8.4.1, flickering, selection reset after file change, no TCL expressions)
# 8.4.1
#### IECore
- Compilation patches for Ubuntu 13 and Mint 16
#### IECoreMaya
- Fixed ToMayaCurveConverter for cubic non periodic curves (it was previously not possible to roundtrip such a curve using the To/From converters).
#### IECoreHoudini
- Fixed SceneCache ROP crash when a name attr existed, but the name was blank.
#### IECoreNuke
- Fixed a bug with SceneCacheReader where it wouldn't update correctly when wrapped by a python node.
- Fixed a bug with SceneCacheReader that was causing flickering artifacts when using animated geo.
- Fixed a bug with SceneCacheReader for infinite instantiation of Ops due to knob changes during the validate method.
# 8.4.0
#### IECore
- Fixed a bug where the EXRImageReader would interpret Deep EXRs as valid.
- Added IECore::EXRDeepImageReader (only when building with OpenEXR 2)
- Added IECore::EXRDeepImageWriter (only when building with OpenEXR 2)
#### IECoreRI
- Added support for coordinate systems and a world transform in SXRenderer
#### IECoreHoudini
- Fixed crash when merging CortexPrimitives in Houdini 13.
#### IECoreNuke
- Fixed a bug with IECoreNuke::SceneCacheReader that was causing hanging and crashing.
- Fixed linking of IECoreNuke for Nuke 8.
# 8.3.0
#### IECore
- Refactored StandardRadialLensModel to match 3dequalizer
#### IECoreRI
- Added support for user options in SXRenderer
- Added support for multiple repeated shading grids in SXRenderer
- Removed conflicting parameter type warning for coshaders
# 8.2.0
#### IECore
- Fixed potential platform independence problem when writing unsigned ints in StreamIndexedIO.
- Optimised StreamIndexedIO memory usage. Reductions range between 20% and 70% for a selection of production assets.
- Fixed an off-by-one error in DeepImageConverter.
#### IECorePython
- Introduced an improved wrapping mechanism with reduced overhead for non-subclassed instances. Deprecated existing wrapping mechanism.
- Added RefCounted equality, inequality and __hash__ bindings based on the address of the underlying C++ object. Previously these methods were implemented with respect to the address of the python object, but several python objects could refer to the same C++ object.
#### IECoreHoudini
- Fixed problems initialising defaultObjectPoolCache during plugin load.
- Fixed bug in HoudiniScene with flat geo but no / prefix.
#### IECoreMaya
- Switching to component mode on scene shapes now behaves the same as procedural holders.
- The create locator functions in FnSceneShape now return the locators they created.
#### Build
- Fixed compilation errors on Linux Mint 16.
# 8.1.0
#### IECore
- Fixed cropping bug in CameraController::setResolution
- Fixed bug with SceneCache animated object topology.
#### IECoreMaya
- Added create locator functionality to SceneShapes
- Moved create locator methods from ProceduralHolderUI to FnProceduralHolder
- SceneShapes support queries to double attributes
# 8.0.0
#### IECore
- Added screen window modes to CameraController::setResolution.
- Fixed multiplication issue in MatrixInterpolator
#### IECoreMaya
- SceneShape GL Preview responds to the "scene:visible" attribute
#### IECoreHoudini
- SceneCache ROP marks visiblity using "scene:visible" rather than "visible"
- Preventing crashes in HoudiniScene when OBJ networks contain non-OBJ nodes
# 8.0.0-b9
#### IECore
- Fixed boost::format() exception in CompoundData::member()
#### IECoreGL
- Fixed "gl:primitive:selectable" attribute (#46)
- Fixed ID selection in wireframe, outline, and points styles (gaffer/#53, gaffer/#160)
#### IECoreMaya
- Setting gl:curvesPrimitive:useGLLines for SceneShape drawing
- Minor bug fixes to SceneShapeUI for tag menu and expandToSelected
- Fixed crash when reading MayaScene attributes that don't exist on the SceneShape
- Fixed stale window bug in SplineParameterUI
#### IECoreHoudini
- SceneCache ROP marks locations which appear and disappear over time
- Added standard ROP script parms (pre/post render and frame)
#### IECoreNuke
- Changed SceneCacheReader to only display MeshPrimitives
# 8.0.0-b8
#### IECore
- Clang compatibility
#### IECoreGL
- Clang compatibility
# 8.0.0-b7
#### IECore
- Added TransferSmoothSkinningWeightsOp
- Added GIL release for DisplayDriver imageData and imageClose binding
#### IECoreMaya
- Added ToMayaCurveConverter
#### IECoreHoudini
- Houdini 13 Compatibility (requires H13.0.267 to pass tests)
- Fixed HoudiniScene custom attribute bug when two callbacks define the same attribute
- Fixed exception when reading HoudiniScene custom attributes that didn't exist in the underlying scene
- Using handles instead of strings when validating the DetailSplitter
# 8.0.0-b6
#### IECore
- LinkedScene( SceneInterfacePtr ) supports writable scenes
- Fixed SceneCache from IndexedIO bug
- Fixed linking issues with IECore::CamelCase
#### IECoreHoudini
- SceneCache SOP transforms all Point, Normal, and Vector primitive variables (previously it only transformed P and N)
- Preventing double cooking in HoudiniScene::scene( path )
# 8.0.0-b5
#### IECore
- Improved error reporting in LinkedScene - the main filename is now available in error messages.
- Made RunTimeTyped baseTypeIds() and derivedTypeIds() methods thread safe.
#### IECoreGL
- Added IECoreGL::Selector::push/popIDShader() methods. These replace the now deprecated loadIDShader() method.
- Fixed crashes when selecting curves.
#### IECoreHoudini
- Added SceneCache Transform SOP. This node applies transformations from a SceneCache file directly on the points and primitives at the SOP level.
- FromHoudiniPolygon converter now automatically removes normal primvars when extracting a subdivision mesh.
#### IECoreNuke
- Added DeepImageReader - this allows any deep image type supported by Cortex to be read in Nuke.
# 8.0.0-b4
#### IECore
- Optimised polygonNormal and polygonWinding in PolygonAlgo.h.
- Added face normals mode to MeshNormalsOp.
#### IECoreGL
- Fixed shading of polygon meshes with no "N" primitive variable (#118).
#### IECoreArnold
- Added support for Arnold parameters of type AI_TYPE_BYTE.
- Added compatibility with Arnold 4.1.
- Fixed hangs in procedurals.
# 8.0.0-b3
#### IECore
- Fixed compile issue on Ubuntu
#### IECoreHoudini
- Improving performance of SceneCache SOP. This brings the animated performance back inline with 8.0.0-b1, while maintaining (if not improving) the on-load performance from 8.0.0-b2.
- Guaranteed SceneCache SOP shape/point order by sorting children by name before loading.
- Preventing crash in SceneCache ROP when cooking inside an invisible OBJ subnet.
# 8.0.0-b2
#### IECore
- WarpOp has a new BoundMode parameter, options are Clamp (previous behaviour) or SetToBlack.
- ImageDiffOp has a new option to offset display windows of the same size to be aligned before comparison.
- Added support to the LensDistortOp for images with offset display window.
- Fixed LensDistortOp bug with non-symmetric distortions.
#### IECoreHoudini
- Added BoundingBox and PointCloud GeometryType options to SceneCache nodes
- Added AttributeCopy parm to SceneCache SOP. This is used to duplicate attributes before loading to Houdini.
- Exposed SceneCache OBJ parameters to override the transform values coming from disk (Transform tab)
- Moved SceneCache OBJ Push button along with all geometry loading parms to the new Options tab
- Improved performance of SceneCache SOP (Up to 5x faster on a 1500 shapes, 3 million polys asset)
# 8.0.0-b1
#### IECore
- SceneInterface tags now support upstream/local/downstream tags (using a bit mask filter to query)
- Various fixes for OSX builds
### IECoreHoudini
- Fixed multiple transform bug in HoudiniScene
# 8.0.0-a23
#### IECore
- Added new logos!
#### IECoreGL
- Added IECoreGL::glslVersion() function and python binding
- Added IECoreGL::FrameBuffer::frameBuffer() method
- OpenGL 2.1 compatibility fixes
#### IECoreHoudini
- Added bindings for SceneCacheNode which give access to the SceneInterface directly (or None if invalid)
- HoudiniScene provides python access to registering custom attribute and tag readers
- HoudiniScene now provides access to the world space transformation matrix of the held OBJ node
- Fixing crashes in HoudiniScene when pointing to broken SOPs
- Fixing crashes in SceneCacheWriter when given null attribute data
- Replaced some (but not all) of the misc cow logos with the new Cortex mini-logo
# 8.0.0-a22
#### IECoreHoudini
- ParameterisedHolder SOPs have a nameFilter parm (w/ disable toggle)
- These are used to pre-filter each input geometry (or not if toggled off)
- ProceduralHolder outputs a single CortexObject holding its procedural
- OpHolder operates several times per cook, once for each named input shape
- Shapes matching the filter are operated on, and returned as CortexObjects, maintaining their name
- Shapes not matching are passed through unchanged, whether they were normal geo or CortexObjects
- It can be forced to operate only once by disabling the nameFilter or by passing a single named shape
- CortexConverter SOP now operates in both directions (converting between CortexObjects and native geo)
- It also has a nameFilter, with similar pass-through behaviour as the OpHolder
- Changed interface for HoudiniScene custom attribute callbacks
- SceneCache OBJs pass attributes through to HoudiniScene (and therefor SceneCache ROP)
- Added IECoreHoudini.makeMainGLContextCurrent() which is needed for sharing the GL Context with other applications (like Gaffer)
- Fixed bug in HoudiniScene which was creating phony children when FlatGeometry names were similar, but not exact
- Fixed bug in SceneCache SOP when loading Groups or CoordinateSystems without a transform
- Preventing segmentation faults when reading a corrupt SceneCache file
#### IECoreGL
- Fixed GLSL shaders to work with GLSL version 120 (OpenGL 2.1)
# 8.0.0-a21
#### IECoreMaya
- Changing base class for DrawableHolder (from MPxLocatorNode to MPxSurfaceShape ) to solve a selection bug.
Warning: This breaks binary compatibility with any DrawableHolder derived class.
# 8.0.0-a20
#### IECore
- Fixed IECore::Lookup for OS X.
- Fixed SceneCache build problem on OS X.
- Fixed unit test in LinkedSceneTest.py ( testLinkBoundTransformMismatch )
#### IECoreGL
- Fixed IECoreGL::PointsPrimitive crash on OS X.
- Removed IECoreGL/Lights.h.
- Removed IECoreGL/GLUT.h
#### IECoreHoudini
- SceneCache OBJ Parameter Reorganization (will cause warnings in existing scenes. these can be ignored)
- Added functions to HoudiniScene: node() and embedded()
- Added click Selection of GR_CortexPrimitives
#### IECoreMaya
- Added FnSceneShape createChild, extracted from expandOnce.
- Changed interface for MayaScene custom attribute callbacks and added bindings for Python.
#### IECoreNuke
- Fixed bug #4837: "Knobs not found" warning messages.
- Fixed artefacts in LensDistort
# 8.0.0-a19
#### IECore
- Removed incorrect assertions from StreamIndexedIO - they were causing crashes in debug builds.
- ComputationCache is more robust in situations where a call to get() yields a different object than was passed to set().
#### IECoreHoudini
- GEO_CortexPrimitives are now correctly copied and transformed during ObjectMerges.
- TagFilter now prevents unnecessary expansion of SceneCache nodes. In SubNetwork/AllDescendants mode, the tagFilter is used to prevent expansion into branches of the hierarchy that were not requested. For a heavy asset, filtering by a "Proxy" tag was expanding in 25 seconds and creating 22000 nodes. It is now expanding in 3 seconds and creating 3000 nodes.
- SceneCache Xform and Geo nodes now have a tagFilter, and pass it through to matching children during expansion and push. Xfrom still uses it to limit expansion and control visibility. Geo just passes it on to the SOP, which uses it to limit objects loaded.
- Promoted shapeFilter to all SceneCache nodes. SceneCache Xform and Geo just pass it through to the SOP, as with the attributeFilter.
- Added support for reading and writing tags in SceneCaches.
- Optimised SceneCache OBJ expansion time. On a heavy asset, this reduces expansion time from 442.3s (7.38m) to 17.12s.
- Fixed time offset issues caused by Houdini time 0 being at frame 1, whereas it is at frame 0 in Maya, and in SceneInterfaces.
#### IECoreMaya
- Added a flag to the FnSceneShape create so we can directly create a new sceneShape and transform under a given parent. Used when expanding.
#### IECoreNuke
- Fixed a bug in LensDistort that was causing the cache to hold incorrect image data.
#### IECoreGL
- Added ShaderLoader::clear() method, which allows the reloading of GLSL shaders on the fly.
- Added "gl:primitive:selectable" attribute to Renderer.
#### IECoreRI
- Fixed automatic instancing bug caused by having multiple procedurals in the same RIB file.
- Added workaround for 3delight 11.0 in IECoreRI::Renderer::worldEnd - this allows rerendering to work again.
####################################################################################################
# 8.0.0-a18 :
#### IECore
- Fixed sample time ordering bug in SceneCache.
- Fixed transform matrix order in Group.globalTransformMatrix().
- Added a new setTopologyUnchecked method to MeshPrimitive, plus lazy computation of min/maxVerticesPerFace.
#### IECoreGL
- Fixed bugs in interpretation of "color" attribute in IECoreGL.
#### IECoreMaya
- Fixed a segfault which occured when selecting multiple components of a sceneShape in Maya.
- Fixed maya procedural selection highlighting.
#### IECoreHoudini
- Optimised SceneCache caching time significantly.
- Simplified FromHoudiniGeometryConverter factory functions.
- Added name parameter to ToHoudiniGeometryConverter.
- FromHoudiniGeometryConverters no longer add the name blindData.
- Added nameFilter to FromHoudiniGeometryConverter python factory function.
- HoudiniGeometryConverters now use Objects rather than VisibleRenderables.
- Added FromHoudiniCortexObjectConverter for converting single GU_CortexPrimitives.
- Added ToHoudiniCortexObjectConverter for creating GU_CortexPrimitives.
- Fixed ToHoudiniGeometryConverter bug where it didn't call incrementMetaCacheCount().
- Added FromHoudiniCompoundObjectConverter. This converts multiple GU_CortexPrimitives, maintaining the naming by storing each one in a CompoundObject.
- Added ToHoudiniCompoundObjectConverter.
- Added non-const access to the object in a Geo_CortexPrimitive.
- Removed unecessary Object copy in SceneCache SOP.
- Removed HoudiniScene::readObject hack for CortexObject prims.
- Updated cob/pdv IO to allow conversion of general Objects and not just VisibleRenderables.
- Fixed ToHoudiniGeometryConverter factory function search order.
- Fixed bug when caching hidden OBJs.
- Added interruptibility to SceneCache ROP.
- Added DetailSplitter class for efficiently extracting select bits of geometry from a GU_Detail.
- Reenabled the loading of multiple ieCoreHoudini plugins.
#### IECoreRI
- Added "ri:textureCoordinates" attribute to IECoreRI::Renderer. This maps to a call to RiTextureCoordinates.
- Fixed specification of multiple displays via IECoreRI::Renderer::display().
- Added automatic instancing capabilities to IECoreRI::Renderer.
#### IECoreNuke
- Added support for expressions in LensDistort.
#### IECoreAlembic
- Fixed IECoreAlembic to use GeometricTypedData appropriately (#28).
8.0.0-a17 :
IECoreRI
- Added support for ri:areaLight parameter to IECoreRI
IECoreHoudini
- Fixed bug when loading CoordinateSystems in Houdini
8.0.0-a16 :
IECoreMaya
- Fixed bug in SceneShape compute which prevented drawing on file open/import
IECoreHoudini
- Added ForceObjects parameter to SceneCache ROP (to force what is expanded and what is a link)
- Added a ParticleSystem when converting PointsPrimitives to Houdini
- Fixed point doulbing bug with SceneCache SOP loading a PointsPrimitive
- Fixed bug when writing multiple frames of re-rooted scenes
- Fixed HoudiniScene bugs for flattened geometry (SOPs with gaps in the geo hierarchy can now be cached)
- SceneCache tagFilter supports SceneInterfaces with no tags
8.0.0-a15 :
IECore
- Added Parameter::setPresets and getPresets.
- Improved precision of CameraController operations
- Default ParticleReader uses floats (#69)
- Fixed MurmurHash bug where empty strings had no effect on a hash
IECoreGL
- Added Shader::csParameter() for constant time access to "Cs"
- Fixed bug with superimposed instances
- Fixed potential bug in Selector::loadIDShader()
- Fixed state leak for immediate renders
- Fixed PointsPrimitive selection and coloring
- Implemented per-vertex Cs for PointsPrimitive.
IECoreMaya
- Fixed erroneous compute on SceneShape outputObjects
- Fixed tests for Maya 2014
IECoreHoudini
- Added a Cache Manager for the Cortex ObjectPool (#40)
- SceneCache ROP allows caching of un-named top level geo (uses the OBJ node name instead)
- Fixed time dependency issues with SceneCache SOP and OBJs
- OBJ SceneCache nodes expose their transform via python expressions (see the Output tab)
- Expanding and SOP cooking are now interrupt-able using the escape key
- Improvements for expanding SceneCaches in Houdini
- Expanded nodes are now connected to the subnet indirect inputs
- Expanded nodes are placed using Houdini's layout automation
- File parms channel reference their parent
- Path parms channel reference their parent (when appropriate)
- New Push Parms button updates the filters and geometry type throughout the expanded hierarchy (no need to collapse). Note that this does not take hierarchy changes into account, just parameter values.
- FromHoudiniGroupConverter ignores internal groups
- Fixed compatibility issues with Houdini 12.1 (introduced in a14)
- Declared TypeId range
IECoreNuke
- Added support for TCL expressions on SceneCacheReader
- Fixed a few bugs with SceneCacheReader
IECoreArnold
- Fixed TypeId range so it doesn't conflict with IECoreHoudini
IECoreMantra
- Houdini 12.5 compatibility
8.0.0-a14 :
- IECore :
- Modified BasicPreset so it works with parameters derived from CompoundParameter
- Added ObjectPool and ComputationCache classes for providing a unified cache mechanism for cortex objects (used in SceneCache and CachedReader).
- Removed ModelCache class (SceneInterface and SceneCache replaces that entirely).