Skip to content

Commit 71177ff

Browse files
authored
Field3D deprecation part 2: Remove field3d support (#3151)
OIIO 2.3 marked it as deprecated. This new change is for master (2.4+) only -- removing all support for Field3D. F3d is effectively unmaintained, is known to be incompatible with the latest versions of OpenEXR/Imath, and we haven't found anyone prepared to speak up as a user of it via OpenImageIO support.
1 parent 5c89335 commit 71177ff

33 files changed

+12
-1567
lines changed

CHANGES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Release 2.4 (?? 2022?) -- compared to 2.3
22
----------------------------------------------
33
New minimum dependencies and compatibility changes:
4+
* Support for Field3D files have been removed entirely. The Field3D library
5+
appears to be no longer maintained, and is incompatible with modern versions
6+
of OpenEXR/Imath. We believe that all prior uses of Field3D use via OIIOhave
7+
been migrated to OpenVDB.
48

59
New major features and public API changes:
610

INSTALL.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,6 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
7171
may be required by some software distributions with policies against
7272
embedding other projects), then just build with `-DUSE_EXTERNAL_PUGIXML=1`.
7373
Any PugiXML >= 1.8 should be fine (we have tested through 1.11).
74-
* If you want support for Field3D files:
75-
* Field3D (tested through 1.7.3), *and* it must be explicitly enabled
76-
by setting the CMake variable `-DENABLE_FIELD3D=1`.
77-
* Note that Field3D support is deprecated and will be removed entirely
78-
from OpenImageIO 2.4 and later.
7974

8075

8176

@@ -156,7 +151,7 @@ file format (jpeg, fits, png, etc.). This works both as a CMake variable and
156151
also as an environment variable.
157152

158153
`ENABLE_PkgName=0` : Disables use of an *optional* dependency (such as
159-
FFmpeg, Field3D, Webp, etc.) -- even if the dependency is found on the
154+
FFmpeg, OpenVDB, Webp, etc.) -- even if the dependency is found on the
160155
system. This will obviously disable any functionality that requires the
161156
dependency. This works both as a CMake variable and
162157
also as an environment variable.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ help:
378378
@echo " For each dependeny Foo, defining ENABLE_Foo=0 disables it, even"
379379
@echo " if found. And you can hint where to find it with Foo_ROOT=path"
380380
@echo " Note that it is case sensitive! The list of package names is:"
381-
@echo " DCMTK FFmpeg Field3D Freetype GIF JPEGTurbo"
381+
@echo " DCMTK FFmpeg Freetype GIF JPEGTurbo"
382382
@echo " LibRaw OpenColorIO OpenCV OpenGL OpenJpeg OpenVDB"
383383
@echo " PTex R3DSDK TBB TIFF Webp"
384384
@echo " Finding and Using Dependencies:"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ OpenImageIO consists of:
3030
* Plugins implementing I/O for several popular image file formats,
3131
including TIFF, JPEG/JFIF, OpenEXR, PNG, HDR/RGBE, ICO, BMP, Targa,
3232
JPEG-2000, RMan Zfile, FITS, DDS, Softimage PIC, PNM, DPX, Cineon,
33-
IFF, Field3D, OpenVDB, Ptex, Photoshop PSD, Wavefront RLA, SGI, WebP,
33+
IFF, OpenVDB, Ptex, Photoshop PSD, Wavefront RLA, SGI, WebP,
3434
GIF, DICOM, HEIF/HEIC/AVIF, many "RAW" digital camera formats, and a variety
3535
of movie formats (readable as individual frames). More are being developed
3636
all the time.

conanfile.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ tbb/2020.0
1818
# pybind11/2.4.3 - conan doesn't have this minimum version
1919
# dcmtk
2020
# ffmpeg
21-
# field3d
2221
# libheif
2322
# libraw
2423
# openvdb

src/build-scripts/gh-installdeps.bash

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ if [[ "$ASWF_ORG" != "" ]] ; then
1616

1717
sudo yum install -y giflib giflib-devel && true
1818
sudo yum install -y opencv opencv-devel && true
19-
sudo yum install -y Field3D Field3D-devel && true
2019
sudo yum install -y ffmpeg ffmpeg-devel && true
2120
if [[ "${EXTRA_DEP_PACKAGES}" != "" ]] ; then
2221
time sudo yum install -y ${EXTRA_DEP_PACKAGES}

src/build-scripts/install_homebrew_deps.bash

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ brew install --display-times -q tbb || true
3838
# brew install --display-times -q openvdb || true
3939
brew install --display-times -q opencv || true
4040
brew install --display-times -q qt@5
41-
brew install --display-times -q field3d || true
4241

4342
echo ""
4443
echo "After brew installs:"
@@ -58,11 +57,5 @@ export PATH=/usr/local/opt/python/libexec/bin:$PATH ;
5857
export PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH ;
5958
export PATH=/usr/local/opt/llvm/bin:$PATH ;
6059

61-
# If field3d and hdf5 get even slightly out of sync, hdf5 will throw fits.
62-
# This is unnecessary, so we disable the step to make CI more likely to
63-
# pass in cases where they don't exactly match on the CI instances.
64-
export HDF5_DISABLE_VERSION_CHECK=1
65-
66-
6760
# Save the env for use by other stages
6861
src/build-scripts/save-env.bash

src/cmake/externalpackages.cmake

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -176,24 +176,6 @@ checked_find_package (GIF
176176
RECOMMEND_MIN 5.0
177177
RECOMMEND_MIN_REASON "for stability and thread safety")
178178

