![]() |
Страницы (32): « Первая ... « 27 28 29 30 [31] 32 » Показать все 479 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=6097)
Crystallize так он и так отдельный.
Ну что же. Продолжаю страдать с миграцией на Core Profile (дежурно замечу, что с миграцией на Вулкан страдания можно смело умножать на 10 или даже на 100). Прикол в том что тривиальнейшие вещи превращаются в какое-то законченное мозгоёбство. Ну вот помните функцию ещё из халфы - FillRGBA? Цветную полосочку нарисовать или квадратег там. Ну чёт такое.
Что может быть проще? В Core Profile этого нельзя в принципе. Это должна быть полноценная геометрия в VBO и с шейдером. А шейдеры у меня без материалов не рисуются в принципе. Тут конечно следует оговориться.
Да, я мог бы конечно нарисовать какие-то вещи прямо внутри движка, захардкодить, даже мог бы шейдеры встроить прямо в бинарник, но это идёт вразрез с моей концепцией. Не нужно мне такого, вот оно что.
Так что - в общем порядке. Грёбанный дефолтный материал со встроенной текстурой *white и погнали. Тварство.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
А ты можешь высчитать PPI для разрешения?
Поидее так:
новый поинтсайз = опорный поинтсайз * (новый PPI/опорный PPI).
Например у нас опорный поинтсайз 12pt.
Опорное разрешение 1920x1080 (96 PPI)
Новое разрешение 3840x2160 (192 PPI)
Тогда новый поинтсайз = 12 * (192/96) = 24 pt.
Но чтобы рассчитать PPI нужно знать диагональ экрана, возможно ли программно её получить из драйвера?
Нейронка предложила следующее:
1 | #include <windows.h> |
2 | #include <iostream> |
3 | #include <cmath> |
4 |
5 | int main() { |
6 | // Получаем разрешение экрана в пикселях |
7 | int screenWidth = GetSystemMetrics(SM_CXSCREEN); |
8 | int screenHeight = GetSystemMetrics(SM_CYSCREEN); |
9 |
10 | // Получаем физический размер экрана в миллиметрах |
11 | HDC hdc = GetDC(NULL); |
12 | int widthMM = GetDeviceCaps(hdc, HORZSIZE); |
13 | int heightMM = GetDeviceCaps(hdc, VERTSIZE); |
14 | ReleaseDC(NULL, hdc); |
15 |
16 | // Вычисляем диагональ в дюймах |
17 | double diagonalMM = std::sqrt(widthMM * widthMM + heightMM * heightMM); |
18 | double diagonalInches = diagonalMM / 25.4; |
19 |
20 | // Вычисляем PPI |
21 | double PPI = std::sqrt(screenWidth * screenWidth + screenHeight * screenHeight) / diagonalInches; |
22 |
23 | // Выводим результат |
24 | std::cout << "Screen Resolution: " << screenWidth << "x" << screenHeight << std::endl; |
25 | std::cout << "Physical Size: " << widthMM << "x" << heightMM << " mm" << std::endl; |
26 | std::cout << "Diagonal: " << diagonalInches << " inches" << std::endl; |
27 | std::cout << "PPI: " << PPI << std::endl; |
28 |
29 | return 0; |
30 | } |
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Стоит ли расчитывать на разметку для UI пока ты им занялся? У тебя же уже есть свой аналог json, можно его использовать для разметки.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Итак, я полностью переработал концепцию движковых шрифтов, изменил их формат, снял некоторые ограничения, добавил мета-информацию и заставил всё это рисоваться с использованием системы материалов и кастомных шейдеров. Отдельно хочу отметить тот факт, что мне даже удалось сохранить нетронутой отрисовку в движке, что на первый взгляд было довольно непросто сделать. То есть движок рендерит ряд вещей, которые используются для отладки, а так же пресловутый FillRGBA. И ещё кадры видео. Разумеется мне совершенно не хотелось завязывать это внутри движка с системой материалов. Ибо материалы, как вы понимаете - они пользовательские. То есть у нас бы наружу торчали материалы, которые грузит и использует сам движок, а не пользователи.
Кто-то конечно скажет - да ну ерунда, такое у всех есть, но мне эта ситуация не нравилась изначально. Что движок что-то там такое грузит.
В то же время никакой хард-код внутри движка мне тоже делать совершенно не хотелось и я не стал его делать. На данный момент движок грузит ровно один уникальный материал под названием *fixedpipeline который используется для рендеринга всяких вещей, не нуждающихся в специализированном материале. То есть, проще говоря, я сэмулировал FFP в ограниченном объеме, прямо внутри движка. В принципе система получилась прозрачная и пользователям она мешать не должна. Так что с 2D отрисовкой слава богу всё получилось и устаканилось.
Следующий шаг - нарисовать через шейдеры и материалы отладочную геометрию. Но возможно что-то из нее придётся и выбросить за ненадобностью, будем посмотреть.
Добавлено 12-03-2025 в 18:32:
Вообще, в дальнейшем, если мне понадобится подгрузить дополнительные материалы из движка (ещё один или два), то я так и буду использовать звезду в качестве индикатора системности.
Добавлено 12-03-2025 в 18:48:
После того как я переведу отладочную отрисовку на VAO + шейдеры можно будет наконец-то подвести итоги по вышенаписанному и двигаться дальше.
Добавлено 12-03-2025 в 19:43:
Провёл ревизию отладочной визуализации. Насчитал 7 (СЕМЬ) не связанных друг с другом систем. Охренеть конечно. Буду сокращать, выбрасывать ненужное, нужное объединять с другим. В идеале конечно бы оставить одну, но к сожалению не получится. Впрочем поглядим.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Потихоньку осваиваю появившиеся возможности для двухмерного рендеринга. Добавил разные материалы, кстати появилась возможность менять цвета в превьюшках модели игрока через палитру. Top и Bottom color.
Раньше это работало только для самих моделек, т.е. в 3D.
Сделал предварительную ревизию отладочной отрисовки - выбросил поддержкку .pts файлов (это где описана утечка на уровне с помощью точек). Устаревшая штука, .lin файлы гораздо лучше с этим справляются.
Так же выбросил всю визуализацию коллизии. Толку от нее всегда было немного. В силу устройства коллижен детектора в XashNT, единственное место, где что-то могло пойти не так - это стадия децимации-симплификации треугольников. Ну и за пять лет я выловил единственный такой случай - в квейке на e1m2 перед дверью, закрытой серебрянным ключом внезапно вырос лишний треугольник. Сделал чуть более строгие правила для децимации - баг прошёл. А что же касается мест, где игрок внезапно проваливается под уровень из-за того, что он как бы подныривает под плоскость, то помочь в их обнаружении данная визуализация всё равно не могла. Но при этом потребляла довольно много памяти на хранение и время при загрузке на построение. Да и код, который для этого использовался вообщем-то больше был нигде неприменим.
Так что выбросил.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 07:58. | Страницы (32): « Первая ... « 27 28 29 30 [31] 32 » Показать все 479 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024