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

OpenGL

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

8 фев 2017

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

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

Читать | Комментарии [85]

9 сен 2015

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

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

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

17 янв 2015

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

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

Читать | Комментарии [69]

10 авг 2011

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

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

Читать | Комментарии [17]

9 мар 2011

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

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

19 янв 2011

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

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

Читать | Комментарии [98]

31 июля 2010

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

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

Читать | Комментарии [63]

19 июня 2009

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

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

Читать | Комментарии [31]

18 июня 2009

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

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

Читать | Комментарии [97]

15 июня 2009

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

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

Читать | Комментарии [47]

12 июня 2009

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

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

Читать | Комментарии [480]

1 фев 2009

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

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

Читать | Комментарии [226]

28 окт 2006

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

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

22 дек 2004

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

Читать | Комментарии [103]

30 ноя 2003

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

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

19 окт 2003

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

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

10 окт 2003

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

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

21 сен 2003

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

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

25 авг 2003

Автор: terror

Читать | Комментарии [36]

16 авг 2003

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

Читать

30 июля 2003

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

Читать | Комментарии [17]

7 июня 2003

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

Читать

2 мая 2003

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

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

13 апр 2003

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

Читать

28 мар 2003

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

Читать

26 мар 2003

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

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

25 фев 2002

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

Читать

24 фев 2002

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

Читать | Комментарии [11]

23 фев 2002

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

Читать

22 фев 2002

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

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