Компания NVIDIA передала язык шейдеров Slang и связанный с ним компилятор под покровительство консорциума Khronos, занимающегося разработкой графических стандартов. Предполагается, что разработка проекта Slang на независимой площадке Khronos позволит привлечь в проект новых участников. Язык создан как совместный проект NVIDIA и ведущих университетов США (Университет Карнеги-Меллона, Стэнфордфордский университет, Массачусетский технологический институт, Калифорнийский университет в Сан-Диего и Вашингтонский университет). О поддержке нового совместного проекта заявили компании Autodesk, Adobe, id Software, Igalia и Valve. Код компилятора написан на языке C++ и открыт под лицензией Apache 2.0. Компилятором поддерживаются платформы Linux, Windows, macOS и WebAssembly...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62279
> написал шейдер один раз, запускай где угодноНаписал шейдер один раз, теперь отлаживай везде.
ну так чему и научила Java. Ага, один раз и везде, щаз.
Один раз напиши, семь раз отладь
> теперь отлаживай везде.Шейдер спит - зарплата идëт
Это то самое которая в сталкере 2 используется?
Да, там чето долго.И вот что я понять не могу, - а почему 160 гб? Как бы не жалко, но ведь много же?
Стоковые ассеты забыли удалить. Ну и там сжатие бывает что в 20 раз можно сжать без ухищрений. Обычное дело.
Репак — 130 с чем-то гигабайт. Видимо, не шибко-то жмётся.
Там страна лучших программистов, ну. Круче индусов даже.
Страна лучших программистов — это про «Смуту». Зато на 80 Гб винчестер влезет!
да вроде типично для пятоанрильного проекта с большой картой.. вот еслиб полностью выкинули запечённый свет оставив только динамический то похудела бы до 60, но так пока только в starwars outlaws сделали и то не без жертв в стилистике.. а тут и тот и тот сделан такчто и место жрётся и фепесики жрутся хлудшее обоих миров собрали. но что поделаешь
в сталкере - что под руку рабочее попалось. проблема ue5 проектов - там надо долго и нудно полиш
сомнительно чтобы в сталкере шейдеры компилились через сланг а не через стандартный анриловский компилятор хлсл шейдеров..
Приходится завязываться на shaderc, который является обёрткой, потому что glslang такое кривое дерьмище, отваливающееся в каждом обновлении. Сабж тоже угробят.
Нужен 16-ый стандарт.
Нвидия режет Косты денег им мало. И так уже дороже апле, но нет надо больше золото. Все эти сказки про привлечение пользователей и независимые площадки мы слышали много раз.
>Компания NVIDIA передала язык шейдеров Slang и связанный с ним >компиляторВ английском языке слова закончились, или студенты про Slang не слышали? Или тут типа с большой буквы :)
думаю это от S(hader) Lang(uage)
Тогда бы надо было сразу -- shlang. Вот бы здесь начало подгорать от путаницы :D
"А нарисуй мне 3D-шланг на Шланг"?
> "А нарисуй мне 3D-шланг на Шланг"?Не совсем. Просто шлангом здесь пренебрежительно называют Clang.
Неужели мы вернёмся во времена, когда не нужно было компилировать шейдеры пол часа?
Для этого заставить видеокарты снова использовать унифицированные шейдеры вместо того зоопарка что сейчас. Казнить и расстреливать всех погромистов что пишут не на hlsl\glsl и следить за этим в реальном времени.
Успехов это форсить)
Почему ты так решил? Тут же сказано что дженерики ввели чтоб было удобно писать более жирные шейдеры. Но во времена долгой компиляции шейдеров вроде никто не планирует возвращается, всех же устраивает периодически фризящая картинка с он-тайм компиляцией.
Что там у тебя за железо, что шейдеры компилит пол часа?
Shadow of Tomb Raider, при запуске компилит(пишет Обработка шейдеров Vulkan) шейдеры 5 минут(только что проверил) на 3900Х и 4070Ti, хотя видеокарта не важна вроде, по top все 12 ядер заняты обработкой, на процессоре это делает. Да, можно прервать, но если не прерывать, то вот так. Запускаю из стима под линуксом.
> Shadow of Tomb Raider, при запуске компилит(пишет Обработка шейдеров Vulkan) шейдеры 5
> минут(только что проверил) на 3900Х и 4070Ti, хотя видеокарта не важна
> вроде, по top все 12 ядер заняты обработкой, на процессоре это
> делает. Да, можно прервать, но если не прерывать, то вот так.
> Запускаю из стима под линуксом.Во-первых, где я говорил что шейдеры не компилятся? Компилятся. Но пол часа это перебор.
Во-вторых, третья серия райзенов это весьма так себе по производительности. Давно бы поменял его на 5xxx, там даже мать менять не надо, а производительность вот реально раза в полтора будет больше.
У меня на R9 7900x в последней драгонаге шейдеры компились пару минут даже наверное чуть меньше.
Не вернёмся. В этом вина исключительно разработчиков игр, которые используют новомодные техники вроде specialisation constants, которые делают из одного универсального шейдера сотню разных, а всё это чудо надо ещё потом скомпилировать...
Почему Crysis 3 (не ремастер) не лагает на современном железе, а игры на Unreal 5 зачастую тормозят? Ответ кроется в том, что программисты слишком заигрались со сложными шейдерами и попытками их оптимизировать. У всего должен быть предел.
увы нет. тут помогут либо системы кеширования прекомпиленых шейдеров и их распространение с игрой как может делать стим и как делают консоли, либо динамическая компиляция шейдеров что может приводить к графическим глитчам либо правильная настройка системного кэша шейдеров видеокарты чтобы хотябы не каждый раз на запуске компилить а только если что-то в игре изменилось.. ну и естественно компиляция шейдеров не целой пачкой а грамотно разбитыми кусками чтобы при небольших патчах перекомпилировать приходилось бы малый кусочек кэша.. впрочем это компилятор может будет чутка быстрее предыдущих но врятли существенно.
Да там жеж история какая. Когда то OpenGL был исторически первым стандартом 3D. А потом пришло более удачное D3D, все производители видушек ринулись его поддерживать и OpenGL ничего не оставалось, кроме как просто копировать функционал D3D и прибивать его фишки костылями. Так пде примерно и с этими шейдерными языками. Надо было обязательно изобрести несколько несовместимых между собой, чтобы проггерам было "удобнее". Именно из за этого винда и жива до сих пор, что там все стандартизовано и зачастую разрабы не хотят парится и просто выбирают D3D12.
Теперь и в линуксе будет стандартизировано? Или новость не про это?
Да
А как с++-биндинги-то написать к этим шейдерам универсально а не шесть отдельных рендереров?
Cuda куда девалась?