master07 писал: На скриншотах, мне кажется, нет никаких различий.
У тебя просто видяха старая, шейдеры не отображает, поэтому оба скрина одинаково выглядят )
Скрины не честные, опять же. Изначально текстурки подразумевают доводку их шейдерами, они "плоские". И лайтмап нет. Попробуйте наложить шейдеры на текстуры, которые изначально рисовались под чистое отображение с лайтмапами и сделать фулбрайтовый скриншот без всех этих динамических теней и прочих затенений - еще та тошнота выйдет.
Scrama
Шейдеры могут доводить текстуры по-разному.
Параллакс, например, вообще может отдельно от бампа применяться, а результат будет виден невооружённым глазом.
Я ему про Фому, он мне - про Ерему!
Смысл в том, что сцена изначально создается под определенный уровень технологий, и сравнивать два скриншота с заведомо однозначным выводом некорректно. Да и вообще вопрос изначально некорректен.
Scrama
Давай определимся.
Есть шейдеры, которые требуют арта, созданного определённым образом. Например, шейдеры нормалмаппинга. Скрины без шейдеров в этом случае будут смотреться убогими по определению, т.к. часть арта исчезает из пайплайна (нормалмапы).
Есть шейдеры, которые добавляют к арту любого уровня некоторые специальные эффекты. Например, параллакс и постобработка. Без шейдеров - не будет только привносимых ими эффектов, в целом качество сцены будет определяться тем же самым артом.
В первом случае шейдеры - необходимость (я бы даже сказал - игла, на которую посадили движок), во втором - опция для улучшения графики, и в этом случае сравнения "с и без" вполне корректны.
Мои скрины принадлежат к первому случаю, поэтому да, они не совсем корректны.
а по мне корректно, мы же не статичную сцену должны сравнивать где все запечено и без шейдеров против такой же картинки но уже все реалтайм, а то выходит что "hidden object" без шейдеров красивее остальных игр где такую картинку реалтайм не получить.
У шейдеров есть один замечательный плюс, по крайней мере теперь, когда все стандарты устаканились и можно писать на GLSL, практически как на чистом Си - и циклы есть и битовые флаги и условия. Самое главное преимущество для программиста - это полностью контролируемый порядок смешения множества текстур. Потому что через мультитекстуринг многие вещи тоже реализуются, или там через регистр комбайнеры, но хочется просто выть от того, насколько оно неудобно было. Я, к слову сказать, шейдерами принципиально не интерисовался до начала этого года.
Ну так сложилось, что более другие вещи в движке требовали моего внимания. А теперь углубился и понял что не зря. Сейчас самое время писать красивые рендереры на GLSL. Тем более с моим-то опытом.
В чём новость-то заключается? В том, что Дядя Миша невозбранно раздал хомячкам новую порцию обещаний? Ну, обещания вещь полезная, я по волатиле тоже иногда обещаю всякое.
А вот жалобы на "неудобство" регистр-комбайнеров - довольно спорные, учитывая, что Ксерокс их активно использовал в последнее десятилетие, да ещё и библиотечки для народа выкладывал по типу этой. ИЧСХ - у народа всё прекрасно работало, уж на что-что, а на глюки шейдеров в волатиле никогда жалоб не было.
XaeroX писал: В том, что Дядя Миша невозбранно раздал хомячкам новую порцию обещаний?
Интересно, каких именно обещаний я раздал?
Цитата:
XaeroX писал: А вот жалобы на "неудобство" регистр-комбайнеров - довольно спорные, учитывая, что Ксерокс их активно использовал в последнее десятилетие, да ещё и библиотечки для народа выкладывал по типу этой.
регистер-комбайнеры, это какая-то лютая дурь в плане интерфейсов.
ну вот скажи пожалуйста, что мешало парсинг асемблера упрятать внутрь драйвера, а снаружи реализовать ограниченный Си-синтаксис?
Почему мы проделали этот долгий и глупый путь от комбайнеров до GLSL.
Особенно, если учесть что GLSL был разработан в 1999 году, и его просто зажимали вплоть до 2005 года, используя все эти комбайнеры и Cg.
Дядя Миша писал: Интересно, каких именно обещаний я раздал?
Цитата:
Дядя Миша писал: Сейчас самое время писать красивые рендереры на GLSL. Тем более с моим-то опытом.
Цитата:
Дядя Миша писал: ну вот скажи пожалуйста, что мешало парсинг асемблера упрятать внутрь драйвера, а снаружи реализовать ограниченный Си-синтаксис?
Ничто не мешало. Упрятали. Назвали Cg. Я его использовал уже в 2003 году.
Цитата:
Дядя Миша писал: используя все эти комбайнеры и Cg.
А теперь глубоко вдохни...
Поддержка GLSL в дровах нвидии:
Цитата:
GL_SHADING_LANGUAGE_VERSION: 3.30 NVIDIA via Cg compiler
Т.е. GLSL - это очередной обман вендоров. Балом правит по-прежнему Cg, который, кстати, и в Direct3D-шейдеры компилировать умеет. Т.е. является по-настоящему универсальным инструментом.
Поэтому вполне резонно отказаться от GLSL и перейти на него. Единственное, что меня удерживает - необходимость тащить всякие cg**.dll с проектом. Если нвидия сделает статичную линковку - выбор будет очевиден.
Добавлено 15-04-2014 в 19:20:
Хотя, впрочем, это решаемо - шейдеры можно компилировать в разные профайлы на этапе разработки.
Более серьёзная проблема - андроид, т.к. там другой GLSL (ну тут всё как обычно у опенгля - вроде бы и стандарт, а вроде бы и нет). Возможно, нвидия сделает его поддержку.
XaeroX так каких обещаний я раздал? Я и скриншоты показывал и новый рендерер для паранои написал. Лужи вот. Так что это уже не обещания.
Цитата:
XaeroX писал: А теперь глубоко вдохни...
Поддержка GLSL в дровах нвидии:
Я в курсе, но теперь хотя бы есть условия, циклы и нормализация. А в 2003 году еще не было.
Цитата:
XaeroX писал: Т.е. GLSL - это очередной обман вендоров.
Почему обман??? Это абстракция высокого уровня. Ты еще скажи, что С++ - это очередной обман от Страуструпа, а после компиляции никаких классов не остаётся.
Цитата:
XaeroX писал: Поэтому вполне резонно отказаться от GLSL и перейти на него
Отказаться от нового слоя абстракции в пользу старого?