NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Тема для оффтопа II  (Прочитано 1095549 раз)

0 Пользователей и 12 Гостей смотрят эту тему.

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За релиз ЮниМода За набор курсоров для Windows За разгадку главного секрета Nox Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

На днях я упомянул про шейдеры на Forth.
Лично у меня на том сайте всё жутко лагало. Пришла в голову мысль, что проблема в webGL, который странно работает на моём компьютере... Так может на openGL всё бы хорошо пошло?
И вот наступили каникулы.
Не имея особо выбора я взял фреймворк love2d. Шейдер запустить - тут много не надо.
Основная задача - сгенерировать код на GLSL из Forth.
~ 500 строк кода на Lua, хватило.
В целом, мой выходной код получился получше чем тот, что на сайте. (хотя далёк от нормального)
Запускаю проект, получаю те же лаги. Ну чуть-чуть быстрее работает.
Переписываю один шейдер руками, по всем правилам. Всё работает удивительно быстро.

Основное различие - в сгенерированном коде, каждая операция выполняется отдельно:
s1 = sin(s1 + abs(s2))
Превратиться в что-то такое:
s2 = abs(s2)
s1 = s1 + s2
s1 = sin(s1)

Я знал, что так и будет, я так же знал, что GLSL, по словам разработчиков, генерирует очень оптимизированный код.
Видимо кто-то обманулся.
Записан
Пользуйтесь UniMod-ом.
Расширенный поиск  
 

Страница сгенерирована за 0.062 секунд. Запросов: 21.