Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

[АРХИВ] Шейдеры, техники, rendering path'ы (20 стр)

Страницы: 119 20 21 2224 Следующая »
#285
22:26, 13 фев. 2016

Ну я то у себя добавил, проблем нет, но это же баг, не?


#286
22:52, 13 фев. 2016

не, это фича же )

#287
23:04, 13 фев. 2016

а, ну ок тогда)

#288
1:29, 14 фев. 2016

добавил немножко блюра для NPR-рендеринга :)

Изображение

#289
1:34, 14 фев. 2016

Адоб банкрот )

#290
11:21, 14 фев. 2016

В ухе же нет техники где AO берется из вертекса, а не из текстуры ?

>Адоб банкрот )
Я тоже так подумал :) но у них ctrl+z работает, а у меня нет (

#291
12:23, 14 фев. 2016

codingmonkey
> В ухе же нет техники где AO берется из вертекса, а не из текстуры ?

да вроде нету

#292
12:44, 14 фев. 2016
codingmonkey
> но у них ctrl+z работает, а у меня нет (

Так ведь шаблон же

+ Показать

#293
14:01, 14 фев. 2016

У меня в примере рисуется прямо в RT, куда там шаблон этот вставлять чтобы "отмена" работала?)
https://github.com/MonkeyFirst/urho3d-rtt-paint

Дело не в шаблонах, а в валидном функциональном окружении для их функционирования прежде всего.
Вот допустим ты по растру вазюкаешь мышкой некоторой выбранной кистью.
И тут ты либо заполняешь стек команд для PaintEngine на каждую такую "вазюку"
Этот стек команд ты рендеришь каждый кадр на layer(rtt) и поэтому можешь оперативно выкидывать любое действие юзверя из того что он наворотил.
Либо грубый вариант, это - на каждую "вазюку" создавать layer(rtt) с мазком и потом стопку этих layers мерджить (снизу вверх), тут ты будешь выкидывать layers, a не команды для PaintEngine.
В общем, то был просто пример для того чувака который рисует на cpu side по указателям и я не собирался делать рисовалку если чо :)


>да вроде нету
блендер же может запеч АO в Vcol

а в лайауте видел две маски которые нигде походу не юзаются

ELEMENT_CUBE_UV1    = 0x0020
ELEMENT_CUBE_UV2    = 0x0040

/// Vertex elements.
enum VertexElement
{
    ELEMENT_CUBETEXCOORD1,
    ELEMENT_CUBETEXCOORD2,


    glBindAttribLocation(object_, 8, "iCubeTexCoord");
    glBindAttribLocation(object_, 9, "iCubeTexCoord2");


attribute vec3 iCubeTexCoord;
attribute vec4 iCubeTexCoord2;

по-моему это два vec3(а судя по attribute даже vec3+vec4) т.е. при желании их можно юзать для чего-то другого и в данном случае запихнуть АО-вершинный

#294
15:45, 14 фев. 2016

codingmonkey
> и я не собирался делать рисовалку если чо :)

Я это по названию сразу понял xD

#295
20:36, 24 фев. 2016

1vanK
> Если я клонирую материал, то при рендеринге будут дополнительные батчи создаваться или нет? Шейдер тот же
> Я имею в виду, если в сцене куча уникальных материалов
> EDIT: ну да, проверил, в 10 раз больше батчей, печально

1vanK
> Допустим мне нужно некоторые объекты в сцене подсветить. Я создают для каждого
> объекта компонент или переменную, который содержит флаг - подсвечен ли объект.
> Если нужно подсветить объект, я клонирую материал (делаю его уникальным) и
> задаю ему параметры шейдера. Когда мне надо снять подсветку с объекта я вновь
> загружаю дефолтный материал. Таким образом лишних батчей не будет создаваться
> (так где возможно будет использоваться стандартный материал)

У меня хорошие новости! Очень хорошие! Протестировал я на сцене с гигантским числом объектов и выяснил вот что. Можно смело клонировать хоть каждый материал в сцене. Будут хоть десятки тысяч батчей. Но на фпс это не отразится никак.

