background preloader

Bezier

Facebook Twitter

Наложение текстуры в шейдере / Форум / Программирование игр. Поделиться Как наложить текстуру на треугольник во фрагментном шейдере ? Делаю вот так: #version 330 core in vec3 position; out vec2 TexCoord; void main(void) { gl_Position = vec4(position, 1.0); } #version 330 core uniform sampler2D texture; in vec2 TexCoord; out vec4 color; void main(void) { color = texture2D(texture, TexCoord); } в результате получаю черный треугольник. Правка: 12 апр. 2012 17:41 Ты задумывался над смыслом переменной TexCoord?

Как я понимаю TexCoord надо присвоить значение в вершинном шейдере ? Для начала их нужно передать в качестве атрибута вершины, так же как и position. т.е. все вручную...=( Спасибо! Snef> т.е. все вручную...=( Спасибо! Сделал передачу текстурных координат. Загружаю текстуру: texid = LoadTGA(buf,"tex.tga"); И в функции прорисовки пишу: получаю черный треугольник. Правка: 12 апр. 2012 23:13 SnefПопробуй вывести на экран текстурные координаты. вместо glUniform1i(loc, GL_TEXTURE0); надо glUniform1i(loc, 0); спасибо, так тоже пробовал. Snef> так тоже пробовал. OpenGL. От детского сада до гуру. Часть 3. Рисование полигонов.

Текстурирование и прозрачность 6 часов сна, гран-при Санкт-Петербурга по ЧГК, и вновь я мучаю ноут OpenOffice`ом. Большое спасибо за отзывы. Код: GL_POINTS — рисование точек GL_LINES — рисование линий между каждой парой точек GL_LINES_STRIP — рисование непрерывной ломанной GL_LINE_LOOP — рисование замкнутой непрерывной ломанной GL_POLYGON — рисование n-угольного полигона GL_QUADS — рисование четырехугольников по 4 точкам GL_QUAD_STRIP — рисование четырехугольников с общими сторонами GL_TRIANGLES — рисование треугольников GL_TRIANGLE_FAN — рисование треугольников с общей вершиной(первой заданной) GL_TRIANGLE_STRIP — рисование треугольников с общими сторонами Заканчивается рисование соответственно функцией glEnd( void ). PHP код: /* Рисование точек в плоскости. /* Рисование точек в 3D пространстве. /* Рисование точек в 3D пространстве с использованием всех координат и делителя */ void glVertex4d( double x, double y, double z, double w ); Урок 3 - Вращающийся куб с текстурой / Статьи / OpenGL community / Сообщества.

Автор: Артем Гуревич Вращающийся куб с текстурой с использованием OpenGL 3.3 Этот урок будет немного сложнее предыдущего, но зато интересней, в нем будет рассмотрен следующий материал: Системы координат OpenGL Работа с матрицами, подготовка и передача их в шейдерную программу Создание простой текстуры и передача ее в шейдер Создание вершинного и индексного буфера для геометрии куба Вывод вращающегося куба на экран Координаты объекта, в режиме FFP (Fixed Function Pipeline) в предыдущих версиях OpenGL, проходили следующие преобразования системы координат: Локальные координаты преобразуются матрицей ModelView в видовые (eye space) Видовые преобразуются матрицей Projection в однородные (clip space) Однородные (X,Y,Z,W) преобразуются в нормализованные (X/W, Y/W, Z/W, 1)Нормализованные преобразуются параметрами Viewport в экранные (screen space) Разработчикам также была облегчена работа с матрицами преобразований.

Кстати, в OpenGL правая система координат, т.е. построенная по правилу правой руки. Steps3D - Tutorials - Тесселяция в современном OpenGL. Поскольку передача данных между CPU и GPU сильно ограничена по скорости, то важно уметь генерировать геометрию прямо на GPU. Частично подобную функциональность предоставил так называемый рендеринг в вершинный буфер (R2VB). Следующим шагом в этом направлении стало добавление геометрических шейдеров в конвейер рендеринга/ Однако, хотя добавление геометрических шейдеров в OpenGL 3.2 и повысило гибкость конвейера рендеринга, но при этом оказалось, что геометрические шейдеры очень плохо подходят для генерации на GPU большого количества геометрии. Поэтому в архитектуру GPU следующего поколения (для NVidia - это Fermi) была добавлена аппаратная поддержка тесселляции, позволяющая прямо на GPU на основе одного примитива создавать большое количество новых примитивов.

Рис 1. Тесселяция работает с новым типом примитива - GL_PATCHES, специально предназначенным для тесселляции. На вход шейдера поступают как выходные значения вершинного шейдера (в виде массивов), так и следующие встроенные переменные: Поверхность Безье / Форум / Программирование игр. Поделиться Здравствуйте, помогите, пожалуйста, из поверхности Безье построить сферу. Я изменила координаты точек и получила полусферу, а вот дальше не знаю (( вот исходный код спасибо заранее, надеюсь на помощь )) Правка: 15 дек. 2011 16:01 используй тег нарисуй две полусферы, получи целую сферу. Правка: 15 дек. 2011 13:37 нарисуй полусферу, поверни сцену на 180 градусов, нарисуй полусферу еще раз. а как повернуть сцену на 180 градусов? Suslik> используй тег [code=delphi] ... [ /code] Marina2011glRotatef(180,1.0,0.0,0.0) поворот на 180 градусов вдоль вектора {1.0;0.0;0.0} т.е вдоль оси х Правка: 15 дек. 2011 21:15 MAMOHT-92> glRotatef(180,1.0,0.0,1.0)м.б. последний аргумент 0.0f ?

Blew_zc> м.б. последний аргумент 0.0f ? Нарисуй полусферу, поверни сцену на 180 градусов, нарисуй полусферу еще раз. . / Форум / Программирование игр / Графика. Урок 28. Фрагменты поверхностей Безье. Bezier Patches В этом уроке пойдет речь о поверхностях Безье, и я буду надеяться, что кто-то, прочитав этот урок, покажет нам более интересные варианты использования их, чем я. Здесь не пойдет речь о библиотеке фрагментов поверхностей Безье (Bezier patch, или патчи Безье, или лоскуты Безье), а скорее я попытаюсь ознакомить вас концепцией того, как реально эти кривые поверхности работают. Так как это, скорее всего не формальное изложение, то я иногда делаю небольшие отступления от формальной терминологии, для лучшего понимания сути дела. Я надеюсь, что это поможет. Если вы уже знакомы с Безье, и вы читаете эту статью, что бы посмотреть что я тут накрутил, то позор Вам!

Математика – дьявольская музыка:: (предупреждаю, вероятно, это длинная секция) Отлично, Вам будет очень трудно понять поверхности Безье без минимума математики, стоящей за этим, однако, если Вы не чувствуете в себе сил и желания читать эту секцию, или Вы уже знакомы с этой математикой, Вы можете опустить ее. T + (1 - t) = 1.