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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Нубские вопросы (https://hlfx.ru/forum/showthread.php?threadid=2218)


Отправлено qpAHToMAS 30-06-2010 в 10:34:

Question Нубские вопросы

Я никогда не работал ни с OpenGL, ни с C++, ни с какими подобными гигантами программной части, которые используются для создания 3D игр, хотя бы уровня Half-life: Counter-Strike.
По этому позвольте в этой теме я буду задавать вопросы, которые так или иначе связаны с графической и технической частью создания игр. В качестве ответов так же принимаются ссылки на небольшие статьи (не книги).

  1. Всю 3D графику на экран игры выводит OpenGL, а каким образом рисуются 2D объекты, т.е. тексты, спрайты на экране, меню и т.д., тоже OpenGL функции?
  2. Для OpenGL нет разницы что рисовать, пусть это модель или карта? Т.е. везде используется одна система: считывание координат фигур из файла и их воспроизведение в 3D мире?
  3. Почему используются текстуры определенных размеров (16x16, 64x64 и т.д.)? Легче для видеокарты?
  4. OpenGL работает со светом и тенями? Как это вообще реализуется (светлые и темные области уровня)?


Отправлено Дядя Миша 30-06-2010 в 13:03:

1. 2D объекты выводятся прямо перед камерой в ортогональной проекции.
Теми же самыми методами отрисовки.
2. Больше скажу - ОпенГЛ ни сном ни духом ни про какие-то там модели или карты. Это всего лишь слой абстракции для удобства конечного пользователя. Если будет надо - можно с таким же успехом вкомпилить в приложение набор вертексов и текстур и точно так же вывести на экран.
Так иногда поступают в демках физических движков - например модельку кролика зашивают в exe.
3. В принципе новые карточки поддерживают NON Power of two текстуры.
Но лучше не рисковать. Две-три сильно некратные текстуры способны просадить фпс до нуля.
4. Это смотря что понимать под работой со светом и тенями. Если на мапперском уровне - поставил лампочку на карту и включил её, то подобные методы там тоже есть, но они как правило медленные и кол-во источников ограничено шестью-семью. То что мы нарисовали без освещения можно либо затемнить либо еще больше засветить.
Попиксельное затемнение достигается наложением лайтмап на геометрию уровня (умножением яркости лайтмапы на текстуру). Можно делать вертексное освещение (регулировать цвет вертексов). Можно наконец в реалтайме тени накладывать, либо делать засветку простым сложением яркости. Да много методов вообщем.
Вот про модели освещения почитай, если интересно:
http://steps3d.narod.ru/tutorials/l...g-tutorial.html

__________________
My Projects: download page

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

Цитата:

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


Отправлено maxbars 30-06-2010 в 13:04:

Цитата:
qpAHToMAS писал:
Всю 3D графику на экран игры выводит OpenGL, а каким образом рисуются 2D объекты, т.е. тексты, спрайты на экране, меню и т.д., тоже OpenGL функции?

Вообще-то есть такая штука, называется растровые шрифты...Тоже средствами opengl реализовано.

2.
ИМХО нет.

3.Сам незнаю.
4.ДА. Светлые создается источник света, темные отбрасывание теней и всё.

__________________
ьфч


Отправлено qpAHToMAS 01-07-2010 в 13:22:

Спасибо за ответ(ы) .

Цитата:
Дядя Миша писал:
2D объекты выводятся прямо перед камерой в ортогональной проекции.
Теми же самыми методами отрисовки.

Удивительно и в тоже время страшно представить как же высчитываются их координаты ("в углу экрана", "от угла на 5 пикселей" и т.д.).
Если спрайт, например, того же радара в CS — это плоскость, то что из себя представляют такие сложные элементы, как консоль, главное меню настроек в том же CS или Option Implicit?

Еще вопросы:
  1. На сколько я понимаю, что бы такая громадная штука как игра работала, надо использовать множество потоков? В одном обрабатывается физика на всем уровне, в другом: поведение игрока со стороны клиента, в прочих: поведение AI и т.д. Это действительно так (уж очень сложно)?
  2. Коллизии и физика в целом напрямую работают с OpenGL, что бы например просчитывать столкновение камеры с картой (как в QuakeIII в режиме наблюдения нельзя летать сквозь карту)?


Отправлено BUzer 01-07-2010 в 13:40:

qpAHToMAS

Цитата:
Удивительно и в тоже время страшно представить как же высчитываются их координаты ("в углу экрана", "от угла на 5 пикселей" и т.д.).

Ничего такого самому высчитывать не надо, всё гораздо проще.
Цитата:
На сколько я понимаю, что бы такая громадная штука как игра работала, надо использовать множество потоков?

Вовсе нет. Обычно, если к игре прикручивают многопоточность, то это для того, чтобы что-нибудь оптимизировать (использовать многоядерность, или что-нибудь загружать в фоне)
Цитата:
Коллизии и физика в целом напрямую работают с OpenGL

Физика не имеет никакого отношения к опенгл.


Отправлено Дядя Миша 01-07-2010 в 15:35:

Цитата:
qpAHToMAS писал:
Удивительно и в тоже время страшно представить как же высчитываются их координаты ("в углу экрана", "от угла на 5 пикселей" и т.д.).

А что в этом страшного? У тебя есть четыре глобальных координаты - четыре угла экрана. От них обычно все и пляшут.
Надо нам, к примеру. нарисовать иконку фонарика, так и пишем:
От правого края экрана отступ минус 10 пикселей.
И от верха плюс 10. (0,0 обычно считается за левый верхний угол экрана).
Цитата:
qpAHToMAS писал:
Если спрайт, например, того же радара в CS — это плоскость, то что из себя представляют такие сложные элементы, как консоль, главное меню настроек в том же CS или Option Implicit?

Не поверишь - точно такие же плоскости.
Консоль - это картинка, на которую "мовевитчем" привязаны буквы.
Цитата:
qpAHToMAS писал:
надо использовать множество потоков

Потоки как правило виртуальные, по типу тчинков в той же халфе.
Настоящие потоки очень муторно использовать из-за синхронизации.
К тому же код, отлично работающий на одной платформе, может давать сбои на другой.

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 03-07-2010 в 10:20:

Цитата:
Дядя Миша писал:
Потоки как правило виртуальные, по типу тчинков в той же халфе.

Что-то ничего нагуглить нормального про эти "Виртуальные потоки" не могу , есть какая-нибудь ссылка на теоретическое объяснение того, что это такое и чем они отличаются от обычных, полностью отдельных потоков?

Цитата:
BUzer писал:
Физика не имеет никакого отношения к опенгл.

Видимо все "твердотельные" зоны 3D уровня имеют отдельное место в памяти и уже с этими данными работают всякие коллизии . Я то думал что можно прям так рулить:
code:
если(opengl_плоскость_на_пути) { действие }


Отправлено Government-Man 03-07-2010 в 16:03:

qpAHToMAS можно одни и те же плоскости (точнее говоря - полигоны) скармливать как опенгл так и физическому движку. Не такого понятия как опенгл-плоскость. Плоскость она плоскость и есть. А вообще в современных играх обычно физическая модель хранится отдельно от визуальной и представляет из себя более упрощенную, низкополигональную модель.


Отправлено PoD-Stas 03-07-2010 в 16:04:

qpAHToMAS ОпенГЛу нет дела до того, что творит физический движек с координатами. ОпенГЛ только и делает, что выводит инструкции, котоpые ему даются.


Отправлено Дядя Миша 03-07-2010 в 18:30:

Цитата:
qpAHToMAS писал:
Что-то ничего нагуглить нормального про эти "Виртуальные потоки" не могу

ну я может быть неудачно выразился. Ну ты тчинки видел в хл1 ? А систему тчинков в хл2? Вот это оно и есть.
Цитата:
qpAHToMAS писал:
если(opengl_плоскость_на_пути) { действие }

жэсть.
А если директ3Д или софтвар, тогда што?
Цитата:
Government-Man писал:
можно одни и те же плоскости (точнее говоря - полигоны) скармливать как опенгл так и физическому движку

На кой чёрт опенглу плоскости? Они нужны только на этапе отсечения невидимых полигонов ну и для физики конечно.
Цитата:
Government-Man писал:
А вообще в современных играх обычно физическая модель хранится отдельно от визуальной и представляет из себя более упрощенную, низкополигональную модель.

Например - в первокваке или халфе

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 03-07-2010 в 18:44:

Цитата:
Дядя Миша писал:
На кой чёрт опенглу плоскости?


В данном случае как я понял, автор под "плоскостями" подразумевал полигоны.


Отправлено qpAHToMAS 04-07-2010 в 04:38:

Цитата:
Дядя Миша писал:
ну я может быть неудачно выразился. Ну ты тчинки видел в хл1 ? А систему тчинков в хл2? Вот это оно и есть.

Не видел . HL знаю как игрок и маппер, не больше этого.

Цитата:
Government-Man писал:
В данном случае как я понял, автор под "плоскостями" подразумевал полигоны.

Да, именно так.

Ок, остановлюсь на том, что OpenGL графика и только, а физика, которая взаимодействует с уровнем — совсем другая песня.


Отправлено qpAHToMAS 08-07-2010 в 15:13:

Дядя Миша, и все же не знание того, что такое "тчинки" мне не дает покоя, объясни пожалуйста.


Отправлено Government-Man 08-07-2010 в 15:37:

qpAHToMAS это всего лишь функции в которых выполняется логика энтить в хл (от англ. think - "думать"). В хл можно устанавливать функцию которая будет вызвана в следующий раз: SetThink( MyCoolThink ); и время вызова: pev->nextthink = gpGlobals->time + 0.5f;

"Виртуальными потоками" я бы эту систему не назвал...
К опенгл она тем более не имеет никакого отношения.


Отправлено qpAHToMAS 08-07-2010 в 16:47:

Government-Man, на сколько я понял — это простой поток, только в его начале стоит пауза, которую не допустимо было бы поставить в место, откуда вызывается функция.


Отправлено Government-Man 08-07-2010 в 16:50:

qpAHToMAS это вообще к потокам никакого отношения не имеет. Это просто вызов определенной ф-ии в определенный момент времени. Я не знаю почему Дядя Миша назвал это "виртуальными потоками".


Отправлено Дядя Миша 08-07-2010 в 18:30:

Government-Man потому что это и есть потоки
Они же вызываются независимо друг от друга.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 08-07-2010 в 18:49:

qpAHToMAS короче суть такова: движок при каждом обновлении мира просматривает pev->nextthink у ентить. Если оно >= текущее_время, то вызывается DispatchThink( ентитя ). Это не "настоящие" потоки но при определенном уровне пространственного воображения можно представить что это они и есть да...


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

Я и не говорил что настоящие. Я сказал - виртуальные

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 10-07-2010 в 08:49:

Цитата:
Дядя Миша писал:
Не поверишь - точно такие же плоскости.

А прицел (перекрестие) в CS? Это походу какая-то OpenGL фишка, позволяющая рисовать на верхнем слое? Не плоскости шириной в 1 пиксель же?


Отправлено BeFore 10-07-2010 в 09:37:

qpAHToMAS
Это FillRGBA вроде.


Отправлено Дядя Миша 10-07-2010 в 11:54:

Какие еще верхние слои, какие OpenGL фишки
Не надо себе разную ерунду фантазировать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 10-07-2010 в 14:11:

/me фантазирует дальше.


Отправлено PoD-Stas 10-07-2010 в 17:20:

qpAHToMAS повторюсь, ОпенГЛу пофиг, что рисовать. Ему от движка поступает набор координат, и параметры цвета...


Отправлено Дядя Миша 10-07-2010 в 20:31:

PoD-Stas да много чего поступает, вообщем-то.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 11-07-2010 в 01:39:

qpAHToMAS рекомендую ознакомиться с понятием трансформации и с понятием прозрачности.


Отправлено PoD-Stas 11-07-2010 в 07:44:

Дядя Миша это абстрактно


Отправлено Дядя Миша 11-07-2010 в 10:20:

PoD-Stas тыб еще сказал - Готишно!

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 30-08-2010 в 12:43:

Почему в играх используются разные типы "детальных текстур"? Вот например, разные цвета у текстур из одной и той же игры:

Метод работы ведь един? Или определенный цвет играет роль определенного материала в игре? Т.е. обрабатывается по другому?


Отправлено Дядя Миша 30-08-2010 в 13:59:

qpAHToMAS ни в коем случае не говори название игры - так мы быстрее ответим на твой вопрос

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 30-08-2010 в 14:10:

qpAHToMAS
Ты какой то непонятный, спрашиваешь про детальные текстуры, а в аттаче DUDV и карта нормалей .
З.Ы. переведи одну из картинок в негатив, результат тебя удивит .

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено qpAHToMAS 31-08-2010 в 05:00:

FiEctro, я думал, что все эти текстуры одинаковые по технике обработке , спасибо за их названия, теперь понял что к чему.


Отправлено Ku2zoff 31-08-2010 в 14:12:

qpAHToMAS что-то ты совсем не то пишешь. OpenGL как и Direct3D это как бы переводчик с языка приложения на язык графического процессора. И как писал PoD-Stas "ОпенГЛу пофиг, что рисовать." Прицел в кс рисуется с помощью FillRGBA. Это движковая функция, она отношения к OpenGL не имеет. Есть набор движковых функций, отвечающих за рисование чего-либо.
Можно написать, чтобы они обращались напрямую к Директу или ГЛу (код отрисовки написан в самой функции), а можно чтобы был выбор через условие, что собственно сделано в ХЛ. Хотя нет, там механизм несколько извращённый. Вот в унреале есть отдельный рендер для ГЛ и отдельный для Д3Д, поэтому и в том и в другом режиме всё робит шустро. А в хл директ тормознутый, не спрашивай почему, лучше погугли.


Отправлено Government-Man 31-08-2010 в 14:48:

Цитата:
Ku2zoff писал:
А в хл директ тормознутый


А вот на моей видяхе все строго наоборот.


Отправлено Дядя Миша 31-08-2010 в 15:45:

Цитата:
Ku2zoff писал:
OpenGL как и Direct3D это как бы переводчик с языка приложения на язык графического процессора

Есть такое понятие, как аппаратная поддержка.
Цитата:
Government-Man писал:
А вот на моей видяхе все строго наоборот.

по-моему там только декали плющит и текст в консоли размазывает (за што я его особо ненавижу).

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 31-08-2010 в 20:36:

Дядя Миша у меня в гл режиме хл безбожно тормозит, особенно при включении фонарика или использовании лайтстилей. В д3д все норм, но другая проблема - текстуры всегда 16-битные. И в хаммере выделение неправильно работает. У меня на ноуте эта видяха, может встроенная в обычную материнку версия чем-то отличается...


Отправлено qpAHToMAS 01-09-2010 в 05:37:

Ku2zoff, начинаю понимать .

Цитата:
Government-Man писал:
Дядя Миша у меня в гл режиме хл безбожно тормозит, особенно при включении фонарика или использовании лайтстилей.

Была такая же проблема с одними из новых версий драйверов.


Отправлено FiEctro 01-09-2010 в 12:24:

Government-Man
Скорее всего Дрова, скорее всего Ati .

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Government-Man 01-09-2010 в 15:04:

Цитата:
FiEctro писал:
скорее всего Ati


на интеловской видяхе, ога


Отправлено FiEctro 01-09-2010 в 15:08:

Government-Man
Ну если интеловская то ой.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 01-09-2010 в 16:23:

Government-Man а ксаш нормально идет?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Government-Man 02-09-2010 в 01:06:

Дядя Миша да, ксаш нормально.


Отправлено qpAHToMAS 15-09-2010 в 11:36:

Кто-нибудь знает как реализованы перемещения вида от первого лица по карте? Т.е. например, в некоторых играх при нажатии на кнопку на стене, камера плавно перемещается в координаты перед кнопкой и проигрывается анимация нажатия кнопки v_ рукой.

Дядя Миша, будет ли такое в Xash? Например, ентитями, в места которых перемещается камера и проигрывается нужная анимация?


Отправлено Дядя Миша 15-09-2010 в 12:48:

qpAHToMAS да ерунда это всё. Главным образом потому что кнопки брашевые и по сравнению с рукой выглядят просто огромными.
Тут не столько кодить, сколько красивые анимации нужны и рубильники модельками. А гдеж их взять?

__________________
My Projects: download page

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

Цитата:

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


Отправлено -=DrTressi=- 02-11-2010 в 09:43:

У меня такой глупый вопрос.

Если в спирите 1,2 есть туман, но он не работает с Параноевским рендером, значит можно параноевский рендер отключить.. Но как?

ЗЫ: На форуме Буззера все уснули

__________________
How interesting, just look at that!
© Scientist


Отправлено Дядя Миша 02-11-2010 в 12:28:

Почему не работает-то?

Добавлено 02-11-2010 в 15:28:

Запусти карту от спирита под параноей и посмотри что получится.
ну ту, где туман.

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 02-11-2010 в 14:12:

Разбиение экрана (split screen) и экран в экране делается же средствами OpenGL?
И реально ли это сделать в том же Xash'е, имя только его SDK?


Отправлено FiEctro 02-11-2010 в 14:20:

qpAHToMAS
Можно. Но не нужно, результат убогий...

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 02-11-2010 в 14:27:

Цитата:
FiEctro писал:
Можно. Но не нужно, результат убогий...

ну-ко, ну-ко *заинтерисовалсо*
расскажы нам убогим, как сделать сплит-скрин в компьютерной игрушке.
Потому что я, даже имея на руках полные сорцы не рискну этим заниматься, нам по сути надо иметь две копии клиентского стейта и как-то разруливать управление на два игрока. Это уже не архитектура клиент-сервер, это совершенно другая модель.
Откудаж вы такие наивные беретесь?

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 02-11-2010 в 14:37:

Цитата:
Дядя Миша писал:
нам по сути надо иметь две копии клиентского стейта и как-то разруливать управление на два игрока. Это уже не архитектура клиент-сервер, это совершенно другая модель.

Хз что такое стейт, но управление это слишком круто. Изначально я думал о проигрывании демки в небольшом экранчике для KILLCAM'еры.


Отправлено Ku2zoff 02-11-2010 в 15:01:

qpAHToMAS как в tf2? Там после смерти мультики показывают


Отправлено Дядя Миша 02-11-2010 в 17:40:

Цитата:
qpAHToMAS писал:
Хз что такое стейт, но управление это слишком круто. Изначально я думал о проигрывании демки в небольшом экранчике для KILLCAM'еры.

а демку проиграть - это еще сложнее. Вот авишку легко, а демку сложно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 02-11-2010 в 19:27:

Ku2zoff, как в Call of Duty 4, там когда тебя убивают в мультиплеере — тут же проигрывается кусок записи (дамка), как твой киллер бежит на тебя и убивает, но на весь экран.

Дядя Миша, да как гейм-дев вообще живет с такими трудностями .


Отправлено Дядя Миша 02-11-2010 в 19:33:

Цитата:
qpAHToMAS писал:
да как гейм-дев вообще живет с такими трудностями

да никак не живет. Просто такие вещи надо изначально в архитектуру закладывать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено qpAHToMAS 03-11-2010 в 13:46:

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

Создать плоскость в какой-то там проекции (как и HUD) и рисовать на ней видео ?

PS:
Это походу туториал по Split Screen'у как в Q2 на SonyPlaystation .


Отправлено Дядя Миша 03-11-2010 в 15:28:

Сам сплит-скрин сделать легко. Важно то, что именно ты собрался выводить на него.

__________________
My Projects: download page

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

Цитата:

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


Отправлено -=DrTressi=- 05-11-2010 в 21:05:

Цитата:
Дядя Миша писал:
Почему не работает-то?

Добавлено 02-11-2010 в 15:28:

Запусти карту от спирита под параноей и посмотри что получится.
ну ту, где туман.



Я так и сделал. Тумана нет((

__________________
How interesting, just look at that!
© Scientist


Отправлено (_-=ZhekA=-_) 05-11-2010 в 21:30:

Цитата:
-=DrTressi=- писал:
Я так и сделал. Тумана нет((

В рендере паранойи туман не предусмотрен ... ( читал на офф. сайте )


Отправлено Дядя Миша 05-11-2010 в 21:32:

Ну тогда ой.

__________________
My Projects: download page

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

Цитата:

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


Отправлено -=DrTressi=- 06-11-2010 в 04:34:

(_-=ZhekA=-_) Дядя Миша Дык неужели нельзя у Паранои рендер отключить/сменить на стандартный??

__________________
How interesting, just look at that!
© Scientist


Отправлено Дядя Миша 06-11-2010 в 05:16:

Отключи\замени, кто не дает-то?

__________________
My Projects: download page

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

Цитата:

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


Отправлено -=DrTressi=- 06-11-2010 в 06:31:

К.а.к.???

__________________
How interesting, just look at that!
© Scientist


Отправлено Василь 06-11-2010 в 08:10:

-=DrTressi=- gl_renderer 0

__________________
HomePage
YouTube
RIP - Defiler Unit


Отправлено Дядя Миша 06-11-2010 в 09:20:

Вон тебе подсказывают )
Кстати время идет, если к воскресенью салют из локусов не будет готов, мы тебя отключим на неделю и будем игнорить все твои вопросы до конца жизни )

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 06-11-2010 в 09:53:

Хы-хы-хы! А у мну спиритовский туман работал вместе с рендером Паранойи. Правда подглючивал чуток - брашевые энтити с транспарент-текстурами были слишком тёмными в тумане.

З.Ы. Я вот никак не пойму, почему в стим-версиях ХЛ ТриАпи туман не пашет??? Габа так увлёкся обновлениями стима, что забыл скомандывать программирующему негру сменить пару строчек/символов в коде?


Отправлено -=DrTressi=- 06-11-2010 в 10:10:

Ku2zoff Как работал? Как ты это сделал??

Василь Я уже пробовал.. Нифига НЕ помогает(((

Дядя Миша Похоже ты до конца жизни мне будет напоминать об этом.

__________________
How interesting, just look at that!
© Scientist


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

Цитата:
-=DrTressi=- писал:
Похоже ты до конца жизни мне будет напоминать об этом.

тебя за езыг никто не тянул - сам виноват.

__________________
My Projects: download page

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

Цитата:

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


Отправлено -=DrTressi=- 06-11-2010 в 11:15:

Дядя Миша Я ни в чём не виноват. И от слов не отказываюсь! Но ты можешь прекратить мне напоминать? У меня память хорошая. Ты бы вот лучше сказал, как туман в Параное реализовать. Вот это было бы круто. А талдычить одно и тоже - не гуд))

__________________
How interesting, just look at that!
© Scientist


Отправлено Дядя Миша 06-11-2010 в 11:29:

Вот довай салют на лоуксах - посмотрим шо там у тебе с туманом )

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 06-11-2010 в 11:30:

>>Ku2zoff Как работал? Как ты это сделал??

Скопипастил рендер Паранойи в Спирит. Вызывал функцию RenderFog также из V_CalcRefdef но только после RendererCalcRefDef. Ну и ещё саму её переписал: все gl заменил на gl.gl


Отправлено -=DrTressi=- 06-11-2010 в 11:41:

Ku2zoff УУуу. А эт как? Можешь для особо непонятливых написать тутор?

__________________
How interesting, just look at that!
© Scientist


Отправлено Ku2zoff 06-11-2010 в 12:02:

-=DrTressi=- не. Мне некогда. Я старый кафель на кухне полдня отрываю от стен На три минуты к компу подбегаю, глянуть сколько от фильмеца осталось качаться и что на форуме новенького.

Если чо, я тебе в предыдущем посте написал, что я сделал. Всё работало. Правда потестить не выйдет, дллка соберётся, а ресурсов нужных нету. Хотя может запустится без них, Х.З.

В аттаче клиентская дллка и opengl32.dll (оригинальный параноевский забэкапь!) без которого кое-чо в этой клиентке не работает. Попробуй под спиритом 1.7 запустить и проверь, будет ли туман.

Добавлено 06-11-2010 в 18:02:

Если будет попозже дам код.


Отправлено -=DrTressi=- 06-11-2010 в 12:25:

Ku2zoff

***Попробуй под спиритом 1.7***

Не понял, Параноя же на спирите 1,2.

Добавлено 06-11-2010 в 15:25:

ЗЫ: Заменил в оригин Параное - тумана нет.

Появились тени, спрайты и свечение на стенах. А вот тумана к сожалению нет

ЗЫЫ Что с клиентом?? Там скорость жутко маленькая, никакие параметры консольные не помогают. Я до 6 этажа минут 5 полз на мапе spiritdemo

__________________
How interesting, just look at that!
© Scientist


Отправлено qpAHToMAS 06-11-2010 в 15:46:

Не по OpenGL:
Почему в HL/Xash используется UDP, а не TCP соединение? Второе ведь надежнее?


Отправлено XaeroX 06-11-2010 в 16:13:

Цитата:
qpAHToMAS писал:
Почему в HL/Xash используется UDP, а не TCP соединение?

Вероятно, потому, что для использования TCP требуется предварительная установка соединения. А каким образом клиент получит, скажем, список серверов в сети? Такие вещи делаются без соединения.

__________________

xaerox on Vivino


Отправлено qpAHToMAS 21-11-2010 в 05:44:

Дядя Миша, что-то типа Split-screen'а в HL все-таки сделали, я только сейчас вспомнил про эту фишку:


Отправлено PLut 21-11-2010 в 06:00:

qpAHToMAS Это не сплит скрин, а рендринг в два прохода.
Если ошибаюсь, поправте.

__________________
Base Defense on Steam, ModDB


Отправлено Ku2zoff 21-11-2010 в 06:29:

PLut не ошибаешься. Можно и в четыре прохода и в десять. pparams->nextview = blablabla...


Отправлено PLut 21-11-2010 в 08:48:

Можно таким же способом зеркало заднего вида сделать
Другой вопрос, нужно ли оно?

__________________
Base Defense on Steam, ModDB


Отправлено SiPlus 21-11-2010 в 09:18:

Я так понимаю, это два рендер таргета, которые отрисовывают мир с разных камер. А повтор убийства можно и на главном рендер таргете рисовать, так даже быстрее. Надо делать лог всех перемещений игроков в оперативной памяти или на жестком диске длиной где-то в 10 секунд, и каждую смерть его повторять.


Отправлено XaeroX 21-11-2010 в 09:41:

Цитата:
SiPlus писал:
Надо делать лог всех перемещений игроков в оперативной памяти или на жестком диске длиной где-то в 10 секунд, и каждую смерть его повторять.

Халфа именно так и делает. Называется - HLTV Director. Именно благодаря тому, что он запоминает последние 10 секунд, и работает фича "Auto Director", выбирающая самые удачные (по словам вальв) ракурсы

__________________

xaerox on Vivino


Отправлено qpAHToMAS 21-11-2010 в 10:04:

Цитата:
PLut писал:
Другой вопрос, нужно ли оно?

Такие экранчики еще часто применяют для отображения тех или иных действий на уровне. Ну например, крутанул винтель и тебе тут же показывают как в бассейн наливается вода.

PS:
Получается что Split-Screen не совсем правильное название этой фишки.


Отправлено Дядя Миша 21-11-2010 в 10:19:

Цитата:
qpAHToMAS писал:
что-то типа Split-screen'а в HL все-таки сделали, я только сейчас вспомнил про эту фишку:

эта ерунда и сейчас в ксаше работает.
Но сплит-скрин подразумевает что на клиенте живет ДВА игрока, взаместо одного. И вся стройная архитектура летит к черту.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Wealth 19-04-2011 в 11:19:

Здраствуйте
У меня возник вопрос как код делает текстуру красивой?


Отправлено XaeroX 19-04-2011 в 12:47:

Wealth
Спроси у разработчиков кода.

__________________

xaerox on Vivino


Отправлено Wealth 19-04-2011 в 14:00:

Просто обесните плис


Отправлено SiPlus 19-04-2011 в 14:36:

Wealth, "красивый" - довольно широкое понятие.


Отправлено Wealth 19-04-2011 в 15:08:

ну вот функцыя в хл простую текстуру детализырует помойму так detailtexture 1


Отправлено XaeroX 19-04-2011 в 15:44:

Цитата:
Wealth писал:
ну вот функцыя в хл простую текстуру детализырует помойму так detailtexture 1

http://www.gamedev.ru/code/articles/?id=4269

__________________

xaerox on Vivino


Отправлено Wealth 19-04-2011 в 16:30:

А это будет работать для хл?


Отправлено Дядя Миша 19-04-2011 в 17:25:

Цитата:
Wealth писал:
У меня возник вопрос как код делает текстуру красивой?

ну он берет текстуру и делает её красивой. (это все знают)

__________________
My Projects: download page

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

Цитата:

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


Отправлено Scrama 20-04-2011 в 01:35:

http://scrama.3dn.ru/publ/1-1-0-6

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Wealth 20-04-2011 в 16:04:

Подскажите как сделать камеру вида на верху как в играх Top Down Shooter


Отправлено SiPlus 20-04-2011 в 16:08:

Wealth, поставить ее над игроком и направить вниз.


Отправлено Wealth 20-04-2011 в 16:12:

я говорю игровую камеру


Отправлено Government-Man 20-04-2011 в 16:57:

Wealth точно также.


Отправлено Wealth 20-04-2011 в 17:19:

в view.cpp или tri.cpp?


Отправлено Дядя Миша 20-04-2011 в 17:48:

Wealth набери в консоли +cammousemove и накрути положение камеры мышкой как тебе потребно. а потом -cammousemove чтобы зафиксировать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Wealth 20-04-2011 в 18:33:

а кодом не получется? так чтота не получается

Добавлено 20-04-2011 в 22:33:

Дядя Миша Cпасибо разобрался . Если я не ошыбаюсь в xash нету проблем с фпс?


Отправлено Дядя Миша 20-04-2011 в 19:09:

Цитата:
Wealth писал:
Если я не ошыбаюсь в xash нету проблем с фпс?

умелый маппер любой движок своей картой ушатает.
Вон Скрама какой Dm-Knot слепил. Казалось бы - ничего особенного, а фпс проседает - будь здоров.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Wealth 21-04-2011 в 06:01:

Не я не про это говорю если я много npc поставлю xash сможет выдержать?


Отправлено Scrama 21-04-2011 в 06:37:

А много - это сколько?

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Wealth 21-04-2011 в 06:41:

Ну как в играх типа Zombie Shooter .


Отправлено SiPlus 21-04-2011 в 06:47:

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


Отправлено Wealth 21-04-2011 в 07:04:

Спасибо за ответ . Вот еще один баг что делать прицел не где нада


Отправлено Дядя Миша 21-04-2011 в 09:10:

Цитата:
SiPlus писал:
LODы сделай, тогда выдержит

бред. Нагрузка проседает от рассчета костей, а не от кол-ва полигонов.
Одна модель с 50.000 полигонов будет тормозить меньше, чем 50 моделей с 1000 полигонов. По крайней мере без кэширования и трансформации вершин на CPU. Хотя мы с Ксером эту тему обсуждали - на GPU прирост тоже получить нифига не просто.

__________________
My Projects: download page

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

Цитата:

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


Отправлено IPwnMice 04-05-2011 в 13:27:

Дядя Миша, лучше сделать, чем выше FPS - тем лучше.


Отправлено thambs 04-05-2011 в 14:59:

Дядя Миша

интересно, как в l4d оптимизировали. там толпы почти как в сэме.


Отправлено IPwnMice 04-05-2011 в 15:06:

thambs, LODы и MIP-текстуры.


Отправлено Дядя Миша 04-05-2011 в 15:12:

Цитата:
thambs писал:
интересно, как в l4d оптимизировали

та всё тот же кэш костей + трансформация через SSE2.
Цитата:
IPwnMice писал:
LODы и MIP-текстуры.

прошло 8 лет, и всё равно никто не читает что я пишу. Каждый мнит себя экспертом.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Wealth 07-05-2011 в 16:23:

Подскажите есть ли бесплатный движок со своим редактором типа hge просто движки есть а редакторов нету что делать не знаю


Отправлено Ozzy 07-05-2011 в 16:35:

Id Tech
Id Tech 2
Id Tech 3
DarkPlaces
QFusion
-бесплатные движки

__________________
удалено по соображениям цензуры


Отправлено fire64 07-05-2011 в 16:41:

http://ru.wikipedia.org/wiki/%D0%9A...%B6%D0%BA%D0%B8

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Wealth 07-05-2011 в 16:45:

Хочу легкие движки с редактором .


Отправлено Skaarj 07-05-2011 в 16:47:

Если некоммерческая игра, то UDK.


Отправлено Wealth 07-05-2011 в 16:55:

Хочу создать игру категория Top down shooting ну просто я хочу уже готовый движок просто добовлять по немножку свое .


Отправлено Дядя Миша 07-05-2011 в 17:02:

Цитата:
fire64 писал:
http://ru.wikipedia.org/wiki/%D0%9A...%B6%D0%BA%D0%B8

вот! И никто ксаш туда недобавил. Позорищще.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Wealth 07-05-2011 в 17:18:

Дядя Миша Под столом ))


Отправлено Дядя Миша 07-05-2011 в 17:53:

я негодую!

__________________
My Projects: download page

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

Цитата:

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


Отправлено IPwnMice 07-05-2011 в 17:57:

Цитата:
Skaarj писал:
Если некоммерческая игра

Почему же если некоммерческая? Платишь по 2500$ с каждых 50000$ Эпикам и продаешь игру сколько хочешь.


Отправлено n00b 15-05-2011 в 06:05:

А вот например мне в шейдер надо переслать 2 текстурные координаты.
Где то читал, что для первой текстуры glTexCoord2f будет быстрее чем glMultiTexCoord2f ( даже по количеству параметров ). То есть для второй текстуры лучше передавать через glColor2f? ( если цвет нам не нужен )


Отправлено XaeroX 15-05-2011 в 06:45:

glTexCoord2f это то же самое, что glMultiTexCoord2f для нулевого юнита, т.е. синонимы. Разве что сэкономишь место в стеке (передача на 1 переменную меньше), но эту экономию смогут заметить только высокочувствительные приборы
В шейдеры надо всё передавать через вершинные атрибуты - glVertexAttrib. А еще лучше - через массивы атрибутов - glVertexAttribPointer. Такие функции, как glBegin, glTexCoord, glMultiTexCoord, glVertex, glVertexPointer и т.п. - считаются deprecated и не рекомендуются к использованию.

__________________

xaerox on Vivino


Отправлено n00b 15-05-2011 в 12:19:

А, понял, спасибо.


Отправлено n00b 19-05-2011 в 15:47:

Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE
( в плане с каких видеокарт они поддерживаются ), и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?


Отправлено Дядя Миша 19-05-2011 в 17:49:

Цитата:
n00b писал:
Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE

ни в коем случае, даже и не думай об этом.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 19-05-2011 в 20:35:

Цитата:
n00b писал:
Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE

Да, при наличии расширения. Оно есть, разумеется, не везде. На каких видеокартах поддерживается? Да в общем-то на всех более-менее современных, и даже не современных, типа GeForce FX.
Цитата:
n00b писал:
и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?

Да, просто в этом случае текстура не будет заполнена пикселями. Но образ в памяти создастся.

__________________

xaerox on Vivino


Отправлено Дядя Миша 19-05-2011 в 20:47:

Цитата:
n00b писал:
и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?

а вот изучал бы сорцы ксаша как следует и этот вопрос бы отпал сам собой

__________________
My Projects: download page

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

Цитата:

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


Отправлено n00b 20-05-2011 в 10:20:

Да я их пока вообще не изучал. Нету надобности

Добавлено 20-05-2011 в 14:20:

Допилил, сделал эффект сепии ( надеюсь похоже ).
В nvidia sdk примерчик GL_TEXTURE_RECTANGLE идет для первого gforsа, надеюсь у ATI они тоже появились не позже чем ARBшные шейдеры.


Отправлено HKS 11-08-2011 в 09:26:

с какой версией OpenGL лучше работать для создания кроссплатформенного приложения, чтобы шло на компах года эдак с 2006 и ноутах?

OpenGL 4.0 и более на GeForce 8 - GeForce 300 уже не пойдут, я правильно понимаю?


Отправлено XaeroX 11-08-2011 в 09:34:

Цитата:
HKS писал:
с какой версией OpenGL лучше работать для создания кроссплатформенного приложения

1.1

__________________

xaerox on Vivino


Отправлено CrazyRussian 09-10-2011 в 11:49:

Использование Selection Buffer имеет подводные камни? Типа того что он глючит на ATI и т.п.?

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов


Отправлено Highlander 21-12-2011 в 04:59:

Цитата:
Дык неужели нельзя у Паранои рендер отключить/сменить на стандартный??

Паранойю вообще делали наркоманы. И руки с CSCZ походу сам дядя Гейб перепиливать разрешил.
З.Ы. Песни Слот отличные и армейские матерщинники.

__________________
© Корпорация Вульва


Отправлено Scrama 21-12-2011 в 05:26:

Цитата:
HKS писал:
чтобы шло на компах года эдак с 2006 и ноутах?
Ну, так смотри на эти железяки - OpenGL 2.0 на них был. Просто если хочется сделать что-то быстрое на современных ноутбуках - надо использовать более свежую версию, а если хочется, чтоб оно запускалось на x800 или 6800 - надо версию постарше, но на ноутах оно будет идти медленнее. Выбирай ЦА как бы.

Скорость тут потенциально упоминается, ибо все от рук зависит.

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Дядя Миша 21-12-2011 в 08:54:

Цитата:
Scrama писал:
ибо все от рук зависит.

от рук с CSCZ, которые дядя Гейб разрешил?

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 15-06-2020 в 09:29:

Есть такой вот вопрос, какие glEnable/glDisable овверайдятся шейдером, и в целом, какие могут быть подводные какмни, если написать до начала главного цикла скажет glEnable(GL_TEXTURE_2D) и glEnable(GL_BLENDING) и больше их не трогать до окончания цикла? Давно уже не занимался опенжэлем, а сейчас на новом системнике вот заново сел, но уже кучу всего позабыл

__________________
-Brain is dead-


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

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

Чуть-чуть инфы есть, например здесь: http://www.yaldex.com/open-gl/ch04lev1sec5.html
Вообще сайт неплохой, рекомендую ознакомиться.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 22-06-2020 в 22:30:

Обнаружил неприятный баг на радеонах - у тонких треугольников низкая точность интерполяции вариингов.
На примере плинтуса. Передаю мировую позицию вершины через вариинг во фрагментный шейдер, и вывожу как цвет, вот какая дрянь получается. И еще похоже, что оно как-то завязано на перспективную коррекцию, потому что количество артефактов зависит от ракурса и расстояния до камеры.
https://i.imgur.com/IyxELs9.pnghttps://i.imgur.com/g2bufMa.pnghttps://i.imgur.com/L9xLF62.png

На жифорсах и интелах такого нет, всё гладенькое, как и ожидалось.

Есть идеи, как забороть? Как-то вручную можно интерполировать?

Добавлено 23-06-2020 в 00:59:

Придумал корочи получать мировые координаты фрагмента через gl_FragCoord и обратную матрицу проекции. Вроде даже работает.

Добавлено 23-06-2020 в 01:30:

Надо сказать, что хоть при использовании такого способа артефакты и отсутствуют, но точность результата не высокая. Поэтому рад буду услышать альтернативные предложения.


Отправлено nemyax 23-06-2020 в 06:15:

Цитата:
ncuxonaT писал:
похоже, что оно как-то завязано на перспективную коррекцию

Пробовал noperspective добавлять?


Отправлено Дядя Миша 23-06-2020 в 07:20:

Цитата:
ncuxonaT писал:
у тонких треугольников низкая точность интерполяции вариингов

как-то ты неправильно сформулировал. У линейной интерполяции точность не может быть низкой или высокой. Там что-то другое. А глубина не 16 бит случайно?

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 23-06-2020 в 10:28:

nemyax пробовал, никаких изменений.
Дядя Миша может, и неправильно. Глубина 24 бита, но я пробовал и 16, и 32F, и 32F с Reversed-Z, никак оно не влияет.
Обратил внимание, что артефакты лезут в том случае, если часть вершин треугольника лежит позади передней плоскости отсечения,


Отправлено Дядя Миша 23-06-2020 в 13:41:

А не может быть такого, что вертексы по умолчанию в халфах хранятся?

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 23-06-2020 в 14:55:

Дядя Миша маловероятно, я же везде явно флоаты прописываю. И для рейтрейсинга все координаты во флоат текстуре хранятся. Если бы вершины были в халфах, то было бы много самопересечений, ну то есть лучи с поверхности халф-треугольника попадали бы в тот же флоат-треугольник. Но такого не наблюдается, артефачат только узкие треугольники. И только на радеонах.


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

ncuxonaT драва поменять?

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 23-06-2020 в 15:26:

Дядя Миша на одном радеоне дрова свежие, на втором прошлогодние, разницы нет


Отправлено ncuxonaT 25-06-2020 в 12:58:

Слушайте, а я правильно восстанавливаю позицию из фрагкоорда?

code:
vec4 ndc = vec4(gl_FragCoord.xyz / vec3(screen_size, 1.0) * 2.0 - vec3(1.0) , 1.0); ndc = inverse_mvp * ndc; vec3 fixed_pos = ndc.xyz / ndc.w;


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

Ну то есть ты по результатам сам что ли не видишь правильно или нет?
Откуда этот код?

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 25-06-2020 в 17:00:

Дядя Миша из интернета. Результат похож на правду, но точность заметно хуже, чем у интерполяции. Я хочу понять, это из-за неверного кода или из-за недостатка точность флоатов.


Отправлено Дядя Миша 25-06-2020 в 18:12:

Я в своё время, когда задавался этим вопросом перепробывал разные способы и вот у них тоже была какая-то очень низкая точность. Наилучший результат получился с Screen Rays, можешь в параное посмотреть.
Там надо четыре луча предрассчитать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 25-06-2020 в 18:15:

Дядя Миша четыре луча по углам вьюпорта, интерполируешь между ними и умножаешь на глубину?


Отправлено Дядя Миша 25-06-2020 в 20:49:

ncuxonaT именно так.

Добавлено 25-06-2020 в 23:49:

Глубину линеаризовать надо.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 06-07-2020 в 23:34:

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


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

ncuxonaT посмотри в шейдерах паранои, я уже не помню. Помоему да.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 07-07-2020 в 13:51:

C++ Source Code:
float srcW = texture2D( u_DepthMap, var_TexCoord ).r;
float w = linearizeDepth( u_zFar, RemapVal( srcW, 0.0, 0.8, 0.0, 1.0 ));
vec4 worldpos = vec4( u_ViewOrigin + var_RayVec * w, 1.0 ); // nudge point to avoid z-fighting

Не могу понять, зачем нужен ремап


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

ncuxonaT вторая параноя очень многое тянет из первой. В частности там Buzer рисовал мир в укороченном диапазоне, оставив верхнюю часть под 3д скайбокс. Тебе это не нужно, это тежолое наследие.

Добавлено 07-07-2020 в 17:39:

Цитата:
Дядя Миша писал:
вторая параноя очень многое тянет из первой

Мда, вот написал, щас какой-нибудь Кристаллайз подумает, что-то своё.
Имеется в виду, что остались старые энтити и некоторые старые принципы.
В частности принцип отрисовки 3д неба и укороченный диапазон.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 07-07-2020 в 14:52:

Дядя Миша я помню что в П1 головная нода каждый кадр копируется за затылок игрока чтобы мир рисовался только кастомным рендером


Отправлено Cybermax 07-07-2020 в 16:40:

Помню что в П1 при загрузке новой карты рандомно зависало, а в П2 все хорошо.


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

Цитата:
Crystallize писал:
я помню что в П1 головная нода каждый кадр копируется за затылок игрока

хыхыхыхыхыхыыхыхыхыхы

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 11-02-2021 в 18:54:

Хочу сделать отрисовку текста без подключения шейдера, цвет задавать через glColor, а глифы хранить в одноканальной текстуре. В старом опенгле был формат хранения текстур GL_ALPHA, и он отлично подходил. Но, начиная с 3.1, GL_ALPHA объявлен устаревшим, а взамен предлагают использовать GL_RED. А результат чтения из GL_RED выглядит как (Red, 0, 0, 1), то есть в альфе единица. Есть идеи, что с этим можно сделать? Есть такая штука как GL_TEXTURE_SWIZZLE_* для переназначения каналов, но она не работает с блендингом.


Отправлено Дядя Миша 11-02-2021 в 19:14:

А нихрена. Я сам планировал хранить альфу в ATI1N. И тоже пытался разрулить это свизлингом. В итоге пришлось юзать либо DXT1a либо DXT5.
Не решается эта задачка.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 11-02-2021 в 20:26:

Таки я придумал.
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED );

glBlendFunc( GL_CONSTANT_COLOR , GL_ONE_MINUS_SRC_COLOR );

И цвет задавать через glBlendColor вместо glColor.
А вот прозрачность можно регулировать как раз через glColor.


Отправлено Дядя Миша 12-02-2021 в 06:32:

Не факт что это будет корректно работать на любых вендорах и тем более любых дровах.
https://www.khronos.org/registry/Op...glBlendFunc.xml
Здесь в списке нету GL_CONSTANT_COLOR.

Добавлено 12-02-2021 в 09:32:

C++ Source Code:
1
#define GL_SRC_COLOR			0x0300
2
#define GL_ONE_MINUS_SRC_COLOR		0x0301
3
#define GL_DST_COLOR			0x0306
4
#define GL_ONE_MINUS_DST_COLOR		0x0307
5
#define GL_SRC_ALPHA			0x0302
6
#define GL_ONE_MINUS_SRC_ALPHA		0x0303
7
#define GL_DST_ALPHA			0x0304
8
#define GL_ONE_MINUS_DST_ALPHA		0x0305
9
#define GL_SRC_ALPHA_SATURATE			0x0308
10
#define GL_CONSTANT_COLOR			0x8001
11
#define GL_ONE_MINUS_CONSTANT_COLOR		0x8002
12
#define GL_CONSTANT_ALPHA			0x8003
13
#define GL_ONE_MINUS_CONSTANT_ALPHA		0x8004