179-
# Field3D is obsolete and we're considering it deprecated. Allow it but only
180-
# if specifically requested. And disable if using a new OpenEXR/Imath that
181-
# is too new to be supported by Field3D.
182-
option (ENABLE_FIELD3D "Enable support for obsolete Field3D files" OFF)
183-
if (ENABLE_FIELD3D)
184-
checked_find_package (Field3D
185-
DEFINITIONS -DUSE_FIELD3D=1)
186-
if (FIELD3D_FOUND)
187-
if (OPENEXR_VERSION VERSION_LESS 3.0)
188-
message (STATUS "${ColorYellow}WARNING Disabling Field3D because it is not compatible with OpenEXR ${OPENEXR_VERSION}.${ColorReset}")
189-
unset (FIELD3D_FOUND)
190-
add_definitions (-UUSE_FIELD3D)
191-
else ()
192-
message (STATUS "${ColorYellow}WARNING Field3D support is deprecated, and will be removed entirely from OpenImageIO >= 2.4.${ColorReset}")
193-
endif ()
194-
endif ()
195-
endif ()
196-
197179
# For HEIF/HEIC/AVIF formats
198180
checked_find_package (Libheif VERSION_MIN 1.3
199181
RECOMMEND_MIN 1.7

src/cmake/modules/FindField3D.cmake

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/cmake/testing.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,6 @@ macro (oiio_add_all_tests)
237237
oiio_add_tests (dpx
238238
ENABLEVAR ENABLE_DPX
239239
IMAGEDIR oiio-images URL "Recent checkout of oiio-images")
240-
oiio_add_tests (field3d texture-field3d
241-
FOUNDVAR Field3D_FOUND ENABLEVAR ENABLE_FIELD3D)
242240
oiio_add_tests (fits
243241
ENABLEVAR ENABLE_FITS
244242
IMAGEDIR fits-images

src/doc/builtinplugins.rst

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -419,69 +419,6 @@ the `set_ioproxy()` methods.
419419
- Padded bytes at the end of each image
420420

421421

422-
|
423-
424-
.. _sec-bundledplugins-field3d:
425-
426-
Field3D
427-
===============================================
428-
429-
Field3d is an open-source volume data file format. Field3d files commonly
430-
use the extension :file:`.f3d`. The official Field3D site is:
431-
https://github.com/imageworks/Field3D Currently, OpenImageIO only reads
432-
Field3d files, and does not write them.
433-
434-
Fields are comprised of multiple *layers* (which appear to OpenImageIO
435-
as subimages). Each layer/subimage may have a different name, resolution,
436-
and coordinate mapping. Layers may be scalar (1 channel) or vector (3
437-
channel) fields, and the data may be ``half``, `float`, or ``double``.
438-
439-
OpenImageIO always reports Field3D files as tiled. If the Field3d file has
440-
a "block size", the block size will be reported as the tile size. Otherwise,
441-
the tile size will be the size of the entire volume.
442-
443-
.. list-table::
444-
:widths: 30 10 65
445-
:header-rows: 1
446-
447-
* - ImageSpec Attribute
448-
- Type
449-
- Field3d header data or explanation
450-
* - ``ImageDescription``
451-
- string
452-
- unique layer name
453-
* - ``oiio:subimagename``
454-
- string
455-
- unique layer name
456-
* - ``field3d:partition``
457-
- string
458-
- the partition name
459-
* - ``field3d:layer``
460-
- string
461-
- the layer (a.k.a. attribute) name
462-
* - ``field3d:fieldtype``
463-
- string
464-
- field type, one of: ``"dense"``, ``"sparse"``, or ``"MAC"``
465-
* - ``field3d:mapping``
466-
- string
467-
- the coordinate mapping type
468-
* - ``field3d:localtoworld``
469-
- matrix of doubles
470-
- if a matrixMapping, the local-to-world transformation matrix
471-
* - ``worldtolocal``
472-
- matrix
473-
- if a matrixMapping, the world-to-local coordinate mapping
474-
475-
476-
The "unique layer name" is generally the partition name + ``:`` + attribute
477-
name (example: ``"defaultfield:density"``), with the following exceptions:
478-
(1) if the partition and attribute names are identical, just one is used
479-
rather than it being pointlessly concatenated (e.g., ``"density"``, not
480-
``"density:density"``); (2) if there are mutiple partitions + attribute
481-
combinations with identical names in the same file, "*number*" will be added
482-
after the partition name for subsequent layers (e.g., ``"default:density"``,
483-
``"default.2:density"``, ``"default.3:density"``).
484-
485422
|
486423
487424
.. _sec-bundledplugins-fits:

src/doc/oiiointro.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ against dynamic libraries:
255255
* Boost © various authors. http://www.boost.org
256256
* GLEW © 2002-2007 Milan Ikits, et al. http://glew.sourceforge.net
257257
* Ptex © 2009 Disney Enterprises, Inc. http://ptex.us
258-
* Field3D © 2009 Sony Pictures Imageworks. https://github.com/imageworks/Field3D/
259258
* GIFLIB © 1997 Eric S. Raymond (MIT Licensed). http://giflib.sourceforge.net/
260259
* LibRaw © 2008-2013 LibRaw LLC (LGPL, CDDL, and LibRaw licenses). http://www.libraw.org/
261260
* FFmpeg © various authors and distributed under LGPL. https://www.ffmpeg.org

src/field3d.imageio/CMakeLists.txt

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/field3d.imageio/field3d_backdoor.h

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/field3d.imageio/field3d_pvt.h

Lines changed: 0 additions & 81 deletions
This file was deleted.

0 commit comments

Comments
 (0)