Cortex 10 -- preemptive update

69 views
Skip to first unread message

Andrew Kaufman

unread,
May 31, 2017, 6:08:37 PM5/31/17
to cort...@googlegroups.com
Hey all,

We're about to branch for Cortex 10, so I thought I should give a public heads up before we start bashing away at it.

As usual, a major version update in Cortex comes with all the breaking changes we've been holding off on... that goes for API, ABI, default values, general user expectations, etc. In this case, since we haven't had a new major version for over 2.5 years (wow!), there are quite a few things that we're planning to change.

The first thing to note is that quite a lot has occurred on the “Open Source for VFX” landscape since our last major update. In addition, the way Cortex has been used in production at Image Engine has narrowed in scope substantially over that time period. Cortex Procedurals haven't seen action in our pipeline for a long time – they've been replaced entirely by Gaffer at this point, and that's proven a positive change for quality of work, performance, and user experience. We've also phased out our use of Cortex's image processing in favor of Gaffer's image processing, OpenImageIO, and OpenColorIO.

We see Cortex continuing to slim down over time, focusing on providing the underlying geometric datatypes, IO, DCC / Renderer interoperability, and algorithms for use in Gaffer. In short, we're aiming for Cortex to contain the "behind the scenes" components of Gaffer where Cortex is still the best choice, and deferring to other projects (e.g. OCIO, OIIO, VDB) where they make sense.

We plan to branch for maintenance in the next few days, at which point master will become bleeding edge / non-stable. Here's a brief rundown of our goals for Cortex 10:
  • Remove Color and Image processing
    • OpenColorIO and OpenImageIO have become clear favorites in these areas. No need for Cortex to provide this functionality any longer. We'll likely have a thin wrapper presenting OIIO as an ImageReader, but we'll be dropping a big bulk of code here. What we do keep will be flipping the image orientation, matching Gaffer and Nuke conventions instead of OpenEXR conventions.
  • New Renderer API
    • The redesign has been done already, and is working well in production (see GafferArnold and GafferAppleseed). We've just been waiting for the right moment to break compatibility.
    • Unfortunately this means we'll be dropping RI spec support, and as a consequence, dropping PRMan and 3delight for the time being. We're hopeful that the new API will enable 3delight NSI support in the near future, and maybe even more modern PRMan support eventually.
  • Revamp the LRUCache
    • Again, the redesign is done, and working well, just waiting for the break to merge it.
  • Conform UVs to match modern requirements
    • This includes flipping the orientation to match the majority of DCCs and Renderers, and moving to a combined indexed primitive variable rather than separated s,t variables.
  • Improved Alembic support
    • Ideally we'll get Alembic support on-par with SceneCache, so they can be used fairly interchangeably.
  • Update to modern OpenGL
  • OpenSubdiv wrapper to operate on MeshPrimitives
  • OpenVDB wrapper to add VDB grids to SceneInterfaces

We'll put up a 9_maintenance branch first, and IE is planning to do at least 2 more releases from that branch... likely a few more than that even. If you're using Cortex 9 in production now, and want to stick with it for the long term, that's always possible, and its fine to have any number of Cortex 9 tags/releases that aren't used at Image Engine. We won't be maintaining that branch ourselves once all our productions have transitioned to Cortex 10 (likely end of year), but we're always here to help and advise anyone who wants to take that on. Feel free to email the list (or contact me privately) if you have questions / comments / concerns, or if you'd like to lend a helping hand.

Cheers,
Andrew

Andrew Kaufman

unread,
Jun 5, 2017, 1:36:34 PM6/5/17
to cort...@googlegroups.com
We've branched now, so master is officially in unstable / dev mode for Cortex 10, and 9_maintenance is available for features / fixes to Cortex 9. If you're making PRs, please target the appropriate branch (this may require 2 PRs if you want to target both).

Cheers,
Andrew

--
--
You received this message because you are subscribed to the "cortexdev" group.
To post to this group, send email to cort...@googlegroups.com
To unsubscribe from this group, send email to cortexdev-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cortexdev?hl=en
---
You received this message because you are subscribed to the Google Groups "cortexdev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cortexdev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Andrew Kaufman - R&D Lead
Image Engine
studio: +1 (604) 874-5634 | and...@image-engine.com | www.image-engine.com



15 West 5th Avenue, Vancouver, BC, V5Y 1H4, Canada

If you are not the intended recipient, disclosure, copying, distribution and use of this email is prohibited. Please notify us immediately and delete this email from your systems. You may contact us at in...@image-engine.com if you do not wish to receive further commercial electronic messages. We may still send you messages for which we do not require consent.

Est

unread,
Jun 6, 2017, 12:00:47 PM6/6/17
to cortexdev

We've branched now, so master is officially in unstable / dev mode for Cortex 10, and 9_maintenance is available for features / fixes to Cortex 9. If you're making PRs, please target the appropriate branch (this may require 2 PRs if you want to target both).

Would it be a good time now to remove the old appleseed renderer (only for Cortex 10)?

Est.

John Haddon

unread,
Jun 6, 2017, 12:02:29 PM6/6/17
to cortexdev
On 6 June 2017 at 17:00, Est <rame...@gmail.com> wrote:

Would it be a good time now to remove the old appleseed renderer (only for Cortex 10)?

Yes, I think so. We'll need to keep the new one in Gaffer for a while longer, as I have work to do before moving all the new ones back to Cortex, but I think now is a fine time to delete the old one...
Reply all
Reply to author
Forward
0 new messages