Видно какие параметры добавили позже. Если функционал GL 1.1 будет поддерживаться точно, то остальное - как повизёт.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 12-02-2021 в 13:52:

Так ты смотришь спецификацию на ES 1.1, он ископаемый уже. В ES 2.0 GL_CONSTANT_COLOR есть. И в обычном GL есть, начиная с 1.2.1.


Отправлено Дядя Миша 12-02-2021 в 15:24:

Я говорю, что полноценно в дровах всегда поддерживается только 1.1
А остальное - ну как повизёт. И GL_CONSTANT_COLOR это по идее 1.4

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 12-02-2021 в 16:27:

В документации на 1.2.1 GL_CONSTANT_COLOR присутствует. Скорее уж свиззла не будет.


Отправлено KiQ 08-04-2021 в 04:31:

Всем добрый день, товарищи! В общем вопрос, наверное, туповат, но никак не могу сообразить. Предположим у меня есть изометрическая 3D камера и террейн, представляющий регулярную тайловую сетку. Каким образом лучше всего сделать, чтобы на разных разрешениях и аспектах экрана влезало одинаковое количество тайлов? Если рисовать в FBO и делать апскейл - на больших разрешениях будет мазня. Тогда как правильно? Регулировать высотой камеры? Крутить FOV?

__________________
-Brain is dead-


