Review: Removed CineonLogToLin Transform
Jeremy Selan <jeremy...@...>
CineonLogToLin was always occupying a sort of transform netherworld.
It's too specific to count as 'general math', but not specific enough to be useful in many practical cases for linearizing film data. This transform was a late addition to OCIO (it did not appear in Sony's in house predecessor), and upon further consideration is not worth keeping. For those interested in doing this conversion in the future, we would recommend using a 1D LUT, or using the log allocation transform. An example of the 1D lut approach is demonstrated in the spi-vfx profile, and an example of the Allocation approach is in the iif profile. Issue: http://github.com/imageworks/OpenColorIO/issues#issue/12 Commits: 11c19f7bf26298dd95bf63a9ba59dc63ebf7a093 -- Jeremy
|
|
Review: AllocationTransform
Jeremy Selan <jeremy...@...>
These add a new transform type, AllocationTransform, which is useful
in mapping HDR color ranges into LDR code spaces. Two options are supported: a uniform allocation, and a log-2 allocation, and the specific math corresponds to the gpu allocation options already used internally. This transform is useful for applying LUTs to HDR imagery (for example in the upcoming IIF profile). Commits: 105dba932d32970d4cbb6d4fee77be99a18334a5 4b50d7b222538f637abd11fb03616e60ee2c73ab Issue: https://github.com/imageworks/OpenColorIO/issues#issue/11 -- Jeremy
|
|
Re: Review: removed TODO
Jeremy Selan <jeremy...@...>
Merging this into trunk, no objections.
-- Jeremy
|
|
Coming soon: Initial IIF support
Jeremy Selan <jeremy...@...>
For those not familiar with the IIF project, the Academy is
sponsoring a project to standardize a single floating-point linear workflow across the motion picture industry: http://www.oscars.org/science-technology/council/projects/iif.html One of the core developer, Alex Forsythe, was kind enough to sit down with me and spec out what an OCIO implementation of the IIF workflow would look like. It was a great learning experience (trying to port a non-sony workflow to OpenColorIO), and we learned a lot about making OCIO easier to use. Expect to see a bunch of improvements in the next few weeks related to LUT generation, allocation, baking, import, export, etc. Also, hopefully in the next week or two we'll also put out a first 'prototype' IIF / ACES OpenColorIO configuration. This will allow anyone with an existing OCIO setup to test the IIF workflow. (which is the whole promise of this project)! (Note that in the near term, the OCIO profile will not execute the CTL (Color transformation language) directly, but instead will rely on a manual port of the existing transformation logic.) -- Jeremy
|
|
Review: removed TODO
Jeremy Selan <jeremy...@...>
I've removed the TODO file internal to the codebase, in favor of the
github issue tracking. (Which is really nice!) Please feel free to add any issues (bugs or features) to this list as you encounter them. Thanks! https://github.com/imageworks/OpenColorIO/issues commit: 8cf3d4a18 -- Jeremy
|
|
Re: Review: API Change to ColorSpace.GPUAllocation
Jeremy Selan <jeremy...@...>
No one has objected, so I'll roll this into the master branch.
toggle quoted messageShow quoted text
-- Jeremy
On Nov 16, 11:43 am, Jeremy Selan <jeremy...@...> wrote:
This updates the API for setting the ColorSpace GPU allocation hint.
|
|
Review: API Change to ColorSpace.GPUAllocation
Jeremy Selan <jeremy...@...>
This updates the API for setting the ColorSpace GPU allocation hint.
(The allocation is used to determine how a particular lattice is best sampled using a fixed domain lut on the GPU). Previously all allocations were configured with 2 fixed arguments (min, max): Prior: Uniform: x mapped from [min, max] to [0,1] Log2 log2(x) mapped from [min, max] to [0,1] Now, allocations can be configured with a variable number of arguments. (The definition of which is allocation specific). This is useful as it allows for (optionally) more sophisticated allocations on the GPU. The first allocation to take advantage of this is "LG2", which adds a linear offset value as the 3rd variable: Log2 log2(x+offset) mapped from [min, max] to [0,1] Using a small, positive offset allows a log allocation to represent the value 0.0 precisely, which is useful in some configurations. This update also names GpuAllocation -> Allocation, as what it represents is not GPU specific. (GPU is the use case, rather than the description of what the data is). Commits: 3f12fca8bf0aff910a4989b855d711ab609b61f9 e780e5d21333aca75de25403dd56852da17a7517 d17a6530982b86b5ef51601aae97a76e1c2da59d -- Jeremy
|
|
OCIO 0.7.1 released
Jeremy Selan <jeremy...@...>
Version 0.7.1 (Nov 15 2010):
* Additional 3d lut formats: Truelight .cub + Iridas .cube * FileTransform supports envvars and search paths * Added Nuke plugins: LogConvert + FileTransform * Improved OCIO profile formatting * GCC visibility used (when available) to hide private symbols * A few bug fixes -- Jeremy
|
|
Re: Review: FileTransform will try all lut formats (if the initial read fails)
Jeremy Selan <jeremy...@...>
In the absence of any objections, I will check this into master.
-- Jeremy
|
|
Review: FileTransform will try all lut formats (if the initial read fails)
Jeremy Selan <jeremy...@...>
FileTransform will attempt to load the specified lut formats, if the
initial read fails. I also had to make some of the 3D lut loaders use stricter parsing as they now get called (in error conditions) and giving false positives. (I.e., an invalid .cube lut was errantly being loaded by the .spi3d / .3dl loaders). commits: b6aef8748d6cd017e2dcf8e8d2baf8e9334eaa6e 91515b537187a8aa04cd389ea5036af65e0feb72 18bbb2734a67e442bb67b64f5f2b902ce578484b -- Jeremy
|
|
Re: Review: Lut1D optimization
Jeremy Selan <jeremy...@...>
That's fair to add it as an option. I'll add it as an official TODO,
toggle quoted messageShow quoted text
and will implement it once we have a few more examples of this type. I'm not sure if this will be a transform specific option, or a configuration level setting. (I could forsee if this comes up often to have an optimization-level hint globally, which other blocks would obey as well). I think if we're going to allow for customized optimization levels, having one big switch that controlled all similar settings would be much simpler to understand. -- Jeremy
On Thu, Nov 11, 2010 at 3:25 PM, Rod Bogart <bog...@...> wrote:
I guess my preference would be to allow someone to ask for
|
|
Review: .3dl loading updates
Jeremy Selan <jeremy...@...>
* Simplified the .3dl loading code
* Full support for .3dl shaper luts. Commits: 76e11f2d894856142c6d96a6d0d317e911880993 f8fe2d5af218154189ab46830afc3d78e31c91ac 0176f8e96c24f06b0a80b8c78539087946e30af5 -- Jeremy
|
|
Review: Simplified .csp lut3d loading
Jeremy Selan <jeremy...@...>
Looking again at 3d lut index ordering, .csp files can be loaded
without any float reordering - none of the prior index mojo is required. This simplifies the code quite a bit, results are identical to prior implementation. Commits: eac3e125f910d7bc641d59c18c59ffd72ff985d4 -- Jeremy
|
|
Re: Review: Config.roles data storage is map
Jeremy Selan <jeremy...@...>
Yup, sending the map directly to the yaml stream works great.
Thanks. -- Jeremy On Thu, Nov 11, 2010 at 4:38 PM, Malcolm Humphreys <malcolmh...@...> wrote: LGTM
|
|
Review: Added support for Iridas .cube luts (1d + 3d)
Jeremy Selan <jeremy...@...>
Added full read support for Iridas .cube luts. Verified results agree
with Nuke for all luts in FrameCycler distro. commits: 1880192d63718dfba54d96d88ff396a0ac85fdee -- Jeremy
|
|
Re: Review: Config.roles data storage is map
Malcolm Humphreys <malcolmh...@...>
LGTM I'm pretty sure yaml-cpp supports std::map serialization does the following work? sorry I can't test this myself. --snip-- // Roles if(m_impl->roles_.size() > 0) { out << YAML::Newline; out << YAML::Key << "roles" << YAML::Value; out << YAML::Value << m_impl->roles_; // std::map -> Map } --snip-- .malcolm
On 10 Nov, 2010,at 11:22 AM, Jeremy Selan <jere...@...> wrote:
|
|
Re: Review: Switched auto_ptr -> ptr
Malcolm Humphreys <malcolmh...@...>
LGTM .malcolm
On 06 Nov, 2010,at 11:24 AM, Jeremy Selan <jere...@...> wrote:
|
|
Re: Review: Inital pass at searchpath impl
Malcolm Humphreys <malcolmh...@...>
On 09 Nov, 2010,at 06:53 AM, Jeremy Selan <jere...@...> wrote:
+1
I was tempted to always have a lut that would match in the searchpath, say a global identity lut. As this is possible to circumvent this way I would fix this later. The identity lut option should be optimized out so it seems like a good option. But some explicit flag saying apply this lut when the file is missing seems like a good way to try first.
+1
What are your thoughts on having a config per clip and for each config to maintain each state. I know this breaks the current concept of the config. Would be nice to re-confirm this is the way we should go. .malcolm
|
|
Re: Review: EnvExpand optimization
Malcolm Humphreys <malcolmh...@...>
LGTM
On 10 Nov, 2010,at 11:20 AM, Jeremy Selan <jere...@...> wrote:
|
|
Re: Review: CSP bugfix
Malcolm Humphreys <malcolmh...@...>
LGTM, sorry I did know about this I was in the middle of doing the spline op for the prelut section and waiting for a better name for GetAutodeskLut3DArrayOffset which we were discussing in one of the threads about the houdini lut reader before fixing this. I'll look into making the houdini reader match when I am back. .malcolm
On 06 Nov, 2010,at 11:33 AM, Jeremy Selan <jere...@...> wrote:
|
|