IgdrasilOpenGL — OpenGL рендер
IgdrasilOpenGL — полная реализация графического пайплайна на базе OpenGL. Предоставляет шейдеры, текстуры, буферы вершин и фреймбуферы через типобезопасный интерфейс.
Быстрый старт
using IgdrasilEngine.Engine;
using IgdrasilEngine.Engine.Graphics;
// 1) Инициализируем OpenGL
OpenGL.Initialize();
// 2) Создаём окно с OpenGL
var options = new WindowOptions { Engine = "OpenGL" };
Igdrasil.InitializeWindow(options);
// 3) Используем контекст рендера
Igdrasil.OnLoad += () =>
{
var context = Igdrasil.Context;
var shader = context.CreateShader(new List<ShaderScript>
{
new(ShaderType.Vertex, vertexSource),
new(ShaderType.Fragment, fragmentSource)
});
};
Igdrasil.Start();
Основные концепции
- Инициализация —
OpenGL.Initialize(), регистрация,GLPipeline - Контекст рендера —
GLRenderContext, создание ресурсов - Шейдеры — компиляция, uniform, атрибуты, кеширование
- Текстуры — загрузка, привязка, параметры
- Буферы — вершинные буферы, VAO, индексы
Архитектура
OpenGL.Initialize()
├─ GameWindow.AddRenderEngine("OpenGL", loaders => new GLPipeline(loaders))
│
└─ при создании окна:
├─ GLPipeline.OnInit (настройка параметров)
├─ GLPipeline.OnLoad (инициализация GPU)
│ ├─ GL.GetApi() — получение OpenGL контекста
│ ├─ GLRenderContext() — создание контекста рендера
│ ├─ loaders.ForEach(l => l.Load()) — загрузка ресурсов
│ └─ GL.Enable(DepthTest, Blend) — включение возможностей
│
└─ Igdrasil.OnLoad — пользовательский код
└─ Igdrasil.Context (GLRenderContext) доступен
Поддерживаемые версии
- OpenGL 3.3+ (можно понизить в GLPipeline.OnInit)
- GLSL 330 и выше
- Все современные расширения через Silk.NET
Проект: Igdrasil Engine
Автор: Alexander Izmailov
Собственность: Igdrasil Project
Версия: 1.0
Лицензия: Proprietary License
© 2026 Alexander Izmailov. Все права защищены.
Этот программный продукт является собственностью студии Igdrasil Project.