Skip to content

feat: CUDA/OptiX implementation of TextureSystem #4938

@lgritz

Description

@lgritz

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions