HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (241): « Первая ... « 41 42 43 44 [45] 46 47 48 49 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Бывает так, что рендерер все полигоны трактует как полупрозрачные, включая те, у которых opacity 1.0?

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

Старое сообщение 27-11-2019 18:43
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Рендерер не смотрит на блендфунки и opacity. У него главный критерий - отключённая запись в буффер глубины.

Добавлено 28-11-2019 в 09:24:

Подключил тем временем текс-моды, всё заерзало и закрутилось. Ну уже похоже на кутри. Остались rgbGen и alphaGen.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-11-2019 06:24
-
 Дядя Миша
racing for fish

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

Рейтинг



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

Добавлено 28-11-2019 в 16:22:

Вот же грёбанная задачка, из шейдера стейты не поменяешь, а рисовать всё с blendFunc( GL_ONE, GL_ONE ) - значит решётки будут полупрозрачными.

Добавлено 28-11-2019 в 18:57:

Практически завершил работу над шейдерами. Проблема с прозрачностью, увы, никуда не делась. Комбинированный материал со стадиями trans->solid навряд ли возможно нарисовать через стандартный блендфунк. Рази что через копию экрана.

Добавлено 28-11-2019 в 18:59:

А остальное всё работает, не хуже чем в ку3
Мигает, двигается, елозит, ползает по трубам и так далее.

Добавлено 28-11-2019 в 21:58:

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

Добавлено 28-11-2019 в 22:01:

А, да, формат аним-кадров забыл показать

C++ Source Code:
1
image u_ColorMap<stageNum> = "<frame0>";\
2
addUnitFrame( u_ColorMap<stageNum>, <frame1>, 1 );\
3
addUnitFrame( u_ColorMap<stageNum>, <frame2>, 2 );\
4
addUnitFrame( u_ColorMap<stageNum>, <frame3>, 3 );\
5
addUnitFrame( u_ColorMap<stageNum>, <frame4>, 4 );\
6
addUnitFrame( u_ColorMap<stageNum>, <frame5>, 5 );\
7
addUnitFrame( u_ColorMap<stageNum>, <frame6>, 6 );\
8
addUnitFrame( u_ColorMap<stageNum>, <frame7>, 7 );\
9
setUnitFramerate( u_ColorMap<stageNum>, <fps> );

это кусок риплейса, не пугайтесь странным значениям.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-11-2019 19:01
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



Дядя Миша
Ухтыж, скажи, а вот таким способом можно будет аддитивно наложить рендер с монитора на диффузный материал?

__________________
http://www.moddb.com/mods/monorail-quest

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

Старое сообщение 28-11-2019 19:17
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Цитата:
Дядя Миша писал:
Комбинированный материал со стадиями trans->solid навряд ли возможно нарисовать через стандартный блендфунк.

Пробовал через коммутативный, как тут?
http://www.openglsuperbible.com/201...ally-necessary/

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

Старое сообщение 28-11-2019 19:38
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
thambs писал:
а вот таким способом можно будет аддитивно наложить рендер с монитора на диффузный материал?

таким это каким?

Цитата:
nemyax писал:
Пробовал через коммутативный, как тут?

дело не в коммутации же. Нарушен порядок смешивания. Он там в статье верно говорит, если бы всё смешивалось через GL_ONE, GL_ONE то порядок был бы неважно.
Как есть сейчас:
C++ Source Code:
1
pass0 (GL_ONE, GL_ONE) +
2
pass1 (REPLACE) +
3
pass2 (GL_DST_COLOR, GL_ZERO) +
4
screen

как должно быть
C++ Source Code:
1
pass0 (GL_ONE, GL_ONE) +
2
screen +
3
pass1 (REPLACE) +
4
pass2 (GL_DST_COLOR, GL_ZERO)

Разница в том, что в первом случае для шейдера включён внешний бленд, т.е. мешается итоговый результат. Ессно получается вот такая ерунда.

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

Добавлено 29-11-2019 в 09:41:

Вообще, посмотрел я на свои скрипты для рендеринга и окончательно утвердился в мысли, что для игровой части нужна полноценная скрипт-машина. Вот это вот стремление вынести в игровую дллку побольше связанного кода в конечном итоге только отпугивает потенциальных пользователей. Тем кто рисует текстурки, даже просто студию поставить - как серпом об асфальт. В тоже время когда существует масса лёгких IDE с подсветкой и возможностью запустить по горячей кнопке какую-либо командную строку для компиляции. Так что я полагаю надо сделать нечто вроде progs.dat и перенести все энтити туда. В таких скриптах даже наш Жэка разобрался - сундук вон сделал.

Добавлено 29-11-2019 в 09:42:

Главное чтобы скриптовой язык не было похож на UnrealScript где миллион новых кейвордов. Дичь какая-то.

[ Вложение ]
q3dm0_0000.jpg

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 29-11-2019 06:42
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



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

Он разбирает ещё и glBlendFunc(GL_ZERO, GL_SRC_COLOR);

Цитата:
Дядя Миша писал:
Главное чтобы скриптовой язык не было похож на UnrealScript где миллион новых кейвордов.

Лишь бы укладывалось в какую-нибудь популярную подсветку, сишную там, плюсовую или шарповую.

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

Старое сообщение 29-11-2019 13:24
- За что?
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 516
Возраст: 26

Рейтинг



nemyax как оказывается, ничего читабельнее Си-подобного синтаксиса нет.

__________________
Xash3D FWGS форк

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

Старое сообщение 29-11-2019 13:37
- За что?
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



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

__________________
http://www.moddb.com/mods/monorail-quest

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

Старое сообщение 29-11-2019 13:38
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



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

Добавлено 29-11-2019 в 16:44:

Цитата:
thambs писал:
убрать вездесущие точки с запятой перед переводом на следующую строку

Нинада, вносит неоднозначность.

Цитата:
thambs писал:
определения типов длиной в строку

Ты про шаблоны штоле? Скрипты не решают задач, требующих подобных определений.

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

Старое сообщение 29-11-2019 13:44
- За что?
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



Цитата:
Нинада, вносит неоднозначность.

Приведи пример.

__________________
http://www.moddb.com/mods/monorail-quest

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

Старое сообщение 29-11-2019 13:48
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



thambs
Пример не пример, а в общем случае непонятно, считать перевод строки концом стейтмента или нет. В сях вот всё просто: не считать.

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

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

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

Рейтинг



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

Добавлено 30-11-2019 в 14:37:

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

[ Вложение ]
q3dm0_0000.jpg

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 30-11-2019 11:37
-
 Дядя Миша
racing for fish

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

Рейтинг



Туманчег

Добавлено 30-11-2019 в 16:02:

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

Так. Судя по всему старый механизм условий уже не удовлетворяет возросшим требованиям. Пора его обновить и расширить.

[ Вложение ]
q3dm7_0000.jpg

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 30-11-2019 13:02
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Дядя Миша
Карты оригинальные кутрёвые или ты что-то с ними дополнительно делал?

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

Старое сообщение 30-11-2019 13:47
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 01:53. Новая тема    Ответить
Страницы (241): « Первая ... « 41 42 43 44 [45] 46 47 48 49 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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