OpenGL Lib Материалы

  !   Данная информация предназначена только только для IT-специалистов по системной интеграции модулей БИОСОФТ-М. (см. Руководства пользователя к программным продуктам)
Материалы

Библиотека определяет фиксированный набор различных материалов доступных для использования:

class COpenGlMaterialIfaceGp : public typeobject
{
public:
    COpenGlMaterialIfaceGp();
    static COpenGlMaterialIfaceGp* GNewObject() // (non-abstract instantiation)
            //return new COpenGlMaterialImpl;
            AUTO_NEW_OBJECT_GP(VesselPoint, COpenGlMaterialImpl, COpenGlMaterialIfaceGp);
 
// Derived Item Enumeration
 
    const typelist<COpenGlMaterialIfaceGp> GetMaterialsDerivedList()
            new virtual auto;
 
    type<COpenGlMaterialIfaceGp> AsOpenGlMaterialBasic()
            new virtual auto;
 
    type<COpenGlMaterialIfaceGp> AsOpenGlMaterialArtery()
            new virtual auto;
 
    type<COpenGlMaterialIfaceGp> AsOpenGlMaterialBodySkin()
            new virtual auto;
};

Материал задает:

  • Используется для отрисовки шейдер или нет.
    • Если шейдер используется, то пути к файлам вершинного и пиксельного шейдера.
  • Если шейдер не используется то цвет в формате rgba.

Для каждой модели можно задать материал, который используется для ее отрисовки:

class COpenGlModelIfaceGp : public object
{
public:
 
// Operations
 
    // set material for model
    void AssignMaterial(
            type<COpenGlMaterialIfaceGp> typeOpenGlMaterial)
            new virtual auto;
 
    // current material
    type<COpenGlMaterialIfaceGp> GetCurrentMaterial()
            new virtual auto;
};

Для удобства отладки существует специальный материал, параметрами которого можно управлять через debslot и доступный в OpenGL Lib Внутренние настройки.