ПрограммированиеФорумГрафика

Артефакты при смешивании текстур (GLSL) (2 стр)

Страницы: 1 2 3 Следующая »
#15
10:30, 12 апр 2021

dFdx оказался весьма тормозным и оттого воспротивился я ему всей душой.
Как в моем случае (чтобы получить эффект как в видео в первом посте) можно обойтись без бранчей?

#16
10:37, 12 апр 2021

MikeNew
> dFdx оказался весьма тормозным

это шо за железо такое ?

> можно обойтись без бранчей?

cmov?

вынеси texture вначало без бранчей - детский сад

#17
11:03, 12 апр 2021

MikeNew
> dFdx оказался весьма тормозным и оттого воспротивился я ему всей душой.
Железка старая? Я както давно тестил релиеф маппинг, сравнивал textureGrad и textureLod. Карту не помню, 9800гтх вроде? Так вот, textureGrad был в разы медленней. Там же использование textureSize не кисло так роняла производительность. На 680 я уже такого безобразия не видел.

#18
11:07, 12 апр 2021

MikeNew
> dFdx оказался весьма тормозным и оттого воспротивился я ему всей душой
советую всё-таки разобраться с тем, что он вообще делает. но для этого надо почитать ссылку выше, а не просто код копировать. код расчёта градиента в шейдере практически бесплатный, иначе его бы никто не хардкодил в дефолтные семплеры аппаратно.

barnes
> сравнивал textureGrad и textureLod. Карту не помню, 9800гтх вроде? Так вот,
> textureGrad был в разы медленней.
не может textureGrad быть медленнее. медленнее может быть семплинг, если ты ему неправильные градиенты передал и все выборки мимо текстурного кеша полетели.

#19
11:10, 12 апр 2021

MikeNew
Можно ли все же объяснить, зачем вообще все это?
Почему нельзя обойтись просто встроенной трилинейной фильтрацией? Или там что-то типа мегатекстуры?

#20
11:12, 12 апр 2021

Suslik
> не может textureGrad быть медленнее. медленнее может быть семплинг, если ты ему
> неправильные градиенты передал и все выборки мимо текстурного кеша полетели.
Железка яж говорю старая была. Результат был даже медленнее чем просто чтение текстуры.
Щас с этим все ок.

#21
12:06, 12 апр 2021

innuendo
> это шо за железо такое ?
gt710
innuendo
> вынеси texture вначало без бранчей - детский сад
Не понял, как в начало? Координаты-то считаются в бранчах. Я пробовал за бранчи выносить в конец - те же самые артефакты, что впрочем логично.
barnes
> Железка старая?
Да.Suslik
> советую всё-таки разобраться с тем, что он вообще делает. но для этого надо
> почитать ссылку выше, а не просто код копировать. код расчёта градиента в
> шейдере практически бесплатный, иначе его бы никто не хардкодил в дефолтные
> семплеры аппаратно.
Я ее прочитал. Ну объяснено там почему так происходит, но как решать - не сказано. Сказано только то что это не просто, а это я и сам вижу.
Suslik
> не может textureGrad быть медленнее. медленнее может быть семплинг, если ты ему
> неправильные градиенты передал и все выборки мимо текстурного кеша полетели
имеенно dFdx, dFdy медленные, а не textureGrad.
innuendo
> cmov?
Что это еще за странный негуглящийся зверь?

#22
12:11, 12 апр 2021

Ranma
> MikeNew
> Можно ли все же объяснить, зачем вообще все это?
> Почему нельзя обойтись просто встроенной трилинейной фильтрацией? Или там
> что-то типа мегатекстуры?
Видео в первом посте смотрел? Я пробую метод борьбы с тайлингом ландшафта путем увеличения масштаба текустуры по мере удаления. Чем дальше - тем больше текстура.  Хочу сделать в пять шагов, а не в один, для большей плавности. Из-за особенностей работы видеокарт если использовать условия в шейдере - аппаратный мипмэпинг работает неправильно. Путаюсь придумать как обойтись без if.

#23
12:34, 12 апр 2021

по fog считаешь vv*foo - потом в итоге texture

#24
12:54, 12 апр 2021

MikeNew
> Я пробую метод борьбы с тайлингом ландшафта путем увеличения масштаба
> текустуры по мере удаления. Чем дальше - тем больше текстура.
ну и чё это будет-то? ты где видел, чтобы текстура ландшафта по мере удаления масштаб меняла? мол, чем дальше трава, тем она больше? я уж не знаю, откуда ты этот способ взял, но с тайлингом есть миллион нормальных способов бороться, например, так:
https://www.shadertoy.com/view/WdVGWG
или так:
https://www.shadertoy.com/view/tsVGRd

и не за шесть выборок по четырём бренчам как у тебя, а за две или три соответственно и вообще без ветвлений.

#25
20:32, 12 апр 2021

MikeNew
> имеенно dFdx, dFdy медленные, а не textureGrad.
Да.... вычетание в шейдере дорогое стало, эх...

#26
22:37, 12 апр 2021

MrShoor
> Да.... вычетание в шейдере дорогое стало, эх...

это как эпсилон в CAD? там же не просто вычитание, да ?  неспроста же сделали https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/ddx-coarse

#27
12:57, 14 апр 2021

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

#28
13:00, 14 апр 2021

innuendo
> по fog считаешь vv*foo - потом в итоге texture
Наркомания какая-то получается (причем в буквальном смысле этого слова), впрочем может это я что-то не так делаю. Буду дальше пробовать, где-то накосячил.

Так-то у меня уже есть неплохой метод борьбы с тайлингом путем поворота текстур на рэндомный угол и заодно смещения, но хочется сравнить варианты.

#29
19:07, 14 апр 2021

Забавно, реализовал без бранчей, так теперь артефакты видны еще лучше, причем на этот раз даже textureGrad не помогает. Ох уж этот мипмапинг.

Изображение
Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

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