Отправлено ncuxonaT 03-07-2021 в 15:10:

KiQ у изометрической проекции видимая область задается не фовом, а плоскостями отсечения. Прикинь видимый размер тайла с учетом угла наклона камеры и задавай плоскости отсечения через glOrtho.

Такой вопросик, господа. Оказалось, glColor клампит значения в диапазоне 0-1. Есть ли способ вывести цвет больше 1 без подключения шейдеров? Рендер в текстуру с плавающей точкой, само собой.


Отправлено Дядя Миша 03-07-2021 в 18:40:

Цитата:
KiQ писал:
изометрическая 3D камера

Камера или изометрическая или 3Д, ты определись. Изометрия не юзает перспективу поидее. Следовательно и FOV там нет.

Цитата:
KiQ писал:
Если рисовать в FBO и делать апскейл - на больших разрешениях будет мазня

вот у меня с меню такая же фигня и тоже еще не решил как лучше.

Добавлено 03-07-2021 в 21:40:

Цитата:
ncuxonaT писал:
Оказалось, glColor клампит значения в диапазоне 0-1

А это не vendor-specific? Я помню лет десять назад на геймдеве этот вопрос разбирали и вот у одних клампило, а у других ничего подобного.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 03-07-2021 в 20:28:

Цитата:
Дядя Миша писал:
А это не vendor-specific? Я помню лет десять назад на геймдеве этот вопрос разбирали и вот у одних клампило, а у других ничего подобного.

