gammaker
> Какой такой магией? Я даже побитовых операций не использую.
Начиная с G80+ есть true integer и писать желательно чётко что ты хочешь в шейдере иначе могут быть неприятности :)
Какой такой магией? Я даже побитовых операций не использую.
Литералы без точечек, касты не везде, ну и целочисленных операций там всего одна, %, но ведь достаточно чтобы где-то в одном месте не сработало, и все поломалось.
В каком плане тяжёлые? У меня даже на нетбуке не тормозят.
Ну если там шейдеры выполняются только один раз - то ок. Кроме того они тяжелые для чтения на мой взгляд. В общем мне с ходу сложно сказать где оно работает не правильно.
Я бы сказал шейдеры не столько сложные, сколько нечитабельные. :)
MrShoor
> Кроме того они тяжелые для чтения на мой взгляд. В общем мне с ходу сложно
> сказать где оно работает не правильно.
В смысле переносов строк не хватает? А то у меня движок в начало вставляет служебные строки, плюс для генерации текстур пользователь передаёт формулу в одну строчку, а движок сам делает так, чтобы всё это было верного типа, вставляя лишние приведения типов, и записывалось в gl_FragColor. Это нечитабельно?
MrShoor
> и целочисленных операций там всего одна, %, но ведь достаточно чтобы где-то в
> одном месте не сработало, и все поломалось.
Рядом с ней разве есть проблемы с кастами?
innuendo
> Начиная с G80+ есть true integer и писать желательно чётко что ты хочешь в
> шейдере иначе могут быть неприятности :)
На CPU они вообще всегда были, и C\C++ как-то разруливает. Разве в GLSL по стандарту нет неявного преобразования int во float при intValue <op> floatValue? Допустим есть два целых числа. Мне нужно поделить a на b, и получить float с дробной частью. Как это короче всего записать, чтобы было корректно? Неужели короче "float(a)/float(b)" нельзя?
Я наверное как-нибудь попробую запустить свой движок на Mesa драйверах в Linux. Там он тоже что-то непонятное выводит. Может быть исправлю ошибку и заработает и на NVidia?
gammaker
> На CPU они вообще всегда были, и C\C++ как-то разруливает. Разве в GLSL по
> стандарту нет неявного преобразования int во float при intValue <op>
> floatValue?
GLSL компиляторы разные ...
Ребят, такой вопрос: на геометрическом шейдере получается можно рисовать микрополиками (не используя трассировщик) - вопрос насколько быстро это дело будет происходить? (или рейкастинг, всё-же лучше?)
Odin P. Morgan
Извини, но я ничерта не понял.
Odin P. Morgan
> Ребят, такой вопрос: на геометрическом шейдере получается можно рисовать
> микрополиками (не используя трассировщик) - вопрос насколько быстро это дело
> будет происходить? (или рейкастинг, всё-же лучше?)
Тесселяция спасёт отца русской демократии ?
Тема в архиве.