PDA

Просмотр полной версии : Разделение полигонов


сандро
21.10.2010, 23:26
Столкнулся с проблемой. Моделирую резисторы. По замыслу это 8 гранный цилиндр разделенный на 5 частей. На каждую часть одевается текстура с карты. Одной текстурой все резисторы не окучить, т.к. даже при размере текстуры 2048х2048, текстуры резисторов будут предельно короткими. Поэтому я вынужден разбить цилиндр на 5 равных частей. Чтобы сглаживание было под всеми возможными углами падения солнца в мире МСТС, все вершины должны быть сшиты на карте UVW. Проблема заключается в том, что формат 3ds позволяет накладывать текстуры только на одну деталь, т.е. 5 цилиндров не могут иметь общих вершин, они просто могут быть приаттачены и все.

http://s44.radikal.ru/i104/1010/c9/e2ebf04bf9ee.jpg

http://s43.radikal.ru/i100/1010/a8/54ac0f676197.jpg

p.s. Только на одном вагоне счет идет на десятки тысяч (пока еще не считал все, но от планов по минимальной "угловатости" пришлось отказаться) полигонов, поэтому считается каждая лишняя вершина и полигон.

Zabor
22.10.2010, 00:58
...Одной текстурой все резисторы не окучить, т.к. даже при размере текстуры 2048х2048, текстуры резисторов будут предельно короткими...Переведи :crazy:

сандро
22.10.2010, 07:52
Ты помнишь, как ты предлагал мне натянуть текстуру на мост над ланским шоссе? Тут такое не катит, т.к. расстояние между резисторами везде разное! Попробуй ограду моста длиной 50 метров, умести на "подложке" 2048х2048 во всю длину, качественно будет?

p.s. Резисторов более 20 шт, так что каждый отдельно промоделить тоже никак - не экономично.

Combine
22.10.2010, 10:41
Не понимаю, что мешает натянуть один и тот же кусок текстуры на каждый резистор...

сандро
22.10.2010, 12:12
Не понимаю, что мешает натянуть один и тот же кусок текстуры на каждый резистор...
Так вместо 20 резситоров всего 5 длинных. Посмотри скрины. Это цилиндр раздленный на 5 частей. В моторном вагоне 23 резситора в ряду. Три ряда на каждой стойке, две стойки. 23х3=69+69= 138-8 гранных цилиндров! (2208 фейсов)

5х3=15+15=30 (480 фейсов) против 138, есть экономия? Пока просто разделил вершины. Т.е. полигонов столько же, а вершин в 3 раза больше.

Zabor
22.10.2010, 13:11
Конечно не помню :), знаю только, что текстуры я стараюсь натягивать предельно экономично.

Задача теперь понятна, а между резисторами что альфа будет?

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

Так например ограждения платформ делаются - на текстуре одна секция ажурного ограждения, строго по центрам опор, повторяется на одной плоскости столько раз, сколько нужно, например у меня 220 метров плоскость 44 повтора. :confused:

Вот например повтор этой оградки, с альфой разумеется:
http://s47.radikal.ru/i115/1010/c2/812b1e53199ft.jpg (http://radikal.ru/F/s47.radikal.ru/i115/1010/c2/812b1e53199f.png.html)

Почему на месте ограждения не могут быть резисторы? Причем если хочешь даже с клеммами подключения проводов.

сандро
22.10.2010, 16:08
Между резисторами альфа, торцы будут заделаны односторнним полигоном. Ты мне свою идею предлалагал для ограды моста над ланским шоссе. Но тут другая ситуация расстояния между резисторами везде разное!!!!!!!!!!!!!!!!!!!!!!! Я сперва поробовал такой метод Но не вышло, увы. Выставить резисторы на равном расстояние никак это вранье и они короче рамы к которой прикреплены (на одну раму влезает 3,5 резистора, количество рам больше)

Combine
22.10.2010, 16:53
Только на одном вагоне счет идет на десятки тысяч
5х3=15+15=30 (480 фейсов) против 138, есть экономия? По-моему, тут уже это неважно...

Но тут другая ситуация расстояния между резисторами везде разное!!!!!!!!!!!!!!!!!!!!!!! Тогда никак.

Zabor
22.10.2010, 17:27
Хорошо, но если торцы будут закрываться полигоном экономия уже снижается, получается альфа заглушка внутри альфа цилиндра, там уже свои сложности возникают, Леша Гребнёв рассказывал про иерархию объектов при таком расположении.

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

сандро
22.10.2010, 17:37
По-моему, тут уже это неважно...

Тогда никак.

Важно (480 против 2208), т.к. вместе с межрезисторными соединениями и изоляторами уже тянет на 9000 (меньше никак, разве что изоляторы сделать 6 гранными, но это уже хороший косяк) а еще + 2000 впустую я не могу тратить.

сандро
22.10.2010, 17:39
Хорошо, но если торцы будут закрываться полигоном экономия уже снижается, получается альфа заглушка внутри альфа цилиндра, там уже свои сложности возникают, Леша Гребнёв рассказывал про иерархию объектов при таком расположении.

