HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Рисование линий на экране через TriAPI
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Рисование линий на экране через TriAPI

Думал, что все окажется прозрачно и просто, но возникла одна проблема
Есть такой вот код для рисования, который вызывается из HUD_DrawTransparentTriangles()

C++ Source Code:
1
g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal);
2
g_pClientEngFuncs->pTriAPI->Brightness(1.0f);
3
g_pClientEngFuncs->pTriAPI->CullFace(TRI_NONE);
4
 
5
g_pClientEngFuncs->pTriAPI->Begin(TRI_LINES);
6
g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255);
7
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA);
8
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB);
9
 
10
g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255);
11
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA);
12
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB);
13
g_pClientEngFuncs->pTriAPI->End();
14
 
15
g_pClientEngFuncs->pTriAPI->CullFace(TRI_FRONT);
16
g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal);


Линии рисуются, но проблема в том, что цвета её меняются абсолютно рандомно, когда я перемещаюсь по карте или двигаю камерой стоя на месте.
Что я сделал не так?

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 195465

Старое сообщение 07-07-2020 07:42
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Таки разобрался с этой проблемой.
Пришлось в проект подключить заголовочные файлы виндусных gl-функций.

C++ Source Code:
#include <gl/GL.h>


Затем, код который я изначально приводил как пример, обрёл такой вид
C++ Source Code:
1
glDisable(GL_TEXTURE_2D);
2
g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal);
3
g_pClientEngFuncs->pTriAPI->Brightness(1.0f);
4
g_pClientEngFuncs->pTriAPI->CullFace(TRI_NONE);
5
g_pClientEngFuncs->pTriAPI->Begin(TRI_LINES);
6
g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255);
7
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA);
8
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB);
9
g_pClientEngFuncs->pTriAPI->Color4ub(255, 255, 255, 255);
10
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointA);
11
g_pClientEngFuncs->pTriAPI->Vertex3fv(m_vecPointB);
12
g_pClientEngFuncs->pTriAPI->End();
13
g_pClientEngFuncs->pTriAPI->CullFace(TRI_FRONT);
14
g_pClientEngFuncs->pTriAPI->RenderMode(kRenderNormal);
15
glEnable(GL_TEXTURE_2D);


И всё, цвета перестали моргать и произвольно меняться!
Т.е. учитывая всё сделанное выше, TriAPI в GoldSrc не позволяет нормально рисовать линии без использования сторонних средств. Но вот этот фикс в подавляющем большинстве случаев сработает.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 195707

Старое сообщение 15-07-2020 04:33
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34509
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
SNMetamorph писал:
TriAPI в GoldSrc не позволяет нормально рисовать линии без использования сторонних средств

g_pClientEngFuncs->pTriAPI->SpriteTexture c white.spr?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 195708

Старое сообщение 15-07-2020 05:26
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
XaeroX писал:
g_pClientEngFuncs->pTriAPI->SpriteTexture c white.spr?

О, ну это тоже наверняка сработать должно. Не знал про этот костыль.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 195714

Старое сообщение 15-07-2020 10:09
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Почему костыль? Я и в OpenGL так частенько рисую. Когда не хочется выключать текстуру.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 195715

Старое сообщение 15-07-2020 10:57
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2088

Рейтинг



Дядя Миша переключение текстуры менее затратно, чем выключение?

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195724

Старое сообщение 16-07-2020 07:11
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



KiQ Просто чтобы стейт не сбивать.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 195728

Старое сообщение 16-07-2020 09:55
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 21:32. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Рисование линий на экране через TriAPI
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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