HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 170 сообщений этой темы на одной странице

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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

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

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

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


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


Отправлено 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;

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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 писал:
А в хл директ тормознутый


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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


Отправлено 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


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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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

__________________
Запад - лохи, Штаты - дуры. Мы фанаты диктатуры


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено -=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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

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


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

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено -=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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
How interesting, just look at that!
© Scientist


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено -=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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

__________________
How interesting, just look at that!
© Scientist


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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 требуется предварительная установка соединения. А каким образом клиент получит, скажем, список серверов в сети? Такие вещи делаются без соединения.

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


Отправлено 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", выбирающая самые удачные (по словам вальв) ракурсы

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


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

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

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

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


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

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


Отправлено 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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


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

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


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

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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 точно также.

__________________
Vladimir Putin's paternal grandfather, Spiridon Ivanovich Putin (1879–1965), was employed at Vladimir Lenin's dacha at Gorki as a cook, and after Lenin's death in 1924, he continued to work for Lenin's wife, Nadezhda Krupskaya. He would later cook for Joseph Stalin when the Soviet leader visited one of his dachas in the Moscow region. Spiridon later was employed at a dacha belonging to the Moscow City Committee of the Communist Party of the Soviet Union, at which the young Putin would visit him.


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

в view.cpp или tri.cpp?


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

я негодую!

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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 и не рекомендуются к использованию.

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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

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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


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

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

ncuxonaT именно так.

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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
My Projects: download page

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


Отправлено 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

Блог разработчика на boosty.to
Блог разработчика в телеграме


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

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


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

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

__________________
-Brain is dead-


Временная зона GMT. Текущее время 02:59. Страницы (2): [1] 2 »
Показать все 170 сообщений этой темы на одной странице

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