ПрограммированиеФорумГрафика

вопрос про разницу между GL_QUAD и GL_TRIANGLE

Страницы: 1 2 3 4 Следующая »
#0
9:52, 1 июля 2017

Почему считается, что отдельные треугольники быстрее квадратов будут? Ведь чтобы нарисовать 1 квадрат, надо 2 треугольника, и передать на видеокарту потребуется 6 точек, когда у квадрата только 4.

#1
10:23, 1 июля 2017

патамучта видюха оперирует именно треугольниками.

#2
13:25, 1 июля 2017

Human
> передать на видеокарту потребуется 6 точек
Не всегда.

#3
14:03, 1 июля 2017

Есть ещё Quad_strip и triangle_strip

#4
15:45, 1 июля 2017

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

#5
15:56, 1 июля 2017

Квады они же для 2д в основном - худ биллборды

#6
0:23, 5 июля 2017

Я в принципе догадывался, что видеокарта сама разбивает квадрат на 2 треугольника, но ведь данные еще надо передать в видеокарту.

Про STRIP знаю, раньше их часто использовал, но если рисовать отдельные прямоугольники ими, то придется часто юзать glBegin glEnd, а ведь для этих команд тоже время надо.. или они не повторяются при отображении списка (list) ?

#7
1:35, 5 июля 2017

Human
мда... ну ппц тема... и это в 2017 году. про glBegin glEnd, про GL_QUAD. Это же каменный век.
Дело в том, что в GL уже этого нет.
Почитай книжки по современному GL 4.3. Например:
OpenGL_SuperBible_7th_edition
Addison Wesley - OpenGL Programming Guide 8th Edition (2013)
OpenGL Development Cookbook  - эта по gl 3.3

#8
8:11, 5 июля 2017

Если объем передаваемых данных не велик, то глБегин побыстрее будет даже.

#9
9:13, 5 июля 2017

Funtik
> про GL_QUAD. Это же каменный век.

Открой для себя XBox360/XONE или хотя бы amd расширение DX11

#10
10:02, 5 июля 2017

innuendo

Там еще в каменном веке были Panasonic 3DO и Sega Saturn, у которых онли квады и онли через жопу, потому как на самом деле деформированные/отмасштабированные спрайты, а не примитивы с четырьмя вершинами

http://altmer.arts-union.ru/3DO/docs/DevDocs/ppgfldr/ggsfldr/gpgf… tml#XREF38473.
https://antime.kapsi.fi/sega/files/ST-013-R3-061694.pdf

#11
12:58, 5 июля 2017

Опять ненавистники glBegin в треде. Да что он вам сделал? Детство испортил?

#12
13:13, 5 июля 2017

g-cont
> Да что он вам сделал? Детство испортил?

Он мешает насладится крутизной-пупизной

#13
13:24, 5 июля 2017

Human
> Почему считается, что отдельные треугольники быстрее квадратов будут? Ведь
> чтобы нарисовать 1 квадрат, надо 2 треугольника, и передать на видеокарту
> потребуется 6 точек, когда у квадрата только 4.
Нет. Чтобы нарисовать квадрат нужно 4 вершины в любом случае.

#14
14:45, 5 июля 2017

Чтобы нарисовать квадрат совместимо с тем, как исторически работает GL_QUAD, надо четыре треугольника, иначе интерполяция даст для центра совсем не то, как оно работает.

Два треугольника достаточны только для параллелепипеда или ромба. Трапеция выйдет отекстуренной через жопу.

Начертите трапецию, на которую натянута квадратная текстура, потом поделите её на два треугольника, и прикиньте, куда придётся центр координат при линейной интерполяции вдоль общего отрезка. Сюрприз: он окажется в центре отрезка, который НЕ совпадает с центром трапеции, а будет заметно сбоку. Отсюда торчат уши у перекошенных текстур на пушках и прочих лоу-поли моделях в первом и втором квейке.

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

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.