Форум программистов, компьютерный форум, киберфорум
8Observer8
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Инструкция. Добавляем OpenGL графику на WPF форму с помощью OpenTK.GLContro­l

Запись от 8Observer8 размещена 30.09.2019 в 14:34
Показов 14726 Комментарии 0
Метки c#, opengl, opentk, wpf

Содержание блога

- Откройте NuGet и установите OpenTK.GLControl (автоматически будет подхвачена зависимость OpenTK)
- Добавьте в References:
System.Drawing
System.Windows.Forms
WindowsFormsIntegration
- Добавьте NameSpace в XAML:
XML
1
xmlns:opentk="clr-namespace:OpenTK;assembly=OpenTK.GLControl"
- Добавьте контрол на форму, задайте обработчик Initialized, задайте имя контрола и обработчики событий Load, Paint и т.д.:
XML
1
2
3
4
5
    <Grid>
            <WindowsFormsHost Initialized="WindowsFormsHost_Initialized">
                <opentk:GLControl x:Name="glControl" Load="glControl_Load" Paint="glControl_Paint" />
            </WindowsFormsHost>
    <Grid>
Пример использования. Данная программа очищает экран выбранным цветом:

MainWindow.xaml.cs

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        private void WindowsFormsHost_Initialized(object sender, EventArgs e)
        {
            glControl.MakeCurrent();
        }
 
        private void glControl_Load(object sender, EventArgs e)
        {
            GL.Viewport(0, 0, glControl.Width, glControl.Height);
            GL.ClearColor(new Color4(0.631f, 0.6f, 0.227f, 1f));
        }
 
        private void glControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            GL.Clear(ClearBufferMask.ColorBufferBit);
 
            // Draw objects here
 
            glControl.SwapBuffers();
        }
Пример рисования треугольника и вывода кнопок: EditedTriangle_WPFOpenGL31CSharp.zip

Туториал по OpenGL на OpenTK: https://opentk.net/learn/index.html Данный туториал был переведёт на C# и OpenTK из знаменитого туториала: https://learnopengl.com/ (На территории РФ сайт не отрывается, нужно ставить VPN, например, плагин для браузера Browsec)

Очень хорошая книга по введению в программирование шейдеров на GLSL: WebGL. Программирование трехмерной графики
Метки c#, opengl, opentk, wpf
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru