Blender для начинающих/Немного об OpenGL: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 105:
| glVertex3dv(a) || Рисует что-либо в соответствии с mode, используя массив из трех переменных.
|}
* Установить размер точки в пикселях можно функцией glPointSize(n), где n - количество пикселей.
===Функции для работы с примитивами===
OpenGL предоставляет широкий набор функций для изменения внешнего вида примитивов перед их отрисовкой.
Строка 112:
! Функция !! Описание !! Пояснение
|-
| glLineStipple(GLint factor, GLushort pattern) || Устанавливает где будет видна линия, а где нет. || Есть некоторое число apattern, которое переводится в двоичную систему. Там где 0 - там линия не видна, где 1 - видна. Первый параметр factor указывает количество повторения одного бита (одной цифры в двоичной записи числа).
|-
| glLineWidth(w) || Устанавливает толщину линии в пикселях. || -
|-
| glPolygonMode(side, m) || УстанавливатУстанавливает с какой стороны рисовать треугольник и как. || Параметр side отвечает за сторону, с которой рисовать треугольник, и может принимать одно из значений: GL_FRONT (спереди), GL_BACK (сзади), GL_FRONT_AND_BACK (с обоих сторон). m указывает, как рисовать треугольник - GL_POINT (рисовать только точки треугольника), GL_LINE (рисует ребра треугольника) и GL_FILL (рисует заполненный треугольник).
|}
===Примитивы OpenGL===
Строка 124:
<source lang="c">name = gluNewQuadric();</source>
И затем рисовать с его помощью примитивы.
* Стиль примитива, который будет нарисован, задается функцией gluQuadricDrawStyle. В которойней первый параметр - ссылка на объект типа GLUquadricObj, второй - стиль отрисовки (GLU_POINT - рисуются только точки, GLU_LINE - рисуются только линии, GLU_FILL - фигура рисуется сплошной).
* При создании примитива последними двумя параметрами в функции, которая его создает, будут количество разделение по оси Z и вдоль нее.
{| class="wikitable sortable"
|-
! Функция !! Описание !! Параметры
|-
| gluSphere(r, cZ1, cZ2) || Рисует сферу. || r - радиус сферы, cZ1 - количество радениеразбиений по оси Z, а cZ2 - вдоль нее.
|-
| gluSylinder(r, r2, h, cZ1, cZ2) || Рисует цилиндр. || r - нижний радиус цилиндра, r2 - верхний радиус, h - высота цилиндра, cZ1 - количество радениеразбиений по оси Z, а cZ2 - вдоль нее.
|-
| glDisk(r, r2, cZ1, cZ2) || Рисует диск. || r - внутренний радиус диска, r2 - внешний радиус диска, cZ1 - количество разделенияразбиений по оси Z, а cZ2 - вдоль нее.
|}
===Сглаживание цветов===
Строка 141 ⟶ 140 :
А отключается так:
<source lang="c">glShadeModel(GL_FLAT);</source>
===Прозрачность===
В OpenGL для возможности установки прозрачного цвета следует написать:
<source lang="c">glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
</source>
А далее выбирать цвет функцией glColor3D:
<source lang="c">glColor3D(Alpha, R, G, B);</source>
Alpha - значение прозрачности от 0 до 1.
===Плоскости отсечения===
Если Вам надо нарисовать какой-то объект урезанным, то используйте плоскости отсечения. Их может быть 6. Все они называются так: GL_CLIP_PLANE0, GL_CLIP_PLANE1, GL_CLIP_PLANE2, GL_CLIP_PLANE3, GL_CLIP_PLANE4 и GL_CLIP_PLANE5. Для включения плоскости отсечения пишите: