background preloader

OpenGL

Facebook Twitter

OpenGL Tutorial. Урок 1 - Создание контекста OpenGL 3.3 / Статьи / OpenGL community / Сообщества. Автор: Артем Гуревич Создание контекста OpenGL 3.3 Этот урок является вводным к циклу уроков по OpenGL 3.3. Цикл уроков задуман мной как ознакомительный и, в то же время, как справочный материал для всех кто интересуется OpenGL, особенно новой версией 3.3. Я не буду подробно останавливаться на том, чем OpenGL 3.3 отличается от своих предшественников, если это кому-то интересно то можно ознакомиться с моей прошлой заметкой, в ней кратко рассказано про отличия спецификации OpenGL 3.0 от предыдущих версий, ссылка на заметку - В этом и последующих уроках я планирую использовать платформу Windows как базовую, однако, в дальнейшем, возможно портирование исходных кодов на другие платформы, в частности меня интересуют платформы Linux и Mac OS.

GLSL Tutorial. Tutorial 02. Previous Tutorial Home Next Tutorial Background This is our first encounter with GLEW, the OpenGL Extension Wrangler Library.

Tutorial 02

GLEW helps you deal with the headache that can accompany the management of extensions in OpenGL. Урок 5. Создание фигур в 3D. Solid Objects Продолжая последний урок, мы сделаем объект, как ИСТИННЫЙ трехмерный объект, а не 2D объекты в 3D мире.

Урок 5. Создание фигур в 3D

Мы будем делать это добавлением с левой, задней и правой сторон треугольника, и с левой, правой, верхней и нижней сторон квадрата. Сделав это, мы превращаем треугольник в пирамиду с четырьмя гранями и квадрат в куб. Мы будем смешивать цвета на пирамиде, создавая сглаженный закрашенный объект, а для квадрата мы назначим каждой грани свой цвет. GLvoid DrawGLScene(GLvoid) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Очистка экрана и буфера глубины glLoadIdentity(); // Сброс просмотра glTranslatef(-1.5f,0.0f,-6.0f); // Сдвиг влево и вглубь экрана glRotatef(rtri,0.0f,1.0f,0.0f); // Вращение пирамиды по оси Y glBegin(GL_TRIANGLES); // Начало рисования пирамиды Некоторые из Вас взяли код из последнего урока и сделали свои собственные 3D объекты.

Следующий код создаст пирамиду вокруг центральной оси. Мы начинаем рисовать с Передней Грани. Сейчас задняя сторона. OpenGL - уроки от NeHe. Tutorial 1 : Opening a window. Welcome to the first tutorial ! Before jumping into OpenGL, you will first learn how to build the code that goes with each tutorial, how to run it, and most importantly, how to play with the code yourself. No special prerequisite is needed to follow these tutorials. Experience with any programming langage ( C, Java, Lisp, Javascript, whatever ) is better to fully understand the code, but not needed ; it will merely be more complicated to learn two things at the same time. All tutorials are written in “Easy C++” : Lots of effort has been made to make the code as simple as possible. No templates, no classes, no pointers. GLSL Tutorial. Source: Lighthouse3D GLSL Tutorial.

GLSL Tutorial

I have concatenated all the seperate HTML pages of the original tutorial for your reading convenience. I have also found that the repetition of all code examples, once using OpenGL 2.0 syntax, and once using ARB syntax, makes reading a little tedious; therefore, i have removed the ARB versions of the examples, since they are outdated anyway. Introduction In this tutorial shader programming using GLSL will be covered. Создание 1k/4k intro для Linux, часть 1. «на русской сцене мы удивляем друг друга тем, что вообще что-то делаем», © manwe (из статуса SCRIMERS на demoscene.ru/forum/) Пятиминутка мета: в этом тексте вам, котятки, предстоит прочитать о том, как потратить свое время совершенно неэффективно с точки зрения отношения размера полученного продукта к потраченным времени и усилиям.

Создание 1k/4k intro для Linux, часть 1

Предположим, что мы хотим сделать что-нибудь эдакое, например, интру размером до 4кб, но мы нищеброды, и у нас нет денег на виндовс и видеокарту с шейдерами, поддерживающими ветвления. Или мы просто не хотим брать стандартный набор из apack/crinkler/sonant/4klang/боже-что-там-еще-есть, делать очередную «смотрите все! Как узнать версию драйверов в OpenGL? / Форум. Поделиться Как узнать версию драйверов в OpenGL? Или можно пользоваться только версией OpenGL? Можно ли точно сказать что если версия OpenGL подходящая то и дрова нормальные? Steps3D - Tutorials - Использование библиотеки GLew для работы с расширениями OpenGL. Не секрет, что для серьезного использования OpenGL сейчас необходимо пользоваться различными расширениями (по крайней мере под форточками, где до сих пор OpenGL 1.1).

steps3D - Tutorials - Использование библиотеки GLew для работы с расширениями OpenGL

Использование расширений дает как доступ к таким стандартным уже возможностям, как шейдеры, так и к довольно специфическим возможностям конкретным видеокарточек. Существует довольно много различных библиотек, предназначенных для работы с расширениями OpenGL (одна из них - мою libExt - постоянно используется в примерах с данного сайта). В этой статье я хочу рассмотреть одну из самых популярных таких библиотек - (вошедшую в состав OpenGL SDK) - библиотеку OpenGL Extension Wrangler Library - GLew. Это простая в использовании кроссплатформенная (в числе поддерживаемых платформ - M$ Windoze, Linux, Mac OS X, Solaris и другие ) библиотека обеспечивает удобство в использовании расширений OpenGL.

Для использования библиотеки необходимо подключить ее заголовочный файл glew.h вместо файла gl.h (он сам подключает все, что надо). Steps3D - Tutorials - Работа с OpenGL 3.3 с использованием библиотек freeglut и glew. Важной особенностью OpenGL 3.2 и выше является то, что для работы с ним необходимо создать специальный контекст.

steps3D - Tutorials - Работа с OpenGL 3.3 с использованием библиотек freeglut и glew

Для создания контекста при помощи расширений WGL_ARB_create_context/GLX_ARB_create_context предоставляются функции wglCreateContextAttribsARB/glXCreateContextAttribsARB, позволяющие создать контекст с заданными атрибутами. Однако для того, чтобы получить эти функции (вводимые через расширения OpenGL) необходимо уже иметь готовый контекст OpenGL. Поэтому сейчас обычно используется следующая схема - сначала стандартными средствами создается обычный контекст OpenGL, при помощи которого получается функция wglCreateContextAttribsARB или glXCreateContextAttribsARB, в зависимости от используемой операционной системы. После этого при помощи полученной функции создается нормальный контекст со всеми необходимыми атрибутами и делается текущим, а старый контекст просто уничтожается - он больше уже не нужен.

GLSL Tutorial.

Bezier

OpenGL Video Tutorial - Putting It All Together. We've learned a lot so far.

OpenGL Video Tutorial - Putting It All Together

Let's briefly go over the OpenGL we learned in the previous lessons, to make sure we understand everything. If you want, you can skip this lesson, but you might want to solidify everything you've learned thus far. Since we love spinning objects so much, we want to make a spinning cube with two sides textured, two sides solid-colored, and two sides with a color gradient. Lazy Foo' Productions. Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать. Итак, прошел почти год с момента моего первого поста о программировании видеокарт и страшилок о том, как это все сложно.

Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать

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

Основан стандарт на C99 и поддерживается The Khronos Group, на этом ликбез будем считать завершенным. int main(int argc, char* argv[])