Согласно документации, оно клампится, но не сразу. Я не очень понимаю смысл этого
"Neither floating-point nor signed integer values are clamped to the range 0 1 before the current color is updated. However, color components are clamped to this range before they are interpolated or written into a color buffer. "


Отправлено XaeroX 03-07-2021 в 23:34:

Цитата:
ncuxonaT писал:
Я не очень понимаю смысл этого

На выходе из вершинной программы клампятся, если не flat.
А если flat - то клампятся на выходе из фрагментной программы.
По крайней мере я бы понял именно так.

__________________

xaerox on Vivino


Отправлено ncuxonaT 04-07-2021 в 12:05:

XaeroX да, похоже, как-то так и работает.


Нашел расширение GL_ARB_color_buffer_float, вроде с ним можно отключать клампинг.


Отправлено ncuxonaT 21-09-2021 в 21:29:

Вьюмодели часто рисуют с другим фовом, нежели остальную сцену. Как в таком случае считать спекуляр и отражения?


Отправлено erfty 07-03-2023 в 20:48:

если сделал эффекты opengl, ьудут ли они работать в других режимах(софтварь, directx)?


Отправлено XaeroX 07-03-2023 в 21:02:

erfty
конечно будут, но только если ты из них переключишься обратно в opengl, посмотришь эффект, а потом обратно в софтварь/directx вернёшься.