Раньше я тестировал на отладочной версии движка и было проседание фпс порядка 30%. Однако сейчас я протестировал на релизной версии движка и фпс не меняется, хоть клонируй материалы, хоть нет. Есть предположение, что проседание на отладочной версии движка вызвано тем самым циклом сортировки батчей по шейдерам. А как известно, все что выполняется на процессоре, в отладочной версии работает сильно медленее. Возможно, микрософтовский компилятор использует какую-то хитрую оптимизацию циклов в релизной версии.  Или релизный код компактнее и влезает в кеш процессора.

#296
23:33, 24 фев. 2016

ты говоришь что можно юзать на анимационной модели, но у тебя нет тех нимбов от грибов, которые в том видосе у зомбей есть :))

>Есть предположение, что проседание на отладочной версии движка вызвано тем самым циклом сортировки батчей по шейдерам.
он же хеш поправил какой-то :)
раньше походу все материалы вообще походу тупо в отдельные батчи уходили (новые установки шейдера если хеш не совпадал, хотя хз где этот хеш используется) а щас наверное ток юниформы заливаются, если все остальное тоже самое с пред. установки идет.
попробуй сейчас сравнить дебаг и релиз версию

#297
23:38, 24 фев. 2016

> он же хеш поправил какой-то :)
не не не, он добавил клонирование хеша параметров шейдера, то есть количество копий не уменьшилось, а наоборот )

> новые установки шейдера если хеш не совпадал

этот хеш как раз совпадал у разных материалов )

к тому-же я в новой версии тоже затестил отладочную сборку движка, все также фпс падает )

#298
23:42, 24 фев. 2016

Кстати не забудь, что в сцене должны быть разные объекты с разными материалами, чтобы движок был вынужден переключаться между ними, а то получшиь и дебаг версию без замедлений))

#299
23:35, 25 фев. 2016

Почему рендеринг в кубемапу рендерит только в один её фейс ?
Я пытаюсь заснуть ProcSky в редактор и у меня работает только один фейс почему-то(
Хотя вот же, задаю рендер-команды вроде как нужно

    cmd.Resize(MAX_CUBEMAP_FACES);
    for (int i = 0; i < MAX_CUBEMAP_FACES; ++i) 
    {
        cmd[i].enabled = true;
        cmd[i].blendMode = BLEND_REPLACE;
        cmd[i].tag = "ProcSky";
        cmd[i].type = CMD_QUAD;
        cmd[i].sortMode = SORT_BACKTOFRONT;
        cmd[i].pass = "base";
        cmd[i].SetOutput(i, "DiffProcSky");
        cmd[i].vertexShaderName = "ProcSky";
        cmd[i].vertexShaderDefines = "";
        cmd[i].pixelShaderName = "ProcSky";
        cmd[i].pixelShaderDefines = "";
        
        cmd[i].shaderParameters["Kr"] = atmoParams["Kr"];
        cmd[i].shaderParameters["RayleighBrightness"] = atmoParams["RayleighBrightness"];
        cmd[i].shaderParameters["MieBrightness"] = atmoParams["MieBrightness"];
        cmd[i].shaderParameters["SpotBrightness"] = atmoParams["SpotBrightness"];
        cmd[i].shaderParameters["ScatterStrength"] = atmoParams["ScatterStrength"];
        cmd[i].shaderParameters["RayleighStrength"] = atmoParams["RayleighStrength"];
        cmd[i].shaderParameters["MieStrength"] = atmoParams["MieStrength"];
        cmd[i].shaderParameters["RayleighCollectionPower"] = atmoParams["RayleighCollectionPower"];
        cmd[i].shaderParameters["MieDistribution"] = atmoParams["MieDistribution"];
        cmd[i].shaderParameters["LightDir"] = atmoParams["LightDir"];
        cmd[i].shaderParameters["InvProj"] = atmoParams["InvProj"];
        
        cmd[i].shaderParameters["InvViewRot"] = Variant(procSkyFaceRotations[i]);
        
        procSkyRenderPath.AddCommand(cmd[i]);
    }

Страницы: 119 20 21 2224 Следующая »
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Тема в архиве.