Заказ вершин WebGL

Я очень новичок в WebGL, и у меня есть вопрос о порядке вершин. При создании куба вершины будут выглядеть так:

var vertices = [
// Front face
-1.0, -1.0,  1.0,
 1.0, -1.0,  1.0,
 1.0,  1.0,  1.0,
-1.0,  1.0,  1.0,

// Back face
-1.0, -1.0, -1.0,
-1.0,  1.0, -1.0,
 1.0,  1.0, -1.0,
 1.0, -1.0, -1.0,

// Top face
-1.0,  1.0, -1.0,
-1.0,  1.0,  1.0,
 1.0,  1.0,  1.0,
 1.0,  1.0, -1.0,

// Bottom face
-1.0, -1.0, -1.0,
 1.0, -1.0, -1.0,
 1.0, -1.0,  1.0,
-1.0, -1.0,  1.0,

// Right face
 1.0, -1.0, -1.0,
 1.0,  1.0, -1.0,
 1.0,  1.0,  1.0,
 1.0, -1.0,  1.0,

// Left face
-1.0, -1.0, -1.0,
-1.0, -1.0,  1.0,
-1.0,  1.0,  1.0,
-1.0,  1.0, -1.0
];

Могу ли я переставить порядок этих вершин в любой, какой я захочу, или они должны быть в определенном порядке?

1 ответ

Порядок вершин зависит от параметров отбраковки треугольника и порядка, в котором нарисованы треугольники.

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

В зависимости от варианта, выбранного вами для gl.cullface( option )У вас есть разные отбраковки треугольников. Таким образом, это влияет на порядок вершин.

Другим важным аспектом, который нужно учитывать, является порядок нарисованных треугольников / примитивов. В вашем приложении могут быть разные требования, поэтому может потребоваться предварительно упорядочить треугольники, которые нужно нарисовать, чтобы это также могло повлиять на порядок вершин. Одним из таких примеров является рисование прозрачных примитивов. Существует много проблем со смешиванием прозрачных примитивов, поэтому нужно позаботиться о них. Для более проницательного прямого примера прочитайте это.

Надеюсь, что это поможет вам понять, как порядок вершин может или не может быть важным.

Другие вопросы по тегам