__________________

xaerox on Vivino


Отправлено erfty 07-03-2023 в 21:06:

Цитата:
XaeroX писал:
erfty
конечно будут, но только если ты из них переключишься обратно в opengl, посмотришь эффект, а потом обратно в софтварь/directx вернёшься.

понятно, то есть нет универсального решения для всех рендерингов. Эхххх а блум эфыект есть туториал как сделать?


Отправлено XaeroX 07-03-2023 в 21:36:

erfty
Нет универсального решения, надо делать отдельно под каждый рендеринг.
Особенно проблематичен софтвар, т.к. там довольно жёсткие лимиты по производительности.

__________________

xaerox on Vivino


Отправлено erfty 08-03-2023 в 08:02:

а там хоть какие то сходства есть? Иль нужно с нуля переучиваттся с opengl на софтварь/directX?


Отправлено KiQ 10-03-2023 в 21:06:

Цитата:
Дядя Миша писал:
Камера или изометрическая или 3Д, ты определись. Изометрия не юзает перспективу поидее. Следовательно и FOV там нет.

Карта изометрическая, то бишь из плоских тайлов. А камера 3D с углом в 45 градусов для имитации классической изометрии.

Цитата:
Дядя Миша писал:
вот у меня с меню такая же фигня и тоже еще не решил как лучше.

Для всяких форм просто формулу расчёта с привязкой к ширине/высоте экрана. Как это сделано в вебе для адаптивных сайтов, используются единицы vw, vh, завязанные на размер вьюпорта браузера. И второй вариант, как это всегда раньше делалось, элементы меню разбивались на тайлы, навроде "верхний левый угол", "вертикальная стенка", "левый нижний угол", ну и потом комбинировались

Цитата:
erfty писал:
понятно, то есть нет универсального решения для всех рендерингов

В HLSDK есть TriAPI, по идее. Но он весьма ограничен и без шейдеров, конечно

__________________
-Brain is dead-


Отправлено XaeroX 10-03-2023 в 21:30:

Цитата:
KiQ писал:
Но он весьма ограничен и без шейдеров, конечно

Да. Блум в софтваре сделать ещё можно (как вы видели в Headcrab Frenzy), но что-то серьёзнее, увы, проблематично.

__________________

xaerox on Vivino


Отправлено KiQ 10-03-2023 в 22:05:

XaeroX к слову, насколько сейчас критично использование кэша шейдеров вместо компиляции налету? Просто, насколько я помню, в той же Паранойе убер-шейдеры собирались прямо во время загрузки уровня. А допустим, кто-то захочет прикрутить в TriAPI шейдеры, логичнее для этого использовать какой-то универсальный язык, по типу того, что был в системе материалов в третьей кваке, а затем уже компилировать в зависимости от выбранного рендера. И вот тогда вопрос, когда лучше проводить эту компиляцию

__________________
-Brain is dead-


Отправлено XaeroX 11-03-2023 в 00:51:

KiQ
Мне кажется, сейчас главное - сделать быстро (в плане скорости разработки) и правильно (без багов). А оптимизировать такие моменты, как кеширование бинарников, можно и потом, если удастся убедить менеджмент в том, что это вообще нужно, с цифрами статистики...

__________________

xaerox on Vivino


Отправлено KiQ 11-03-2023 в 14:29:

XaeroX но по идее оптимизация должна закладываться уже на уровне прототипа? Или не должна?

__________________
-Brain is dead-


Отправлено SNMetamorph 12-03-2023 в 12:13:

Цитата:
KiQ писал:
А допустим, кто-то захочет прикрутить в TriAPI шейдеры, логичнее для этого использовать какой-то универсальный язык, по типу того, что был в системе материалов в третьей кваке, а затем уже компилировать в зависимости от выбранного рендера.

А нету таких языков. Вот байт-код универсальный есть, да. SPIR-V называется. Но он в OpenGL поддерживается только в самых крайних версиях.

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


Отправлено XaeroX 12-03-2023 в 12:23:

Цитата:
SNMetamorph писал:
А нету таких языков

Cg

__________________

xaerox on Vivino


Отправлено KiQ 12-03-2023 в 17:52:

SNMetamorph я не совсем о том гвоорил. Я имел в виду, что самому разработать упрощённый шейдерный язык с конечным значением основных комманд и два транслятора, в GLSL и что там в директе используется

__________________
-Brain is dead-


Отправлено XaeroX 12-03-2023 в 18:10:

KiQ
Так я не понял, чем вас Cg не устраивает?
В Volatile шейдеры при сборке компилируются сразу в большое число профилей, часть из которых D3D, а часть GL. Соответственно, простые эффекты будут работать на условной GeForceFX, ну а сложные используют всё преимущество полноценного ветвления, неразвёртываемых циклов и других радостей модели 3+.

