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

Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 16:55
LordWerewolf
И снова здрям, товарищи! Кто сможет помочь кодом?
Есть атлас 2048*2048 с текстурами по 512px (510 рх + border по 1 рх).
Изображение
Нужно функция на (c#) , которая будет доставать вторую текстуру из верхнего ряда.
А разбирая ваш код, я смогу понять, как извлекать другие текстуры из других атласов.
Спасибо.

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 17:07
DbIMok
что такое "доставать"? настройте UV координаты у меша и будет отрисован нужный кусочек. если вам для других целей, то https://docs.unity3d.com/ScriptReferenc ... ixels.html

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 17:37
LordWerewolf
DbIMok писал(а):что такое "доставать"? настройте UV координаты у меша и будет отрисован нужный кусочек. если вам для других целей, то https://docs.unity3d.com/ScriptReferenc ... ixels.html


Ну в смысле, если в материале стоит этот атлас, как ему указать, что именно эту текстуру именно для этой модели использовать? Как и где это настраивать?

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 17:48
seaman
Как и где это настраивать?

В программе моделирования. Когда делаете развертку.

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 17:52
DbIMok

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 18:07
LordWerewolf
seaman писал(а):
Как и где это настраивать?

В программе моделирования. Когда делаете развертку.


Так модель уже развернута и текстура на ней лежат как надо, когда она отдельно. Но если она в атласе, нужно настроить координаты в атласе, чтобы именно она отражалась а ни какая либо другая.
Как в юньке координаты просчитать и указать?

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 18:10
LordWerewolf
DbIMok писал(а):либо кодом https://docs.unity3d.com/ScriptReference/Mesh.html

нет, мне кажется Вы куда -то не туда меня посылаете :))
Мне нужно найти координаты нужной текстуры в атласе. С помощью scale и offset`a это делается как-то.

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 19:24
DbIMok
Тестовый примерчик
Изображение

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 20:39
LordWerewolf
DbIMok писал(а):Тестовый примерчик
Изображение


ссылка не рабочая :(

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 20:57
DbIMok
LordWerewolf писал(а):ссылка не рабочая

исправил

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 21:11
LordWerewolf
DbIMok писал(а):
LordWerewolf писал(а):ссылка не рабочая

исправил


все равно пишет "https://goo.gl/pjPRkC – this goo.gl shortlink has been disabled. It was found to be violating our Terms of Service. Click here and here for more information about our terms and policies respectively."

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 21:17
DbIMok
потому что я исправил в своем посте, а не в вашем (но теперь и в нем)

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 21:39
LordWerewolf
DbIMok писал(а):потому что я исправил в своем посте, а не в вашем (но теперь и в нем)


Да, супер, то что нужно. Единственное, как Вы координаты считали? Нулевая точка отсчета это верхний-левый угол ?
0,25 - это коэффициент? Если текстура имеет отступ в один пиксель, это значит что коэффициент нужно поправить с учетом 0,0004882 = 1рх ?

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

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 22:40
DbIMok
0,0 это левый нижний угол. 1,1 правый верхний. Если нужны точки то uv = x / material.mainTexture.width, 1 - y / material.mainTexture.height

Re: Извлечение текстур из атласа

СообщениеДобавлено: 29 мар 2017, 23:13
LordWerewolf
DbIMok писал(а):0,0 это левый нижний угол. 1,1 правый верхний. Если нужны точки то uv = x / material.mainTexture.width, 1 - y / material.mainTexture.height

Большое спасибо, Вы очень помогли! :ympeace: