-
Notifications
You must be signed in to change notification settings - Fork 650
Description
Most production renderers that use OSL for shading also use OIIO's TextureSystem as their texture engine, and also quite a few non-OSL renderers still use OIIO TextureSystem. But as those renderers add GPU abilities with CUDA and OptiX, they are pretty much on their own when it comes to texture (OSL gives them a customization point where the renderer itself provides texture facilities).
We've talked for some time about OIIO providing a CUDA/OptiX implementation of TS, and it's time to finally get it underway. I think we can get to an MVP in main relatively rapidly, and then continue work to make this a major supported feature.
I would consider the basic design goals to be the following:
- Delivered as part of OIIO somehow, and in a form easily consumable by OSL and other renderers.
- With full feature/quality parity with the existing and future development of the CPU-based OIIO TS (this can happen in stages, with an MVP delivering basic functionality and additions over time getting us to full parity and higher quality).
- With as close as possible an API to existing TS.
- Sharing as much computational code as possible between CPU and GPU implementations.
- Using the OptiX toolkit's on-demand texture loading to provide similar functionality to ImageCache (or maybe as part of, or in conjunction with IC?).
Using this issue to plan, discuss design, track progress, and rally participation from interested parties.