C++ Source Code:
1
enum {
2
  PROG_PROFILE_UNKNOWN,
3
  PROG_PROFILE_VS_2_0,
4
  PROG_PROFILE_VS_2_X,
5
  PROG_PROFILE_VS_3_0,
6
  PROG_PROFILE_VS_4_0,
7
  PROG_PROFILE_VS_5_0,
8
  PROG_PROFILE_ARBVP1,
9
  PROG_PROFILE_GP4VP,
10
  PROG_PROFILE_GP5VP,
11
  PROG_PROFILE_GLSLV,
12
  PROG_PROFILE_GLSLV3,
13
  PROG_PROFILE_PS_2_0,
14
  PROG_PROFILE_PS_2_X,
15
  PROG_PROFILE_PS_3_0,
16
  PROG_PROFILE_PS_4_0,
17
  PROG_PROFILE_PS_5_0,
18
  PROG_PROFILE_ARBFP1,
19
  PROG_PROFILE_GP4FP,
20
  PROG_PROFILE_GP5FP,
21
  PROG_PROFILE_GLSLF,
22
  PROG_PROFILE_GLSLF3,
23
  PROG_NUM_PROFILES
24
};

__________________

xaerox on Vivino


Отправлено KiQ 12-03-2023 в 19:03:

XaeroX помню ещё пытался с Cg водичкой для халфы разобраться, и как-то сразу мне оно не зашло именно тем, что это C for graphics. Отсюда и издержки синтаксиса и в целом некая перегруженность. Я же имел в виду некий высокоуровневый универсальный язык, который может транслироваться в API-зависимые конструкции. В общем, скриптинг для шейдеров. Старый GLSL был к этому приближен, потом в него тоже ввели кучу нагромождений типа чтобы отвязать от фиксированного пайплайна. В итоге да, контроль есть, а удобства уже такого нет. Все эти раскладки переменных и т.д, которые нужно делать вручную. Это мне напомнило переход от LWJGL2 к LWJGL3. Да, дали значительно больше контроля, но теперь вместо условного Display.create() нужно прописывать по сути те же обёртки над GL, так и спрашивается, на кой чёрт такой фреймворк, который заставляет делать пользователя то же самое, только переименованными методами?

__________________
-Brain is dead-


Отправлено Дядя Миша 13-03-2023 в 05:28:

Старый GLSL по прежнему можно использовать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено 0r@ngE 13-03-2023 в 19:32:

Вопрос к XaeroX - гуглил "oblique frustum with inversed depth" и ничего толком не нашел, кроме, походу, твоей работы по линеаризации глубины в шейдере при юзании oblique frustum с инвертированной глубиной (потому что сам по себе oblique frustum там портит глубину и потому Unigine от него отказались)

К чему это я - не подскажешь как подправить оригинальный код Эрика для модификации матрицы проекции если эта самая матрица уже с инвертированной глубиной ?

У меня в рендере юзается инвертированный депс, и я пытаюсь запилить зеркало, если оно попадает во фрустум - отражаю камеру и рисую в рендертаргет, потом шлепаю на это зеркало.
Хочу клипать все по этому зеркалу чтоб не рисовалось то что за ним, и потому подумаю использовать oblique frustum, но кривизна рук и бедность мозга не позволяет получить результат.


Отправлено XaeroX 13-03-2023 в 19:45:

Цитата:
0r@ngE писал:
потому что сам по себе oblique frustum там портит глубину и потому Unigine от него отказались

Ничего он не портит, что за глупости? Прекрасно она линеаризуется, что я в статье и показал.
Собственно, я и писал статью для тех, кто пугается "порчи" глубины и не хочет закапываться в матан.
Цитата:
0r@ngE писал:
не подскажешь как подправить оригинальный код Эрика для модификации матрицы проекции если эта самая матрица уже с инвертированной глубиной ?

К сожалению, у меня нет необходимых формул, но полагаю, что ты можешь проделать те же выкладки, что в статье, с учётом отличий в матрице проекции. Они вроде не критичные.

__________________

xaerox on Vivino


Отправлено 0r@ngE 13-03-2023 в 19:52:

Цитата:
XaeroX писал:
К сожалению, у меня нет необходимых формул, но полагаю, что ты можешь проделать те же выкладки, что в статье, с учётом отличий в матрице проекции. Они вроде не критичные.


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

code:
// See: Oblique frustum: Eric Lengyel static void ClipProjectionMatrix(const Matrix& matView, Matrix& matProj, const Plane& inClipPlane) { Plane transformedPlane = matView.TransformPlane(inClipPlane); Vector clipPlane(transformedPlane.Normal()); clipPlane.SetScalar(3, -transformedPlane.Distance()); // Calculate the clip-space corner point opposite the clipping plane // as (Sgn(clipPlane.x), Sgn(clipPlane.y), 1, 1) and // transform it into camera space by multiplying it // by the inverse of the projection matrix float m0 = matProj.GetScalar(0, 0); float m5 = matProj.GetScalar(1, 1); float m8 = matProj.GetScalar(2, 0); float m9 = matProj.GetScalar(2, 1); float m10 = matProj.GetScalar(2, 2); float m14 = matProj.GetScalar(3, 2); Vector q ( (Sgn(clipPlane.GetScalar(0)) + m8) / m0, (Sgn(clipPlane.GetScalar(1)) + m9) / m5, 1.0f, (1.0f - m10) / m14 ); // Calculate the scaled plane vector Vector c = clipPlane * (1.0f / clipPlane.Dot4(q)); // Replace the third row of the projection matrix matProj.SetScalar(0, 2, -c.GetScalar(0)); matProj.SetScalar(1, 2, -c.GetScalar(1)); matProj.SetScalar(2, 2, -c.GetScalar(2)); matProj.SetScalar(3, 2, c.GetScalar(3)); }


Отправлено XaeroX 13-03-2023 в 19:58:

0r@ngE
Для начала рекомендую вернуть обычную (не инвертированную) матрицу проекции и убедиться, что oblique clipping в принципе работает. А уж потом можно будет доработать для инверсии.

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-03-2023 в 20:05:

Цитата:
0r@ngE писал:
Хочу клипать все по этому зеркалу чтоб не рисовалось то что за ним

При правильной реализации это автоматически получается.

__________________
My Projects: download page

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

Цитата:

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


Отправлено 0r@ngE 13-03-2023 в 20:36:

Цитата:
XaeroX писал:
Для начала рекомендую вернуть обычную (не инвертированную) матрицу проекции и убедиться, что oblique clipping в принципе работает. А уж потом можно будет доработать для инверсии.

Да вот сижу откручиваю инвертированную глубину назад чтоб проверить.

Цитата:
Дядя Миша писал:
При правильной реализации это автоматически получается.

В смысле? Мы модифицируем near plane чтоб оно клипалось, ибо clip planes умерли вместе с fixed pipeline. В этом и есть смысле oblique frustum. Проблема в том чтоб адаптировать его для проекционной матрицы которая построена для инвертированной глубины (считай far и near поменяны местами)


Отправлено Дядя Миша 13-03-2023 в 20:42:

Цитата:
0r@ngE писал:
ибо clip planes умерли вместе с fixed pipeline

Да нет, они по прежнему работают. Ну по крайней мере в режиме совместимости.

__________________
My Projects: download page

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

Цитата:

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


Отправлено 0r@ngE 13-03-2023 в 20:43:

XaeroX

Открутил inversed depth (он тут у меня везде прибит гвоздями), вернул оригинальную функцию и теперь все клипается как положено.
Отличия моего кода от оригинального от Эрика только в том, что у него там OpenGL, и потому clip space depth в [-1;1] а у меня Vulkan и [0;1]

code:
// See: Oblique frustum: Eric Lengyel static void ClipProjectionMatrix(const Matrix& matView, Matrix& matProj, const Plane& inClipPlane) { Plane transformedPlane = matView.TransformPlane(inClipPlane); Vector clipPlane(transformedPlane.Normal()); clipPlane.SetScalar(3, -transformedPlane.Distance()); // Calculate the clip-space corner point opposite the clipping plane // as (Sgn(clipPlane.x), Sgn(clipPlane.y), 1, 1) and // transform it into camera space by multiplying it // by the inverse of the projection matrix float m0 = matProj.GetScalar(0, 0); float m5 = matProj.GetScalar(1, 1); float m8 = matProj.GetScalar(2, 0); float m9 = matProj.GetScalar(2, 1); float m10 = matProj.GetScalar(2, 2); float m14 = matProj.GetScalar(3, 2); Vector q ( (Sgn(clipPlane.GetScalar(0)) + m8) / m0, (Sgn(clipPlane.GetScalar(1)) + m9) / m5, -1.0f, (1.0f + m10) / m14 ); // Calculate the scaled plane vector Vector c = clipPlane * (1.0f / clipPlane.Dot4(q)); // Replace the third row of the projection matrix matProj.SetScalar(0, 2, c.GetScalar(0)); matProj.SetScalar(1, 2, c.GetScalar(1)); matProj.SetScalar(2, 2, c.GetScalar(2)); matProj.SetScalar(3, 2, c.GetScalar(3)); }


Задача в том, чтоб ее адаптировать под inversed depth (который уже в matProj), и вот тут я чот буксую к сожалению.

Подумал раз ты в Volatile Engine это сделал, может подскажешь


Отправлено 0r@ngE 14-03-2023 в 14:03:

Вопрос отпадает всем спасибо, ночь выдалась продуктивной порешал.


Отправлено XaeroX 14-03-2023 в 14:32:

0r@ngE
Поделись тогда уж формулами с народом, вдруг кому пригодится.

__________________

xaerox on Vivino


Отправлено erfty 20-03-2023 в 11:33:

Что выбрать для 3д рендеринга, SDL иль Opengl? По критериям поддерживаемых устройств и производительности.


Отправлено FiEctro 28-03-2023 в 08:23:

