Понедельник, 02 Декабря 2024, 02:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Белые полосы (и точки) на гранях объектов
robertonoДата: Воскресенье, 28 Сентября 2014, 00:25 | Сообщение # 1
Чокнутый Кот
Сейчас нет на сайте
Добрый вечер!
Давно меня мучал этот вопрос, но как то до желания его решить руки не доходили.
В общем всё довольно просто, вот как это выглядит:
Image
Белые точечки на краях блоков, и чем дальше игрок тем их больше и лучше видно.
Не думайте, что я не искал решение, вот всё что я узнал и что может помочь (но не помогло) :
* Выключить Antialiasing (помогает, но как видите с выключенным всё равно всё осталось)
* Переключить текстуру на режим Clamp (нет эффекта, но советовали)
* Предлагали перейти на Billinear filter, но pixel дает наилучший эффект (т.е. меньше всего точек и моей игре не нужно сглаживание текстуры)
* Настроить Far Clipping и Near Clipping Plane на камере. Нет эффекта, но советовали. Я думаю это больше к Z-Buffer подойдет, когда происходит "сражение" полигонов. Это не мой случай.
* Так же предлагали что то там в программе для моделирования сделать, но я так понял речь шла про запекание света, т.е. опять же не мой случай
* Предлагали использовать другой шейдер, но я использую Transparent - Cutout Diffuse (двухсторонний (culling off)). Есть шейдеры которые ухудшают ситуацию с точками. Мой же шейдер показывает результат как у обычного diffuse. Т.е. лучше шейдера нету
* Предлагали отредактировать UV. Да, дело может быть как раз таки в нем. Потому что у меня была старая версия блоков, и там было больше точек. Но отсюда вопрос - сколько нужно оставить пикселей в "мертвой зоне" ? Сейчас для блока я использую атлас-текстуру, где каждый блок занимает 64x64. В Cinema4D по моей развертке блока я теряю 0.5 пикселя с каждой стороны. Я конечно могу попробовать отрезать целый пиксель, но отсюда вопрос, что за ерунда, в играх ведь так не делается, зачем сделали такую ерунду...

Выслушаю любые комментарии и помощь по этой теме.
Заранее благодарен.
happy
JessyStormДата: Воскресенье, 28 Сентября 2014, 03:25 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Очень похоже на то, что полигоны не скреплены, вертексы находятся в одних координатах, но не имеют связи, отсюда такие артефакты, если причина в этом, то устраняется переделкой моделей с полным склеиванием совпадающих граней. Или ты собираешь эти здания из примитивов? Тогда можно решить это небольшим наложением примитивов друг на друга. По скрину не совсем понятно, что именно является причиной, выложил бы ты в пнг, а так непонятно, принимают ли эти точки цвет скайбокса или всегда только белый цвет.

https://www.artstation.com/artist/jessystorm

Сообщение отредактировал JessyStorm - Воскресенье, 28 Сентября 2014, 03:35
LertmindДата: Воскресенье, 28 Сентября 2014, 06:56 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Надеюсь ты не ставишь цельные блоки друг к другу? Скинул бы часть проекта, где можно увидеть это.
robertonoДата: Воскресенье, 28 Сентября 2014, 11:11 | Сообщение # 4
Чокнутый Кот
Сейчас нет на сайте
JessyStorm, вроде всегда белый. Блок я создал таким образом:
В Cinema 4D создал куб и настроил UV, экспортировал в fbx.
----
Ещё раз перепроверил. Ну да , всегда белый цвет.
----

Lertmind, у меня блоки каждый 1 на 1 метр.
Ставлю не вручную, ставит мой плагин для импорта зданий (тупо куча строк - координаты + ID блока).
Ставит так:
Первый блок допустим 1,0,0
Второй 2,0,0

Т.е. сразу на следующем метре. В этом проблема чтоль ?

Цитата JessyStorm ()
то устраняется переделкой моделей с полным склеиванием совпадающих граней.

Это как? А есть ли в Cinema 4D какая то готовая кнопочка для фикса моделей? Или как это вообще делается? Я ведь просто создал кубик там.

Заранее спасибо.

Добавлено (28.09.2014, 11:08)
---------------------------------------------
Уточню.
Изначально у меня здания из блоков сделаны, как я сказал выше.
Но потом, для оптимизации я делаю mesh.combineMeshes и комбинирую блоки здания в один меш. Может в юнити есть какая то функция для улучшения мешей во время работы?
Там вроде есть какой то mesh.Optimize(), я ничего не использую после того как скомбинирую.

Добавлено (28.09.2014, 11:11)
---------------------------------------------
Проверил.
Начнем с того, что combineMeshes не влияет на точки, точки просто меняют своё расположение.
А так точек он не добавляет.
Optimize() не влияет ни на что.

