Страница 1 из 1

Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 12:47
Agasper
Есть ландшафт сделанный из плоскостей (аля Майнкрафт). Текстура одна на всех. Для каждой плоскости задается UV на текстуре.
Под ногами персонажа все выглядит отлично, но чем дальше, тем больше появлается артефактов.

Так выглядит текстура:
http://img254.imageshack.us/img254/3403/cubemap.png

серое, это под будущие кубики

Так выглядят артефакты:
Изображение

Зеленый цвет присутствует потому что соседняя текстура зеленая, на зеленом ландшафте видны желтые артефакты.

Что помогает от них избавиться:
1. Выключение антиалиасинга + выключение мипмапов
2. Выключение антиалиасинга + установка material.mainTexture.mipMapBias = -5;

Что пробовал:
* Менять размер текстуры. Сокращал до 1*1 пиксель на 1 сторону, все равно разводы зеленые
* Играться со ВСЕМИ настройками Texture Importer (фильтрация, мипмапы, и т.д.). Максимум все сводится к тому что разводов нет, но рябит в глазах от излишней четкости.
* Создавать свою текстуру .dds
* Написать свой шейдер, в котором меняются детальная текстура и обычная. Лечит от мипмапов, но при включенном антиалиасинге все возвращается.

Если кто-то знает куда копать, подскажите, без АА выглядит все убого :-\

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 13:13
discouraged_one
Внимание думаем - у вас есть атлас текстур (который вы небось еще в unity же и пакуете - вообще п**ц - оно не работает 8)) И теперь вы просите мип-мапы сверху. Догадались? Генерация мип-мапов вообще ничего не знает про ваш атлас - оно бежит по картинке берет блок и уменьшеает (грубо говоря) - вот у вас получается что далеко - mipmap-bleeding (добавьте сюда еще и фильтрацию - вообще хорошо будет).
Так что попробуйте не использовать атлас а кучу текстур наложенных по одной с mip-maps и anisotropic filtering - должно быть счастье

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 13:17
Agasper
Нет это не атлас. Эту текстуру я делаю сам в фотошопе. Анизотропная фильтрация - максимум, но она особо не влияет на артефакты выше.

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 13:25
discouraged_one
Текстура одна на всех

Это и называется атлас
Посмотрите на вашу dds - там всё это видно.
Единственный вариант - это сделать padding и обрезать mip-maps снизу - но я не знаю умеет ли это unity. Короче, ваша проблема никакого отношения к unity не имеет ;-)

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 13:29
Agasper
Ладно с мипмапами проблему решу (выключу и сделаю шейдером). Как быть насчет того что при включенном АА опять зелень выступает. Кроме паддинга тут ничего не поможет ?

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 13:39
discouraged_one
Шейдером? Это как 8)
Вы вообще поняли в чем проблема? (я не издеваюсь). Когда вы используте MSAA оно фактически не пиксель выдает из шейдера а n фрагментов (типа пиксели рядом) - хотя эффект всё равно странный, не спорю.
Но ввы попробуйте (пока еще с кубиками эксперементируете) - сделать всем свою отдельную текстуру (для вашего примера хватит 3-х) - посмотрите как всё хорошо будет 8)

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 17:38
Battle Angel Alita
>Если кто-то знает куда копать, подскажите, без АА выглядит все убого
Антиалиясинг тут не при чём
1. делай мип-мапы в ручную
2. делай паддинг между текстурами хотя-бы пикселя четыре

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 17:47
Paul Siberdt
А что мешает создать дюжину отдельных текстур и горя не знать?

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 18:58
Agasper
1. мипмапы вручную не помогает
2. не совсем понимаю в чем проблема
3. с отдельной текстурой никак, потому что все что вы видите на скриншоте является одним объектом и на нем один материал с одной текстурой.

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 19:15
discouraged_one
2. не совсем понимаю в чем проблема
3. с отдельной текстурой никак, потому что все что вы видите на скриншоте является одним объектом.

Я не понимаю вы ищите проблему или решение.

Читайте как работают мип-мапы, и как работают мип-мапы с текстурными атласами. И будет вам счастье.

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 19:23
Agasper
Я ищу решение :)
Да фик с мипмапами, я их выключить могу. Меня АА больше беспокоит. Я просто не могу понять зачем он берет цвет соседнего пикселя если в UV четко прописаны координаты [curved_hands]

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 19:26
discouraged_one
http://en.wikipedia.org/wiki/Multisample_anti-aliasing
. If the pixel center is outside the triangle, shading inputs are extrapolated. Extrapolation can be avoided by using centroid sampling, where the shading inputs are sampled at the covered multisample location nearest to the pixel center, but may result in non-uniform screen space sampling near edges
говорил же читать 8) [ну ладно не упомянул про aa - но это ж не повод]

Re: Проблема с текстурой

СообщениеДобавлено: 15 фев 2011, 19:47
Neodrop
Вам же уже посоветовали. Сделайте дистанцию между вашими текстурами побольше. На несколько пикселей. Точнее, сами текстуры несколько избыточными. Для UV берите меньше квадрат, чем тот, что забит в атлас. Таким образом, при генерации мипмап, у вас не будет смешивания, которое происходит из-за интерполяции цветов ближних пикселей на малых ступенях мипмапа.
Тьфу.. Надеюсь, понятно объяснил? А то рисовать мне несподручно.