neuray API Programmer's Manual

imdl_backend_api.h File Reference

Description

API component for MDL backend related operations.

Code Example

imdl_backend_api.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_IMDL_BACKEND_API_H
#define MI_NEURAYLIB_IMDL_BACKEND_API_H

#include <mi/base/interface_declare.h>

namespace mi {

namespace neuraylib {

class IMdl_backend;


enum Df_data_kind {
    DFK_NONE,
    DFK_INVALID,
    DFK_SIMPLE_GLOSSY_MULTISCATTER,
    DFK_BACKSCATTERING_GLOSSY_MULTISCATTER,
    DFK_BECKMANN_SMITH_MULTISCATTER,
    DFK_BECKMANN_VC_MULTISCATTER,
    DFK_GGX_SMITH_MULTISCATTER,
    DFK_GGX_VC_MULTISCATTER,
    DFK_WARD_GEISLER_MORODER_MULTISCATTER,
    DFK_SHEEN_MULTISCATTER,
    DFK_FORCE_32_BIT = 0xffffffffU
};

mi_static_assert(sizeof(Df_data_kind) == sizeof(Uint32));

class IMdl_backend_api : public
    mi::base::Interface_declare<0x425559dd,0xbf91,0x459a,0xaa,0xaf,0xc3,0x14,0x8a,0x5a,0x2f,0x99>
{
public:

    enum Mdl_backend_kind {
        MB_CUDA_PTX,          
        MB_LLVM_IR,           
        MB_GLSL,              
        MB_NATIVE,            
        MB_HLSL,              
        MB_FORCE_32_BIT = 0xffffffffU //   Undocumented, for alignment only
    };

    virtual IMdl_backend* get_backend(Mdl_backend_kind kind) = 0;


    virtual const Float32* get_df_data_texture(
        Df_data_kind kind,
        Size &rx,
        Size &ry,
        Size &rz) const = 0;
};
 // end group mi_neuray_mdl_misc

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_IMDL_BACKEND_API_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
This interface can be used to obtain the MDL backends. More...

Enumerations

enum  {DFK_NONE, DFK_INVALID, DFK_SIMPLE_GLOSSY_MULTISCATTER, DFK_BACKSCATTERING_GLOSSY_MULTISCATTER, DFK_BECKMANN_SMITH_MULTISCATTER, DFK_BECKMANN_VC_MULTISCATTER, DFK_GGX_SMITH_MULTISCATTER, DFK_GGX_VC_MULTISCATTER, DFK_WARD_GEISLER_MORODER_MULTISCATTER, DFK_SHEEN_MULTISCATTER, DFK_FORCE_32_BIT = 0xffffffffU }
Possible kinds of distribution function data. More...