Жду других предложений.

JessyStormДата: Воскресенье, 28 Сентября 2014, 15:27 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
robertono, в том и то проблема, попробуй ставить блоки на расстоянии 0.99 друг от друга, чтобы они накладывались, я об этом писал, или склеивай здания целиком в 3д редакторе так, чтобы соседние грани имели связь.

https://www.artstation.com/artist/jessystorm

Сообщение отредактировал JessyStorm - Воскресенье, 28 Сентября 2014, 15:30
LertmindДата: Воскресенье, 28 Сентября 2014, 17:22 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Цитата robertono ()
Т.е. сразу на следующем метре. В этом проблема чтоль ?

Не совсем, ставить цельные блоки в принципе не экономично и ведут к некоторым проблемам. Лучше, но сложнее в реализации, для майнкрафт подобных игр создавать поверхности из мешей квадратов, как стандартный Quad. Обычно кто так делал не имел таких проблем. На форуме уже было, что из-за близко стоящих кубов появлялись чёрные полосы, если двигать камеру параллельно поверхности кубов, он её решил костылём - использовал Transparent шейдер. В твоём случае можно попробовать создавать поверхности без цельных кубов.

Уменьшение расстояния до 0.99 - это костыльный метод, я бы не стал его использовать.
robertonoДата: Воскресенье, 28 Сентября 2014, 19:14 | Сообщение # 7
Чокнутый Кот
Сейчас нет на сайте
Lertmind, можно попробовать просто уменьшить размер блока до 0.9999999

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

Цитата Lertmind ()
это костыльный метод, я бы не стал его использовать.

Я думаю мне стоит попробовать..
RangerДата: Воскресенье, 28 Сентября 2014, 19:21 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
robertono,
сэкономил на моделере.
Молодееец, зачооот !! biggrin

кстати при создании меша из кубов, внутренние грани оптимизируются (отсекаются) ??




Сообщение отредактировал Ranger - Воскресенье, 28 Сентября 2014, 19:30
JessyStormДата: Воскресенье, 28 Сентября 2014, 19:24 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
нет, увеличить надо до 1.00000000001, чтобы было наложение.

https://www.artstation.com/artist/jessystorm
robertonoДата: Понедельник, 29 Сентября 2014, 20:31 | Сообщение # 10
Чокнутый Кот
Сейчас нет на сайте
Цитата Ranger ()
сэкономил на моделере.
Молодееец, зачооот !!


Моделер у меня тоже есть, но кубами мне не трудно заняться. Он же занят анимациями и нормальными моделями.

Цитата Ranger ()
кстати при создании меша из кубов, внутренние грани оптимизируются (отсекаются) ??

нет, всё остается так же. Просто вместо кучи драв каллов (которые типо влияют на фпс (а вот нифига)) только 1 драв кол. И намного больше фпс.
Не знаю почему) Но быстрее.

JessyStorm, окей, спасибо, попробую smile

Добавлено (29.09.2014, 20:31)
---------------------------------------------
JessyStorm, не помогло.

Заметил кстати ещё одну вещь.
Такой баг не присутствует на моделях моделлера. Это первое.
А второе : есть блок черной древесины и светлый камень. Так вот таких точек на древесине вообще нет. На любом расстоянии. Хоть у них одинаковый отступ в UV - 0.5 пикселя.
Так что в чем прикол я не понял.. Какие есть идеи ещё?

Добавлено (29.09.2014, 20:31)
---------------------------------------------
Могу подготовить тестовый ассет если нужно.

MANMANAДата: Понедельник, 29 Сентября 2014, 22:29 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
почему не используется стандартный куб?
пробовал ли куб делать в другом редакторе, Блендере, например...
точки появляются - на полностью скомпиленной в exe версии? или при запуске в Unity?
кстати, все заметили, что на модельке оружия есть такая же точка на рукоятке-курке...
mesh.combineMeshes на оружии также используется?
Цитата robertono ()
Такой баг не присутствует на моделях моделлера.
- модельки моделлера также импортируешь, сшиваешь и ставишь друг к другу?
я вижу серые кубы на скриншоте. была ли наложена текстура? пробовал ли ставить однотонную текстуру, например, красного цвета? а на сложной текстуре что происходит?
Заранее извиняюсь за оффтоп, если какие-то вопросы повторил...


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
robertonoДата: Понедельник, 29 Сентября 2014, 22:55 | Сообщение # 12
Чокнутый Кот
Сейчас нет на сайте
Цитата MANMANA ()
почему не используется стандартный куб?

