Войти
ПрограммированиеСтатьиКатегории

OpenGL

Смотрите также категорию OpenGL для всех разделов

Стоимость OpenGL команд.
Стоимость OpenGL команд.

В современных проектах для получения красивой картинки отрисовываются тысячи различных объектов: персонажи, строения, ландшафт, природа, эффекты и т.д. Разумеется есть разные способы отобразить на экране геометрию. В этой статье мы рассмотрим как сделать это эффективно, посчитаем и сравним стоимость различных API вызовов для отрисовки геометрии.

Читать | Комментарии [85]
8 фев 2017

Вставка одной поверхности в другую (многопоточный алгоритм)
Вставка одной поверхности в другую (многопоточный алгоритм)

В статье рассматривается метод встраивания одной поверхности в другую. Данная статья имеет некоторые «нечеткие» определения, и в ней не гарантируется работа метода на любой геометрии. Она носит скорее исследовательский и теоретический характер, но возможно и это кому-то поможет.

Читать | Комментарии [28]
9 сен 2015

Screen space ambient occlusion с учетом нормалей и расчет одного отражения света.
Screen space ambient occlusion с учетом нормалей и расчет одного отражения света.

В этой статье я расскажу, как я с нуля делал SSAO (Screen Space Ambient Occlusion — расчёт фонового освещения в экранном пространстве) с учетом нормалей. Сразу следует отметить, что это наиболее простая и прямолинейная реализация «в лоб», не претендующая на оптимальность или новизну. Статья будет полезна в первую очередь тем, кто имеет желание разобраться, как это работает.

Читать | Комментарии [69]
17 янв 2015

OpenGL на Qt 4. Это просто! (часть 2)
OpenGL на Qt 4. Это просто! (часть 2)

Во 2-ой части продолжается рассмотрение работы с OpenGL на Qt 4. Читатель познакомится с настройкой контекста OpenGL, созданием анимации и простым наложением текстур. Заодно в рамках «чистого» OpenGL будет рассмотрена интерактивная графика с помощью режима выбора (выбираем объекты на экране для дальнейшей манипуляции с ними), в рамках «чистого» Qt будет продемонстрировано создание главного окна, меню (menu bar), задействованы механизм сигналов и слотов и технология дерева объектов (иерархии объектов).

Читать | Комментарии [17]
10 авг 2011

ЧАВО по матрицам и кватернионам

Часто задаваемые вопросы по матрицам и кватернионам.

Читать | Комментарии [40]
9 мар 2011

OpenGL на Qt 4. Это просто! (часть 1)
OpenGL на Qt 4. Это просто! (часть 1)

Это ознакомительная статья, посвящённая программированию 3D-графики OpenGL (Open Graphics Library — открытая графическая библиотека) с помощью кроссплатформенной библиотеки Qt 4 (Q + toolkit: «Q» — префикс классов (с красивым начертанием, по мнению разработчиков); toolkit — инструментарий). Я надеюсь, она окажется полезной для тех, кто впервые решил познакомиться с OpenGL и выбирает практичную и удобную библиотеку GUI (Graphical User Interface — графический интерфейс пользователя).

Читать | Комментарии [98]
19 янв 2011

Моделирование стеклянных поверхностей
Моделирование стеклянных поверхностей

С помощью современных графических адаптеров можно получать все более сложные динамические сцены. Это означает, что высококачественный (фотореалистичный) рендеринг переноситься из offline в реальное время. В частности, одной из насущных задач компьютерной графики является расчет и рендеринг глобального освещения и сложных материалов. В этой статье я хотел бы рассказать о моделировании стеклянных предметов.

Читать | Комментарии [63]
31 июля 2010

Основы создания мягких теней (GLSL)
Основы создания мягких теней (GLSL)

Данная статья является естественным продолжением и дополнением статьи «Реализация карт теней с использованием GLSL шейдеров» Дмитрия Беспалова (aka Executor).

Читать | Комментарии [31]
19 июня 2009

Динамические тени, основаные на CubeMap
Динамические тени, основаные на CubeMap

Это статья для начинающих, в которой приведён простейший пример построения динамических теней с помощью СubeMap'ов.

Читать | Комментарии [97]
18 июня 2009

Быстрая реализация модели освещения Кука-Торренса с использованием GLSL
Быстрая реализация модели освещения Кука-Торренса с использованием GLSL

С развитием технологий и увеличением вычислительно мощности видеокарт все легче становиться использовать в трехмерной графике сложные вычислительные алгоритмы. Иногда, конечно, приходится немного пожертвовать производительностью ради красивого вида. Но что поделаешь — красота требует жертв, а сама красота в трехмерной графике достигается использованием «честных», то есть физически обоснованных алгоритмов. Одним из таких алгоритмов и является модель освещения Кука-Торренса.

Читать | Комментарии [47]
15 июня 2009

Создание реалистичной поверхности воды с использованием GLSL
Создание реалистичной поверхности воды с использованием GLSL

Современные игры трудно представить без реализации в них воды. И каждый добросовестный разработчик стремится сделать «свою» воду еще лучше, еще реалистичнее, чем ту, что была сделана до него.

Читать | Комментарии [480]
12 июня 2009

Реализация карт теней с использованием GLSL шейдеров
Реализация карт теней с использованием GLSL шейдеров

У многих разработчиков возникают трудности при построении теней. Данная статья призвана помочь лучше понять OpenGL реализацию теневых карт на шейдерах.

Читать | Комментарии [226]
1 фев 2009

Технологии эффективного рендеринга геометрии.

В этой статье я попытаюсь осветить такой банальный, пожалуй, вопрос как вывод геометрии. Однако несмотря на его «простоту», на форуме до сих пор частенько возникают вопросы, типа, а что лучше, VBO или CVA/VAR, как лучше выводить геометрию - стрипами или triangle lists с оптимизацией под кэш, какие индексы ushort или uint работают быстрее, можно ли использовать целочисленные типы данных для вершин/нормалей/текс.координат, а также масса подобных вопросов.

Читать | Комментарии [28]
28 окт 2006

Библиотека OpenIL

Привет всем! Я расскажу, как пользоваться простой и удобной библиотекой для загрузки изображения из графических файлов различных форматов. Библиотека OpenIL также известная как DevIL (второе название дали из-за вопросов торговой марки) свободно распространяемая.

Читать | Комментарии [103]
22 дек 2004

Основы программирования OpenGL в Borland С++Builder и Delphi. (Часть 3)

Полезные мелочи

Читать | Комментарии [10]
30 ноя 2003

Построение теней в OpenGL при помощи теневых буферов

Метод теневых буферов — это image-based метод получения реалистичных теней. Для него нужны расширения ARB_shadow (или SGIX_shadow), ARB_depth_texture (или SGIX_depth_texture) и, опционально, ARB_shadow_ambient.

Читать | Комментарии [19]
19 окт 2003

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 8)

Как известно, стандартный OpenGL обладает очень ограниченными возможностями по управлению наложением текстур – имеется всего 4 режима  (GL_REPLACE, GL_DECAL, GL_MODULATE и GL_BLEND), которые не допускают какой-либо настройки. Кроме того, не возможно установить разные режимы наложения для RGB и Alpha составляющих текстуры, что ещё сильнее сужает область применений стандартных режимов.

Читать | Комментарии [4]
10 окт 2003

Световые эффекты в OpenGL.

Автор: terror

Читать | Комментарии [16]
21 сен 2003

Выбор объектов средствами OpenGL.

Автор: terror

Читать | Комментарии [36]
25 авг 2003

Основы программирования OpenGL в Borland С++Builder и Delphi. (Часть 2)

Рассматривая какой-либо трёхмерный объект, мы всегда определяем его положение и размеры относительно некоторой привычной, и удобной в настоящий момент системы координат, связанной с реальным миром. Такая исходная система координат в компьютерной графике называется мировой системой координат.

Читать
16 авг 2003

Использование CubeMap техники в OpenGL.

Текстурирование — это технология, изобретенная уже бог знает в каком году, никогда не потеряет свою актуальность, так как это единственный способ сделать трехмерный мир на экране монитора более красивым. Самым красивым как это только можно себе представить. Поэтому, если и говорить слово «красота» в трехмерном мире, то обязательно подразумевать под этим словом — «текстура».

Читать | Комментарии [17]
30 июля 2003

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 7)

В этой части мы будем использовать NVIDIA SDK 5.21. Если не учитывать необходимость исправления путей к заголовочным (.h) и библиотечным (.lib) файлам, переход на новую версию происходит без проблем. Однако в  этой версии исправлен ряд ошибок. Например, теперь не обязательно добавлять строку "#define GL_EXT_texture_compression_s3tc 1" для работы с расширением EXT_texture_compression_s3tc.

Читать
7 июня 2003

Основы программирования OpenGL в Borland С++Builder и Delphi.

На кого рассчитана статья. Я рассчитываю на то, что вы знакомы с азами создания приложений в С++Builder или Delphi и совсем не знаете OpenGL.

Читать | Комментарии [30]
2 мая 2003

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 6)

В настоящее время в  программах, работающих с трёхмерной графикой, как правило, используются 32-х битные текстуры высокого разрешения (512x512 и выше). Платой за высокое качество текстур являются повышенные требования, как к объёму видеопамяти, так и к её пропускной способности. Казалось бы - есть шина AGP, которая позволяет хранить текстуры большого размера в ОЗУ компьютера.

Читать
13 апр 2003

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 5)

При разработке относительно простых демонстрационных программ программисту постоянно приходится программировать одни и те же операции: реакцию на изменение размеров окна, вращение объекта мышью, выход из программы при нажатии клавиши ESC и т.д. Наиболее распространенный подход к этой проблеме - создание универсального шаблона и разработка приложений на основе этого шаблона. (Этот подход использовался при написании примеров статей этого цикла.) Недостаток данного подхода - "разбухание" программного кода, т.к. в главный модуль приходитс

