Применение цветов в общих вершинах

int x = 100;
int y = 100;
int width = 250;
int height = 250;
int border = 10;

int top     = y + border;
int bottom  = y + height;
int left    = x + border;
int right   = x + width;

static int vertices[] = {
x,                  y,                  //0
right,              y,                  //1
right,              bottom,             //2
x,                  bottom,             //3

left,               top,                //4
right - border,     top,                //5
right - border,     bottom - border,    //6
left,               bottom - border,    //7

left,               top + (height - border - border) * 0.5,
right - border,     top + (height - border - border) * 0.5
};static unsigned int indices[] = {
0, 1, 4, 5, //top border
5, 1, 6, 2, //right border
2, 6, 3, 7, //bottom border
7, 4, 3, 0, //left border

4, 5, 8, 9,
8, 9, 7, 6,
};

static unsigned char colors[] = {
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,

0xff, 0x00, 0x00,
0xff, 0x00, 0x00,
0xff, 0x00, 0x00,
0xff, 0x00, 0x00,

0x00, 0xff, 0x00,
0x00, 0xff, 0x00,
0x00, 0xff, 0x00,
0x00, 0xff, 0x00,

0x00, 0x00, 0xff,
0x00, 0x00, 0xff,
0x00, 0x00, 0xff,
0x00, 0x00, 0xff,
};

Мой текущий нежелательный вывод:

введите описание изображения здесь

Можно ли применить один цвет на одном квадре в такой реализации?

0

Решение

Это распространенное заблуждение, что «Вертекс» означает «позиция». Вершина — это целая комбинация ее атрибутов, включая их положение, цвет, координату текстуры и т. Д. И т. Д. Если один из атрибутов между двумя вершинами отличается, вершины не совпадают.

Если вы хотите дать двум четырехугольникам разные сплошные цвета, они не разделяют вершины.

Я думаю, что остальное должно быть очевидным.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]