Такой вопрос, есть уровень 2д из тайлов, например размером 100х100 тайлов, что будет лучше, склеить их в одну картинку при загрузке или отрисовать все 10000 прямоугольников отдельно с текстурой тайлов? При том учитывая что текстура одного тайла может быть например 256x256 пикселей, и я так посчитал что клеить их в одну текстуру что то уж дофига большое разрешение получается. Отрисовка DirectX 9.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 09:06:

Исходя из информации (слухах) о принципах работы современных видеокарт, тебе надо надо все склеивать в атласы максимально возможного размера.

Добавлено 28-03-2023 в 16:06:

И не при загрузке, а при вгрузке надо склеить. Кстати, 10000 уникальных тайлов это крутовато, у тебя пример просто теоретический?


Отправлено FiEctro 28-03-2023 в 10:18:

Цитата:
ZGreen писал:
10000 уникальных тайлов это крутовато


Не обязательно уникальных. Просто 10000 вызовов отрисовки спрайтов в цикле.

Цитата:
ZGreen писал:
Исходя из информации (слухах) о принципах работы современных видеокарт, тебе надо надо все склеивать в атласы максимально возможного размера.


Это так сейчас и реализовано, но пугает разрешение картинки в 25к. Оно же в несжатом виде ещё в оперативку грузится и занимает в районе гигабайта - полтора. А это только 1 слой, таких слоёв может быть с десяток. ФПС вроде как особо и не падает от этого. Но интересно какие видеокарты держат картинки такого разрешения, а какие нет? Плюс сама склейка с загрузкой в память происходит довольно долго, около 10 секунд.


Хотя не, вру. Если запускать вне студии, то проект при сшивании жрёт чуть больше 100мб ОЗУ и потом падает до 40мб, но всеравно сшивает долго.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 28-03-2023 в 12:02:

Для десяти тысяч квадов, как ни извращайся, но разницу ты не почувствуешь. Ни на десктопах ни на телефонах. Может на RivaTNT была бы разница.

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 28-03-2023 в 12:05:

FiEctro квады ты можешь отсекать по вьюпорту. Или тебе нужно отобразить их на одном экране? Тогда проще прекалькуляцию в файл произвести, как оверлеи для карт в CS

__________________
-Brain is dead-


Отправлено FiEctro 28-03-2023 в 13:19:

Так такие разрешения картинок слоёв это норма?

Добавлено 28-03-2023 в 16:19:

Цитата:
Дядя Миша писал:
Для десяти тысяч квадов, как ни извращайся, но разницу ты не почувствуешь.


Т.е. лучше их не сшивать? На производительность это никак не повлияет, но при этом увеличит скорость загрузки?

Цитата:
KiQ писал:
FiEctro квады ты можешь отсекать по вьюпорту. Или тебе нужно отобразить их на одном экране? Тогда проще прекалькуляцию в файл произвести, как оверлеи для карт в CS



Мне нужно отрисовать тайловую карту из файла. Для этого делается цикл где каждой клеточки тайла задаётся отдельный спрайт с ссылкой на текстуру и UV координатой. В нашем случае это карта 100х100 клеточек, а значит нужно отрисовать 10000 спрайтов. У всех их одна текстура, но UV сдвинута так чтобы рисовался только нужный участок тайлсета.

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 28-03-2023 в 13:36:

Ну вот смотри у тебя картинки вполне кошерного размера и кратные двойке. На кой ляд ты собрался их сшивать?
Лайтмапы сшивают, потому что там куча мелкого дерьма размеров 1х1, 2х7, 5х3 и прочего.

Добавлено 28-03-2023 в 16:34:

Цитата:
FiEctro писал:
В нашем случае это карта 100х100 клеточек, а значит нужно отрисовать 10000 спрайтов

Мысленно представь, что консолька в халфе - это твои десять тысяч тайлов, только вместо картинок - буквы. Оно и в 98-м году не тормозило. А рисовалось точно также - в цикле и по буковке. И до сих пор зачастую рисуются именно так, безо всякой оптимизации. Ну потому что некритично.
Я даже через свою виртуальную машину в меню рисовал эти грёбанные буквы и то не заметил драматического падения производительности.

Добавлено 28-03-2023 в 16:36:

ЗЫ. Если DX уронит фпс во время отрисовки этих тайлов из-за высокой стоимости дипа, я буду очень долго ржать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 28-03-2023 в 13:48:

Цитата:
Дядя Миша писал:
ЗЫ. Если DX уронит фпс во время отрисовки этих тайлов из-за высокой стоимости дипа, я буду очень долго ржать.


А что за дип? Ну будет обидно. Надеюсь ещё не появятся мерзкие щели между тайлами? Я до этого рисовал на виндовсформах, и там если не сшить всё в 1 картинку, в местах стыков спрайтов появлялись щели. И что то вопросу со шрифтами?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 14:42:

Как из моноширинного сделать обычный? Моноширинные гарнитуры были придуманы для пишущих машинок, чтобы текст нормально смотрелся, потому что там нельзя никак применить кернинг. В наборных шрифтах обычно таблица кернинга хранится в самом файле шрифта, если это, конечно, не корявый рип.


Отправлено Дядя Миша 28-03-2023 в 14:57:

Цитата:
FiEctro писал:
А что за дип?

один вызов Draw Indexed Primitive

Цитата:
FiEctro писал:
Надеюсь ещё не появятся мерзкие щели между тайлами?

Ну если оформишь вертексы в целочисленный формат - обязательно появятся, даже не сомневайся.

Цитата:
FiEctro писал:
Я до этого рисовал на виндовсформах

Округлять не пробовал?

Цитата:
ZGreen писал:
Как из моноширинного сделать обычный?

ДА НЕ КАК!

Добавлено 28-03-2023 в 17:57:

Ну хотя, с учётом современных реалий. Может есть какая-то специально обученная нейросеть?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 28-03-2023 в 15:35:

Цитата:
Дядя Миша писал:
ДА НЕ КАК!


Ну так то можно проверять альфу по высоте в каждом чарактере, и если там нет пикселей удалять весь столбец, но проблема в том что я хз как это средствами директа сделать.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 16:23:

А в пробеле сколько пикселей?


Отправлено FiEctro 28-03-2023 в 16:45:

ZGreen
Ну логично если в чарактере нет вообще пикселей то это пробел, и его обрезать не надо

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 16:49:

Теперь я потерял нить рассуждения. Можешь описать свою задачу? А то моноширинный шрифт переделать в обычный и т д. Может мы в терминах расходимся? Я некоторое время имел отношение к издательской деятельности и с шрифтами у меня определенные ассоциации. Что имеешь в виду ты?


Отправлено FiEctro 28-03-2023 в 16:53:

ZGreen
Чтобы ширина каждого чарактера была своя. Например символы "I" и "W" имеют разную ширину.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 16:57:

Очевидно это в откерненых шрифтах интервалы плавают, а в мониширинных нет, на то они и моноширинные. Я так полагаю, что ты берешь какую-то гарнитуру и пишешь как будто шрифт моноширинный и получается убого? Так ты выводи каждый символ с оффсетом, а не пиксели отпиливай. Ну или возьми настоящий моноширинный шрифт и пиши им, будет смотреться нормально

Добавлено 28-03-2023 в 23:57:

code:
I W


По сути одинаковая ширина. Буквы специально так нарисованы, чтобы компенсировать недостатки метода набора.


Отправлено FiEctro 28-03-2023 в 16:59:

ZGreen
Скорее просто расстояние между буквами очень большое. А если их сделать уже, то уже сильнее заметно как это расстояние плавает, ибо в самом шрифте буквы нарисованы разной ширины.

Цитата:
ZGreen писал:
Так ты выводи каждый символ с оффсетом


Так, а где этот оффсет взять?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 17:01:

У тебя шрифт какой используется, что такие проблемы?


Отправлено FiEctro 28-03-2023 в 17:02:

Цитата:
ZGreen писал:
У тебя шрифт какой используется, что такие проблемы?


Обычная битмаповая картинка, вроде этой: https://www.moddb.com/addons/font-f...-shooters-farts

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ZGreen 28-03-2023 в 17:03:

Если шрифт с кернингом, можешь в фотошопе сетку покрупнее сделать, набрать символы и в параметрах текста выбрать тип кернинга, оптический или по метрике в шрифте (если есть) ну и там по пикселям посмотреть-посчитать. Так мне было бы проще всего. У меня контейнер шрифтовой разбирать ума не хватат, хотя описания формата в сети, конечно, есть.


Отправлено FiEctro 28-03-2023 в 18:45:

У кого нибудь есть ASCII таблица символов в кодировке UTF-16? Русская раскладка там за 1000 переваливает. Интересно какие там граничащие символы.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 28-03-2023 в 19:47:

Цитата:
FiEctro писал:
Ну так то можно проверять альфу по высоте в каждом чарактере

проверкой альфы ты кернинг не восстановишь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 28-03-2023 в 19:52:

Дядя Миша
Есть какая нить утилита которая бы могла генерить битмапу и записывать все эти данные в отдельный файл?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 28-03-2023 в 21:30:

Цитата:
FiEctro писал:
Есть какая нить утилита которая бы могла генерить битмапу и записывать все эти данные в отдельный файл?

Есть. В самой первой бете ксаша была утилита для генерации растровых шрифтов.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 29-03-2023 в 21:30:

Дядя Миша
Можно ссылку?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


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

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