Тогда компромиссный вариант - поколотить все цилиндры пополам или по рамам, как оно там расположено, экономия еще уменьшится, но все же будет, потом у смежных резисторов можно убить пару нижних плоскостей цилиндров т.к. их не видно.
У меня все идеально подогнано (я просто взял и провел детач с каждого цилиндра и сглаживание появилось как надо, но стало больше вершин), просто не пойму почему 3ds формат разделяет вершины?

Grebnev
22.10.2010, 17:46
я ничего не понял ни из скринов, ни из объяснений. Фотку объекта в студию ,что надо отмоделить.

сандро
22.10.2010, 18:34
я ничего не понял ни из скринов, ни из объяснений. Фотку объекта в студию ,что надо отмоделить.
Ты сам попробуй и все поймешь. Смодель цилиндр радиусом 0,045м и длиной 18 метров, поставь разделение на 5 частей. И попробуй его потекстурь. Задача получить целый (без отделения отдельных полигонов) цилиндр без косяков со сглаживанием.

Вот текстура, стоят по порядку 1,2,3,4,5
http://ifolder.ru/19898281

сандро
22.10.2010, 18:56
Вот и фотка, того, что я делаю

http://i020.radikal.ru/1010/a8/1957e6a42e3e.jpg

Grebnev
22.10.2010, 20:08
Теперь понял. Каждый цилиндр разбит на 5 сегментов по длинне. Но и какие тут проблемы со сглаживанием. Сделай отдельный кусок текстуры на каждый из 5 сегментов, чтоб стык сегментов не попадал на цилиндры а попал на промежутки между ними.

http://s54.radikal.ru/i145/1010/06/a3f0131bc54et.jpg (http://radikal.ru/F/s54.radikal.ru/i145/1010/06/a3f0131bc54e.jpg)

сандро
23.10.2010, 00:47
Так и сделал. Просто видеоадапетр не резиновый, вершины то тоже жрут ресурсы. Я же говорю, видимых деталей масса и вагонов минимум 6 будет, из них два с этой бякой на крыше, которая 9 тысяч поликов эта дрянь на крыше сожрала (еще токоприемник, разрядники в ящике, индуктивный шунт и дроссель). Так что, хочешь, не хочешь, а считаешь все.

TRam_
23.10.2010, 20:19
Ресурсы жрут не вершины а треугольники (фейсы)

сандро
23.10.2010, 20:27
Глупость какая. У любого видеоадптера есть максимальное количество отображаемых треугольников и вершин! Так что жрет ресурсы все и вершины тоже! Чтобы их спроецировать надо "подумать"

сандро
24.10.2010, 12:20
Тут вопрос возник. Как сделать тормозной цилиндр? Если формат 3ds не допускает наличия полигонов за пределами вершин? Ведь туда не получится просто приаттачить полигон, у него часть где подходят трубы выпуклая, т.е. надо делать геометрией и сшивать вершины.

сандро
24.10.2010, 12:36
Вот, о чем я говорю

http://i001.radikal.ru/1010/ef/1b5773eae88c.jpg

OakenheaD
25.10.2010, 18:49
Сделай первый сильно упрощенный лод метров с 50. Как показывает практика разница практически незаметна. А с 250 метров можно вообще параллелепипед с текстурами ставить - никто не отличит =)

сандро
25.10.2010, 20:28
Так а в близи то видно все.

OakenheaD
25.10.2010, 23:45
Что все? Сделай до 25 метров (2 вагона в обе стороны) высоко-полигональные резисторы. Затем делай лод хоть с кривой альфой, все равно этого не будет видно - деталь то мелкая..

сандро
26.10.2010, 00:13
Ты хочешь чтобы вагон весил 100 тысяч полигонов? 138 резисторов всего, каждый делать геометрией?. Они будут выполнены альфой. Пусть неказисто, зато "легко"

Grebnev
27.10.2010, 07:49
А ты сделай вот такую развертку, если уж сильно охота с выпуклостью.

http://s014.radikal.ru/i326/1010/d5/20c97b9e0dc4t.jpg (http://radikal.ru/F/s014.radikal.ru/i326/1010/d5/20c97b9e0dc4.jpg)

Это вид справа и слева. илеи, если угодно -верпху и снизу -потом в UNWrap UW наложи их друг на друга и слей вершины -вот и выйдет цельный цилиндр. Только текстура будет повторяться, но тут можно извернуться.

сандро
27.10.2010, 09:41
Это я допер как делать. А трубу как отекстурить (под трубой понимаю примитив TUBE)?

Grebnev
27.10.2010, 10:09
а ты создай простой цилиндр сегментов на 20 и граней на 6. И отекстурь простое. А потом гни текстурированное.

сандро
14.12.2010, 13:20
Рвзобрался самостоятельно с такими вопросами, тему можно закрывать.