Флейм
GameDev.ru / Флейм / Форум / Практика процедурного текстурирования (4 стр)

Практика процедурного текстурирования (4 стр)

Поделиться

Страницы: 1 2 3 4 5 6 ... 13 ... 21 22 23 Следующая

SuperInoyПостоялецwww11 сен. 20170:32#45
MrShoor
> Ок, какая из этих текстур сгенерирована.
вангую - все 3 :)
FordPerfectПостоялецwww11 сен. 20170:53#46
gammaker
О, в Chrome заработало.
О кирпичах:
1. Слишком ровная кладка.
2. Слишком жёсткие переходы.
3. Полосы по текстуре (выглядит как низкокачественный rng).
4. У тебя только brick:diffuse, поэтому отсутствием освещения сложно упрекать. Но без освещения - тяжелее оценивать визуально.
5. Кирпичи вообще часто встречаются этого оттенка розового?
6. Скучный цемент.
7. Сами кирпичи - очень резкие переходы между пикселями. И создаётся чувство, что цвета сконцентрированы либо сверху, либо снизу, промежуточных почти нет.
8. Ну и пресные кирпичи, однообразные. Такое чувство, что там только один пиксельный шум.

Может у меня какая-то фигня (например фильтрация неправильная).
Поэтому может покажешь, как у тебя выглядят?

gammakerПостоялецwww11 сен. 20171:10#47
FordPerfect
> 1. Слишком ровная кладка.
Есть такое дело. Не придумал, как искривить линию между кирпичами.

FordPerfect
> 3. Полосы по текстуре (выглядит как низкокачественный rng).
Это которые горизонтальные? Так я думал это фича, дополнительные детали. Это можно убрать, но будет совсем скучный рандом.

FordPerfect
> 4. У тебя только brick:diffuse, поэтому отсутствием освещения сложно упрекать.
> Но без освещения - тяжелее оценивать визуально.
Скоро будут нормалмапы, но пока до реализации рендера с освещением дело не скоро дойдёт.

FordPerfect
> 5. Кирпичи вообще часто встречаются этого оттенка розового?
Не знаю, я как-то не сверялся с настоящими кирпичами, когда это делал. По хорошему надо смотреть на фотку и делать, а я постарался по-быстрому перенести кирпичи из движка. Там с освещением поинтереснее смотрелось.

FordPerfect
> 7. Сами кирпичи - очень резкие переходы между пикселями. И создаётся чувство,
> что цвета сконцентрированы либо сверху, либо снизу, промежуточных почти нет.
Там где один цвет чуть красней, а другой чуть светлей? Это видимо функция step на последнем этапе такое дала.

FordPerfect
> Может у меня какая-то фигня (например фильтрация неправильная).
> Поэтому может покажешь, как у тебя выглядят?
Ты вроде вполне всё правдоподобно написал. А проблем с фильтрацией на RGBA8 быть не должно.

Там код генерации можно менять, можешь попробовать сделать лучше. У меня в запасе мало трюков и я недолго с этими кирпичами экспериментировал.


FordPerfect
> Ну и поругайте дощечки, что-ли.
Прикольные дощечки. Только щели какие-то слишком широкие и чёрные.

Правка: 11 сен. 2017 1:13

FordPerfectПостоялецwww11 сен. 20171:44#48
gammaker
>Не придумал, как искривить линию между кирпичами.
Да хоть бы перлина добавить, минимально.
float brick=GenBricks(TexCoord+0.007*vec2(
        PerlinOctaves(TexCoord*vec2(5.0,8.0)+vec2(0.5,12.5), vec2(5.0,8.0), 5),
        PerlinOctaves(TexCoord*vec2(5.0,8.0), vec2(5.0,8.0), 5)),
    ivec2(3, 8), vec2(0.012), 0.5);
Тоже фигня. Охота сделать умнее.

>По хорошему надо смотреть на фотку и делать, а я постарался по-быстрому перенести кирпичи из движка.
Вот например:

+ Показать

>Там где один цвет чуть красней, а другой чуть светлей?
Ага.

FordPerfectПостоялецwww11 сен. 20176:59#49
Кирпичи:
+ Показать
+ Показать

Пока костыльно.

Mikle
Покажешь код этих текстур?
http://www.gamedev.ru/projects/forum/?id=223685&page=12#m178
http://www.gamedev.ru/projects/forum/?id=223685&page=14#m206
http://www.gamedev.ru/projects/forum/?id=223685&page=39#m574
http://www.gamedev.ru/projects/forum/?id=223685&page=40#m593
http://www.gamedev.ru/projects/forum/?id=223685&page=42#m616
http://www.gamedev.ru/projects/forum/?id=223685&page=54#m805

MikleМодераторwww11 сен. 20178:31#50
FordPerfect
> WebGL нету.
+1
FordPerfect
> Ну и поругайте дощечки, что-ли.
Хорошо, только промежутки чёрные и невнятные.
FordPerfect
> Покажешь код этих текстур?
Покажу через пару часов. Только там только две первые ссылки текстуры, а остальное - скриншоты игры.

