HLFX.Ru Forum Страницы (255): « Первая ... « 41 42 43 44 [45] 46 47 48 49 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)


Отправлено nemyax 27-11-2019 в 18:43:

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


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

Рендерер не смотрит на блендфунки и 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'


Отправлено Дядя Миша 28-11-2019 в 19:01:

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

Добавлено 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'


Отправлено thambs 28-11-2019 в 19:17:

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

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


Отправлено nemyax 28-11-2019 в 19:38:

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

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


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

Цитата:
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 где миллион новых кейвордов. Дичь какая-то.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 29-11-2019 в 13:24:

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

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

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

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


Отправлено a1batross 29-11-2019 в 13:37:

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

__________________
Xash3D FWGS форк


Отправлено thambs 29-11-2019 в 13:38:

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

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


Отправлено nemyax 29-11-2019 в 13:44:

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

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

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

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

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

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


Отправлено thambs 29-11-2019 в 13:48:

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

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

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


Отправлено nemyax 29-11-2019 в 14:07:

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


Отправлено Дядя Миша 30-11-2019 в 11:37:

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

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

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 30-11-2019 в 13:02:

Туманчег

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

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

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 30-11-2019 в 13:47:

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


Временная зона GMT. Текущее время 03:21. Страницы (255): « Первая ... « 41 42 43 44 [45] 46 47 48 49 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

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