Читать
28 мар 2003

Делаем простой редактор бликов.

В процессе разработки игры, часто возникает ситуация необходимости компоновки уровня. Это когда все материалы созданные разработчиками( модели, ландшафт и т.д) собираются в одно целое, получается игровой уровень. Начинающие кодеры думают, что с помощью своего редактора можно сделать все, включая уровень. Но это только доля правды.

Читать | Комментарии [3]
26 мар 2003

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 4)

Начиная с этой статьи в качестве среды разработки будет использоваться Visual C++ .NET. Переход на эту платформу происходит довольно гладко, если не считать того, что в файл "\include\glh\NVEBGlutAPI.c" придётся внести небольшие изменения, поэтому мы не будем останавливаться на этом обстоятельстве.

Читать
25 фев 2002

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 3)

Во время подготовки примеров для этой части статьи я столкнулся со следующей проблемой. В FAQ по GLUT написано, что файл glut.h уже содержит необходимые определения из windows.h, которые необходимы для нормальной компиляции gl.h. Поэтому файл windows.h можно подключать как до, так и после подключения файла glut.h (а лучше, не подключать вообще). Но оказалось, что если следовать этим указаниям, то на некоторых компиляторах компиляция будет проходить успешно, а на некоторых - вылетать с ошибкой во время компиляции gl.h.

Читать | Комментарии [11]
24 фев 2002

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 2)

Известно, что в стандартном OpenGL на объект можно наложить не более одной текстуры за один проход. Но в реальных приложениях редко можно обойтись только одной текстурой - например при использовании карт освещения приходится поверх основной текстуры объекта накладывать еще и текстуру освещения. В случае использования хромированных поверхностей без второй текстуры тоже никак не обойтись.

Читать
23 фев 2002

Работа с расширениями OpenGL с использованием NVIDIA OpenGL SDK 5.1. (Часть 1)

Как известно, OpenGL в чистом виде обладает довольно ограниченными возможностями по сравнению, например, с DirectX. Так, в нем нет средств для работы с внеэкранными поверхностями, шейдерами и многого другого. Но зато с самого начала OpenGL обладал открытой архитектурой, которая заключается в поддержке расширений.

Читать | Комментарии [3]
22 фев 2002

OpenGL pixel and vertex shaders.

Чтобы понять, что такое шейдер, разберемся для начала, как видео карта рисует примитивы (треугольники, полигоны и др.) На вход поступают данные о каждой вершине примитива. Например, положение вершины в пространстве, нормаль и текстурные координаты. Эти данные называются вершинными атрибутами (vertex attributes). GPU на их основе вычисляет выходные значения: положение вершины в экранных координатах, цвет вершины, рассчитанный в зависимости от освещения и т.д. До выхода видео карт GeForce 3 и Radeon 8500 этот процесс был неуправляемым.

Читать | Комментарии [1]
20 фев 2002

Cg

Современная компьютерная графика вступает в новую эру. На лозунгах, которые зовут нас вперед, написано: "вперед к программируемости!". OpenGL 2.0 выглядит великолепным миражом на горизонте. Этот интерфейс  предоставляет возможность компиляции с языка высокого уровня на стороне графического сервера. Однако, полная реализация этого интерфейса кажется пока несбыточной, и нам лишь предстоит мечтать о светлом будущем.

Читать
19 фев 2002

Способ выделения объектов мышью в OpenGL приложениях.

Автор: Курковский Александр

Читать | Комментарии [27]
17 фев 2002

OpenGL: Основы.

OpenGL является одним из ведущих и популярных графических API, разработанный SGI. OpenGL разрабатывался как многоплатформенный, открытый и быстрый графический API. Многие графические пакеты используют OpenGL для вывода трёхмерной графики. Многие известные игры, такие как Quake, Serious Sam и наш отечественный ИЛ-2 Штурмовик, также написаны под OpenGL.

Читать | Комментарии [92]
16 фев 2002

Практическое использование расширений: анизотропная фильтрация в OpenGL

Кратко о фильтрации текстур - для чего она существует? Вопреки сложившемуся мнению о том, что фильтрация предназначена только для улучшения качества изображения - скажу так - это лишь окончательный результат который складывается не только за счет самой фильтрации. Хотя подобное замечание наиболее справедливо для билинейной фильтрации, но об этом несколько позже. Вернемся к OpenGL.

Читать | Комментарии [48]
16 фев 2002

OpenGL: Использование Register Combiners.

С появлением чипа от NVIDIA с «притягивающим» названием GeForce, стал возможным не только более быстрый рендеринг наших любимых полигонов, но и использование новых спецэффектов и технологий, реализация которых на более древних видеокартах была либо попросту невозможна, либо очень затруднительна.

Читать | Комментарии [2]
15 фев 2002

OpenGL: Extensions (Расширения).

Введение.

Читать | Комментарии [12]
15 фев 2002