Так, я в HUD_DrawTransparentTriangles
Функции отрисовки типа pglVertex которые должны принимать вектор, ничего не рисуют, могут только обнулить его позицию и нарисовать всё в таком виде. Работают только те для которых ручками указываешь три координаты.
Рисуемый примитив-ну там линия или квад-заливается однотонно и цвет по непонятному принципу меняется если ходишь вокруг. Обычно цвет похож на цвет скайбокса, но может быть также чисто чёрным или чисто белым. Если указан GL_Bind с любой текстурой, то примитив красится разными оттенками фиолетового.
Потом я додумался заюзать TexCoord и выяснилось следующее: без бинда квад красится текстурой со скайбокса
если подойти ближе-то весёлой мешаниной текстур оружия
Если с биндом то рисуется эмарская молния какая-то, и поверх неё ещё одна
судя по всему мип-уровень, он исчезает если убрать фильтрацию
Разобрался, вертекс должен быть объявлен как глобальная переменная, тогда он не будет пропадать.
Кстати, из какого-месте можно вывести ALERT чтобы посмотреть как сам GL видит ситуацию?
Дядя Миша когда я косячил, подсовывая GL-у вертекс который GL не мог отрисовать потому что тот был задан локально объявленным вектором, то GL просто рисовал белиберду и не выдавал никаких ошибок. Я вчера воссоздавал ситуацию.
Дядя Миша писал: Если ты задаёшь вертексы через glVertex3f, то не имеет никакого значения локальные они или глобальные. Значит ты через указатель что-то там передавал.
Да не умею я указатели ещё.
Так, тут при изменении единственной координаты две другие начинают жить своей жизнью, т.е. например нарисовать плоский "бумеранг" из 4 вершин я не могу. OpenGL пытается сохранить фигуру конвексной и для этого оставляет за собой право деформировать её?
Добавлено 26-10-2019 в 16:04:
Бред какой-то, при изменении Z у всех четырёх вершин одинаково, одна из них начинает плыть по XY и в какой-то момент у всей фигуры инвертируется нормаль.
Crystallize писал: OpenGL пытается сохранить фигуру конвексной
Ты бы книжку какую почитал что ли. Ну самое простое. Нарисуй на листе бумаги три точки и соедини их так чтобы получился треугольник.
Очевидно, что соединять надо в определённом порядке, иначе может получится не треугольник. Как по твоему GL должен догадаться в каком порядке соединять вершины? Ну очевидно по очереди их поступления. Ему нельзя просто от балды скормить три рандомных вертекса, чтобы он сам догадался как из этого сделать валидный треугольник. Сам GL знает только одну опцию - рисовать их по часовой или против часовой стрелки, всё.
По дефолту против часовой. То есть, если представить себе треугольник, с основанием внизу и вписать его в циферблат, будет примерно такой порядок 12-8-4.
Дядя Миша Я уголки квада рисовал так, что пары XY в столбик шли как бы лесенкой:
0 0
0 99
99 0
99 99
Не будем брать квады, возьмем простейший пример с линиями: