HLFX.Ru Forum
Показать все 7 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Рисование линий на экране через TriAPI (https://hlfx.ru/forum/showthread.php?threadid=5536)


Отправлено SNMetamorph 07-07-2020 в 07:42:

Рисование линий на экране через 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);


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

__________________
Мой сайт
Xash3D Modding Discord


Отправлено SNMetamorph 15-07-2020 в 04:33:

Таки разобрался с этой проблемой.
Пришлось в проект подключить заголовочные файлы виндусных 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 не позволяет нормально рисовать линии без использования сторонних средств. Но вот этот фикс в подавляющем большинстве случаев сработает.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено XaeroX 15-07-2020 в 05:26:

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

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

__________________

xaerox on Vivino


Отправлено SNMetamorph 15-07-2020 в 10:09:

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

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

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 15-07-2020 в 10:57:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 16-07-2020 в 07:11:

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

__________________
-Brain is dead-


Отправлено Дядя Миша 16-07-2020 в 09:55:

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

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 13:52.
Показать все 7 сообщений этой темы на одной странице

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