Andrey
> а теперь посмотри профайлером для сотни шейдеров и у каждого по десятку
> констант.
А как по-твоему Effects сделаны ? А ведь игры пишут на effects. Если у тебя 100 шейдеров то и объектов на сцене не 10 штук :)
Хотя, не отрицаю, это далеко не самый быстрый способ. Ты его спросил - ему нужно выпендриваться или чтобы был удобный способ передачи uniforms для тестов ?
Ghost2
> Да. Теперь человек, который это сделал (написал свой мап) задумывается над
> ситуацией войны const char* и string и придумывает себе класс immutable_string
> (ну или как-нибудь покороче :) И так многие выходят, на нелегкую тропу
> кастомизаторов STL, с которой недалеко свернуть на широкую дорогу "no STL".
У меня сейчас на проекте куча логических контейнеров сделана на stl. Хотя, не спорю, есть места где явный перебор c stl :)
Тут и аналог immutable_string есть.
San
тогда это
manager->SetUniform("new", value);хардкод с очень неприятным запахом...
> const char* UNIFORM_1 = "uniform_1";
> const char* UNIFORM_2 = "uniform_2";
это можно генерировать на этапе сборки ресурсов...
Andrey
> > > GLint*
> > ээ?
> что непонятно?
почему поинтер? Attribute/Uniform location это GLint.
Pushkoff
> тогда это
>
> manager->SetUniform("new", value);
>
> хардкод с очень неприятным запахом...
это уже намного более гибкий и безопасный хардкод. За такой уже не бьют :))
innuendo
> Тут и аналог immutable_string есть.
Дал бы пять рублей за возможность поглядеть.
San
>почему поинтер? Attribute/Uniform location это GLint.
я когда набирал, у кого-то скопировал и поменял uniforn на GLuint, звездочку убрать забыл...
> это уже намного более гибкий и безопасный хардкод. За такой уже не бьют :))
я посмотрю на тебя, когда вдруг в шейдере new станет ненужен, как будешь искать/менять/удалять и тп... а так убрал объявление переменной и получил все места где она используется, тем более тебе в любом случае надо будет помнить какую либо строку, неважно будет это имя переменной или сама строка...
// вспомнил себя когда эффект "show" поменяли на "onshow"...
Pushkoff
> manager->SetUniform(name, value);
а вот так?
Нафига вообще помнить имена переменных шейдеров?
не, ну жесть! :) я хотя бы по теме флеймил :)
Давайте может откроем новую тему про ID3DXEffect и все схожие конструкции ?
Nikopol
> Давайте может откроем новую тему про ID3DXEffect и все схожие конструкции ?
Всё начилось с http://www.gamedev.ru/flame/forum/?id=85560&page=79#m1183
Есть тут один любитель передавать константы за 1 вызов :)
есть вопрос по теме
есть такой код
std::istream &inStream = ... inStream >> std::ios::binary;
что изменить чтоб снова заработало?? сейчас оно не компилится, но когда-то давно (VC6.0) компилилось...
Pushkoff
попробуй так.
std::ios_base::binary
Опять тормозные потоки.
Andrey
> Опять тормозные потоки.
опять пытаются на реактивном самолёте перелететь на соседнюю улицу :)
Andrey
не помогло...
Pushkoff
что за ошибка кстати?
ожет в MSDN глянуть
Тема в архиве.
Тема закрыта.