Правка: 11 сен. 2017 11:36

MikleМодераторwww11 сен. 20179:48#51
FordPerfect
Я перезалил TFScript с учётом добавлений: https://yadi.sk/d/P9yCwF5Ty3vaq
Или в качалке: TFScript

Может в п.0 добавить?
Там в примерах есть и эти текстуры, есть исходник.

Правка: 11 сен. 2017 10:18

gammakerПостоялецwww11 сен. 201712:00#52
Mikle
> > WebGL нету.
> +1
А на XP с этим всё плохо? Понятно, что в старом IE WebGL не будет, но в хроме и других браузерах должен быть наверное? Какие браузеры ты пробовал?

Mikle
> Там в примерах есть и эти текстуры, есть исходник.
Надо будет портировать твои примеры себе. Но я сначала текстуры из своего движка портирую, а потом доработаю свою утилиту немного. Хочу сделать парсер GLSL, чтобы выкидывал ненужные функции для оптимизации и заодно генерировал документацию и слова для подсказок в редакторе.

MikleМодераторwww11 сен. 201712:08#53
gammaker
> Какие браузеры ты пробовал?
Яндекс. В нете накопал инструкцию как включить WebGL - не помогло.
gammaker
> А на XP с этим всё плохо?
Вроде нет такой информации, но вечером на семёрке ещё проверю.
FordPerfectПостоялецwww11 сен. 201715:41#54
Mikle
У меня в Chrome с XP работает.
FordPerfectПостоялецwww11 сен. 201716:34#55
Ещё пару приёмов:
vec3 PerlinMain()
{
    float ret;
    ret=cnoise(vec3(TexCoord*8.0,0.5), vec3(8.0));
    ret=cnoise(vec3(TexCoord*8.0,1.25*ret), vec3(8.0));
    ret=cnoise(vec3(TexCoord*8.0,1.25*ret), vec3(8.0));
    ret=0.5*ret+0.5;
    return vec3(ret);
}
Внешне вид жидкости.
То же применение Перлина в 3-й координате, но с меньшей амплитудой.

Затенение.
Генерируем освещённую картинку по карте высот. Кроме Ламберта хочется, чтобы области внизу были затенены. Домножать на высоту не очень удобно (аддитивная константа влияет, а нефиг). Мы вычитаем из текстуры её разблюренную, там где минус - затеняем. Возможно известный подход ambient occlusion, я спёр из описания Eleveted.

Правка: 11 сен. 2017 16:35

MikleМодераторwww11 сен. 201720:13#56
FordPerfect
> Мы вычитаем из текстуры её разблюренную, там где минус - затеняем
Полезный метод. Я такое применял перед постеризацией, особенно, если постеризация предельная, до двух оттенков - чёрного и белого, получается линогравюра.
gammakerПостоялецwww11 сен. 201721:10#57
FordPerfect
> Кирпичи:
Что-то по-моему у тебя цемента больше, чем самих кирпичей. И они какие-то очень круглые. Мне кажется, нужно что-то среднее, между твоими и моими идеально прямоугольными. Я только пока не разобрался, как их сделать не идеальными.
Вот чуть более новая версия (ссылка та же, старая заменена). Особо не лучше, но появилась карта высот и карта нормалей.

FordPerfect
> Ещё пару приёмов:
Красотень. Только непонятно, для каких материалов это можно использовать.

FordPerfect
> Затенение.
> Генерируем освещённую картинку по карте высот. Кроме Ламберта хочется, чтобы
> области внизу были затенены. Домножать на высоту не очень удобно (аддитивная
> константа влияет, а нефиг). Мы вычитаем из текстуры её разблюренную, там где
> минус - затеняем. Возможно известный подход ambient occlusion, я спёр из
> описания Eleveted.
То есть это способ генерации ambient map? Пригодится, вроде в PBR такие используют с отдельным альбедо. А блурить c каким радиусом надо?

MikleМодераторwww11 сен. 201721:26#58
gammaker
> А блурить c каким радиусом надо?
Зависит от того, какого размера детали хочешь подчеркнуть.
FordPerfectПостоялецwww11 сен. 201722:38#59
gammaker
>Я только пока не разобрался, как их сделать не идеальными.
Перефразируя мой код:
    //float brick=GenBricks(TexCoord, ivec2(3, 8), vec2(0.012), 0.5);
    vec2 xy=TexCoord*vec2(3.0,8.0);
    xy=xy+0.035*cnoise(16.0*TexCoord);
    xy.x+=0.5*floor(xy.y);
    xy=frac(xy);
    float brick=pow(xy.x*(1.0-xy.x),1.0/7.0)*pow(xy.y*(1.0-xy.y),1.0/7.0);
    brick=brick*brick*(3.0-2.0*brick);

>Только непонятно, для каких материалов это можно использовать.
Ну вот тот же цемент это использует.

Правка: 11 сен. 2017 22:39

Страницы: 1 2 3 4 5 6 ... 13 ... 21 22 23 Следующая

/ Форум / Флейм / Программирование

2001—2017 © GameDev.ru — Разработка игр