потому что мне нужна настройка UV, так как все текстуры расположены в одной (атлас (этого требует combineMeshes).

Цитата MANMANA ()
пробовал ли куб делать в другом редакторе, Блендере, например...

не пробовал. Стоит?

Цитата MANMANA ()
точки появляются - на полностью скомпиленной в exe версии? или при запуске в Unity?

Всегда и везде.

Цитата MANMANA ()
кстати, все заметили, что на модельке оружия есть такая же точка на рукоятке-курке...
mesh.combineMeshes на оружии также используется?

Не используется, это один меш.

Цитата MANMANA ()
модельки моделлера также импортируешь, сшиваешь и ставишь друг к другу?

Он делает модель в Cinema 4D, экспортируем в fbx, импортируем в юнити. Потом я подгоняю размеры в юнити и загоняю в префаб. Затем уже можно использовать эту модель для строительства в редакторе (и эта модель так же будет комбинироваться для оптимизации).
Но комбинирование используется только для строений, т.е. для техники и оружий - нет.

Цитата MANMANA ()
я вижу серые кубы на скриншоте. была ли наложена текстура? пробовал ли ставить однотонную текстуру, например, красного цвета? а на сложной текстуре что происходит?

Если исключить из скриншота вертолет и оружие то серых кубов нету. Все кубы,которые видны на скриншоте затекстурированы и используют одну атлас-текстуру.
allodsДата: Понедельник, 29 Сентября 2014, 23:37 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
Цитата robertono ()
не пробовал. Стоит?

Ничего не стоит ^^

Добавлено (29.09.2014, 23:37)
---------------------------------------------

Цитата allods ()
Всегда и везде.

Стоит попробовать на других компах, может с видюхой такая фигня.
robertonoДата: Понедельник, 29 Сентября 2014, 23:47 | Сообщение # 14
Чокнутый Кот
Сейчас нет на сайте
Цитата allods ()
Стоит попробовать на других компах, может с видюхой такая фигня.

Если я говорю всегда и везде это значит во всех видах сборок и на разных системах.
MANMANAДата: Вторник, 30 Сентября 2014, 01:24 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Не дают мне покоя точки на оружии и полоска белая, похожая на блик (полностью освещенную поверхность). источники света где стоят?
может ради теста попробовать сменить цвет источника света и/или подвигать его. Изменится ли цвет точек, зависят ли точки от источника света...
предположение мое... неправильно считается отражение света за счет наложения граней? где-то лучи могут проходить насквозь и неправильно отражаться за счет смешивания/наложения вершин, а следовательно нормалей вершин?


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
robertonoДата: Вторник, 30 Сентября 2014, 12:04 | Сообщение # 16
Чокнутый Кот
Сейчас нет на сайте
MANMANA, хорошая идея, приду домой - попробую) Кстати такое может быть, потому что я заметил, что куда свет почти напрямую попадает - точек нет.
OtinagiДата: Вторник, 30 Сентября 2014, 14:31 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
У меня на GLScene такое иногда бывало. Это было связано с тем, что я использовал в игре очень малые размеры моделей. В итоге возникали проблемы с определением ближней поверхности у рядом стоящых объектов. В итоге, играясь с параметром NearPlaneBias я убирал данные артефакты. В Юнити вроде тоже есть аналогичный параметр у камеры - Clipping Planes или как-то так называется. Попробуйте поиграться с ним, может, тоже поможет.

«Смерти меньше всего боятся те люди, чья жизнь имеет наибольшую ценность.»
Иммануил Кант
robertonoДата: Вторник, 30 Сентября 2014, 15:13 | Сообщение # 18
Чокнутый Кот
Сейчас нет на сайте
Otinagi, игрался и я уже в начале темы говорил, что это не на что не повлияло. Хотя могу попробовать еще раз
OtinagiДата: Вторник, 30 Сентября 2014, 16:35 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
robertono, ага, писали. Просто мне это помогло с аналогичными артефактами. Правда, на совсем другом движке. Также, такого не наблюдалось, когда я использовал модели крупных размеров. Может, для теста попробовать еще увеличыть все на один-два порядка. То есть, у меня проблемы возникали при масштабе 1 юнит = 1 метру. А когда я стал делать 100 юнитов = 1 метру никогда такого не замечал на стандартных настройках.

«Смерти меньше всего боятся те люди, чья жизнь имеет наибольшую ценность.»
Иммануил Кант
robertonoДата: Вторник, 30 Сентября 2014, 17:59 | Сообщение # 20
Чокнутый Кот
Сейчас нет на сайте
MANMANA, да при изменении направления точки исчезают (если на них светит почти напрямую). Точки так же вроде меняют цвет в зависимости от источника (это почти не видно, но если выключить свет - точек нет).
Хорошо, проблема возможно именно та, о которой вы говорите. И что мне нужно сделать что бы это исправить?

Otinagi, размер не влияет - я проверил.

Я думаю это проблема со светом. Точнее это и так понятно. Как исправить? Может задать какие то настройки при импорте?
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг