Колличество прозрачный пикселей у спрайта.

Общие вопросы о Unity3D

Колличество прозрачный пикселей у спрайта.

Сообщение fenix72rus 16 июн 2018, 21:33

Нужно просчитывать кол-во прозрачный пикселей у спрайта, делаю это с через:
Синтаксис:
Используется csharp
            for (int y = 0; y < 1080; y++)
            {
                for (int x = 0; x < 1920; x++)
                {
                    Color col = drawable_texture.GetPixel(x, y);
                    if (col.a == 0)
                    {
                        int i++;
                    }
                }
            }
 

Изображение 1920 на 1080, это 2 миллиона пикселей. Насколько это критично для производительности и как можно оптимизировать? Или считать как-то по другому?
fenix72rus
UNIт
 
Сообщения: 52
Зарегистрирован: 08 апр 2017, 16:26

Re: Колличество прозрачный пикселей у спрайта.

Сообщение fenix72rus 16 июн 2018, 21:41

Нужно посчитать не точное кол-во пикселей, а узнать когда 80% спрайта закрашено.
fenix72rus
UNIт
 
Сообщения: 52
Зарегистрирован: 08 апр 2017, 16:26

Re: Колличество прозрачный пикселей у спрайта.

Сообщение 1max1 17 июн 2018, 07:55

Можно считать не колво прозрачных пикселей, а колво закрашанных непосредственно в момент закрашевания, то есть в методе там где устанавливаются прозрачные пиксели, там и считать
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Колличество прозрачный пикселей у спрайта.

Сообщение fenix72rus 17 июн 2018, 17:53

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

Спасибо, получаю координаты пикселя и проверяю прозрачность, просаживается фпс, но не так сильно, как предыдущим способом
Синтаксис:
Используется javascript
if( drawable_texture.GetPixel(x,y).a > 0)
                    {
                        pixels++;
                    }
 
fenix72rus
UNIт
 
Сообщения: 52
Зарегистрирован: 08 апр 2017, 16:26

Re: Колличество прозрачный пикселей у спрайта.

Сообщение DbIMok 17 июн 2018, 23:22

зачем их по одному получать. GetPixels32 всей картинки. чтобы не делать в одном кадре засунуть это в корутину и разбить на несколько. еще лучше вынести в отдельный поток.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.6k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Колличество прозрачный пикселей у спрайта.

Сообщение 1max1 18 июн 2018, 02:05

вынести в отдельный поток.

Разве в юнити есть возможность создать отдельный поток?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Колличество прозрачный пикселей у спрайта.

Сообщение immeasurability 18 июн 2018, 10:48

1max1 писал(а):
вынести в отдельный поток.

Разве в юнити есть возможность создать отдельный поток?

да есть хоть 1 000 000, но расчеты в потоке не должны быть связаны с динамическими данными, либо их блочить, что приведет к бесмысленности много потоков
Discord era#6140

youtube.com/user/immeasurability/videos
Аватара пользователя
immeasurability
Адепт
 
Сообщения: 1097
Зарегистрирован: 08 авг 2013, 18:09

Re: Колличество прозрачный пикселей у спрайта.

Сообщение 1max1 18 июн 2018, 11:44

Я когда-то давно пытался использовать Threading и Task, но безрезультатно, что-то изменилось за это время?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Колличество прозрачный пикселей у спрайта.

Сообщение Anonymyx 18 июн 2018, 12:24

В смысле динамическими? Не использовать API Unity - единственное ограничение.
Я когда-то давно пытался использовать Threading и Task, но безрезультатно, что-то изменилось за это время?

Да всегда можно было использовать потоки, по крайне насколько я помню (webgl исключение).
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: Колличество прозрачный пикселей у спрайта.

Сообщение snezhok_13 18 июн 2018, 14:55

Вам нужно процент закрашенных/не закрашенных посчитать? А mip'ы можно использовать для грубой оценки?
Текстуру с мип-уровнями и читайте из какого-нибудь 4го :)
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Колличество прозрачный пикселей у спрайта.

Сообщение seaman 18 июн 2018, 18:47

Имхо - первый ответ самый правильный.
Зачем считать вообще у текстуры. Вы же закрашиваете. Вот и прибавляйте в момент закрашивания сколько пикселей закрасили. Все.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15