HLFX.Ru Forum Страницы (264): « Первая ... « 130 131 132 133 [134] 135 136 137 138 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Crystallize 23-10-2019 в 12:09:

Так, я в HUD_DrawTransparentTriangles
Функции отрисовки типа pglVertex которые должны принимать вектор, ничего не рисуют, могут только обнулить его позицию и нарисовать всё в таком виде. Работают только те для которых ручками указываешь три координаты.
Рисуемый примитив-ну там линия или квад-заливается однотонно и цвет по непонятному принципу меняется если ходишь вокруг. Обычно цвет похож на цвет скайбокса, но может быть также чисто чёрным или чисто белым. Если указан GL_Bind с любой текстурой, то примитив красится разными оттенками фиолетового.
Потом я додумался заюзать TexCoord и выяснилось следующее: без бинда квад красится текстурой со скайбокса

если подойти ближе-то весёлой мешаниной текстур оружия

Если с биндом то рисуется эмарская молния какая-то, и поверх неё ещё одна

судя по всему мип-уровень, он исчезает если убрать фильтрацию


Отправлено ncuxonaT 23-10-2019 в 12:27:

glDisable(GL_TEXTURE_2D) не поможет?


Отправлено Crystallize 23-10-2019 в 12:48:

Некий эффект есть, но объект всё равно однотонный.

Добавлено 23-10-2019 в 19:40:

Ага, значит всё-таки нужен ShadeModel.

Добавлено 23-10-2019 в 19:42:

А GL_MODULATE даже и не нужен.

Добавлено 23-10-2019 в 19:48:

У меня получился красивый радужный квадратик, новсё-таки непонятно как это применить на практике если оно не хочет принимать на вход имена векторов.


Отправлено Дядя Миша 23-10-2019 в 13:03:

Цитата:
Crystallize писал:
Так, я в HUD_DrawTransparentTriangles

Доложите обстановку!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 23-10-2019 в 17:20:

Разобрался, вертекс должен быть объявлен как глобальная переменная, тогда он не будет пропадать.
Кстати, из какого-месте можно вывести ALERT чтобы посмотреть как сам GL видит ситуацию?


Отправлено Дядя Миша 23-10-2019 в 17:51:

Цитата:
Crystallize писал:
Кстати, из какого-месте можно вывести ALERT чтобы посмотреть как сам GL видит ситуацию?

запустить ксаш с -gldebug.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 23-10-2019 в 18:24:

Ничего особенного не произошло почему-то.


Отправлено Дядя Миша 23-10-2019 в 19:40:

Crystallize а что должно было произойти? Если бы ты накосячил, в консоли бы полезли ошибки. Раз молчит, значит порядок.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 25-10-2019 в 13:38:

Дядя Миша когда я косячил, подсовывая GL-у вертекс который GL не мог отрисовать потому что тот был задан локально объявленным вектором, то GL просто рисовал белиберду и не выдавал никаких ошибок. Я вчера воссоздавал ситуацию.


Отправлено Дядя Миша 25-10-2019 в 16:25:

Если ты задаёшь вертексы через glVertex3f, то не имеет никакого значения локальные они или глобальные. Значит ты через указатель что-то там передавал.

Цитата:
Crystallize писал:
GL просто рисовал белиберду и не выдавал никаких ошибок

Так он не знает, может ты и хотел это нарисовать. Чтобы полезли ошибки надо передавать невалидные параметры.

Добавлено 25-10-2019 в 19:25:

вот к примеру засунь в glBlendFund первым параметром GL_ALPHA - вот тебе и будет ошибка.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 26-10-2019 в 09:04:

Цитата:
Дядя Миша писал:
Если ты задаёшь вертексы через glVertex3f, то не имеет никакого значения локальные они или глобальные. Значит ты через указатель что-то там передавал.

Да не умею я указатели ещё.
Так, тут при изменении единственной координаты две другие начинают жить своей жизнью, т.е. например нарисовать плоский "бумеранг" из 4 вершин я не могу. OpenGL пытается сохранить фигуру конвексной и для этого оставляет за собой право деформировать её?

Добавлено 26-10-2019 в 16:04:

Бред какой-то, при изменении Z у всех четырёх вершин одинаково, одна из них начинает плыть по XY и в какой-то момент у всей фигуры инвертируется нормаль.


Отправлено nemyax 26-10-2019 в 09:29:

Цитата:
Crystallize писал:
нарисовать плоский "бумеранг" из 4 вершин я не могу

Рисуй два треугольника или веер или стрип. Только с порядком вершин не напутай.


Отправлено Дядя Миша 26-10-2019 в 10:27:

Цитата:
Crystallize писал:
OpenGL пытается сохранить фигуру конвексной



Ты бы книжку какую почитал что ли. Ну самое простое. Нарисуй на листе бумаги три точки и соедини их так чтобы получился треугольник.
Очевидно, что соединять надо в определённом порядке, иначе может получится не треугольник. Как по твоему GL должен догадаться в каком порядке соединять вершины? Ну очевидно по очереди их поступления. Ему нельзя просто от балды скормить три рандомных вертекса, чтобы он сам догадался как из этого сделать валидный треугольник. Сам GL знает только одну опцию - рисовать их по часовой или против часовой стрелки, всё.
По дефолту против часовой. То есть, если представить себе треугольник, с основанием внизу и вписать его в циферблат, будет примерно такой порядок 12-8-4.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 26-10-2019 в 10:41:

Цитата:
Дядя Миша писал:
Очевидно, что соединять надо в определённом порядке, иначе может получится не треугольник.

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

__________________

xaerox on Vivino


Отправлено Crystallize 26-10-2019 в 11:20:

Дядя Миша Я уголки квада рисовал так, что пары XY в столбик шли как бы лесенкой:
0 0
0 99
99 0
99 99
Не будем брать квады, возьмем простейший пример с линиями:

C++ Source Code:
1
pglDisable (GL_TEXTURE_2D);
2
pglLineWidth(5.0f);
3
Vector vec1, vec2;
4
vec1 =	(0.0, 0.0, -95.0);
5
vec2 =	(0.0, 99.0, -95.0);
6
 
7
pglBegin( GL_LINES);
8
 
9
pglVertex3fv ( vec1 );
10
pglVertex3f( 99.0, 99.0, -95.0 );
11
 
12
pglVertex3fv (vec2);
13
pglVertex3f( 99.0, 0.0, -95.0 );
14
 
15
pglEnd();

Все координаты разные. Результат:


Временная зона GMT. Текущее время 14:50. Страницы (264): « Первая ... « 130 131 132 133 [134] 135 136 137 138 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024