Всем привет!
Хочу представить вашему вниманию тулзу под Макс собственной разработки, позволяющую подготовить модели деревьев для использования идеи, озвученной в теме.
Называется эта штука SmartTree Foliage Creation Utility, последний билд прикладываю к сообщению.
Основная идея - создаем полигоны-спрайты фиксированного размера, затем вершинный шейдер (логично что его нужно написать) ищет на заданном расстоянии соседние вершинки и ресайзит+поворачивает лицом к игроку все спрайты. Идея схлопнуть полигон в точку не прошла, поскольку компилятор studiomdl это дело благополучно режет.
Что мы имеем - вполне рабочую и на мой взгляд удобную тулзу с презентом в виде зашитых в нее багов. Писалась под 2009 Макс, под 2010 тоже должна работать. В принципе и под 2008 должна завестись, но полностью не могу быть уверен. Под более старые - не пойдет, поскольку используется ряд новых возможностей.
Чтобы понять, как с этой штуковиной работать, записал пачку видяшек (сначала даже сделал все красиво, с музыкой и титрами, однако пол-ночи работы пропали даром, не выдержав удара граблей кривого софта):
SmartTree: User interface
SmartTree: Basic settings
SmartTree: Surface Distribution
SmartTree: Volume Distribution
SmartTree: Manual sprites creation
Что еще навскидку хотелось бы сделать:
- На данный момент возникает дилема - с одной стороны хочется подобрать оптимальный размер для спрайтов, чтобы оценить внешний вид получаемого дерева, с другой - спрайты по задумке должны быть фиксированного размера. Думаю, стоит сделать инструмент, позволяющий сделать ресайз всех спрайтов перед экспортом. А уже в vmt будет задаваться итоговый размер, в который они будут ресайзиться.
- Для создания ЛОДов можно реализовать "прореживатель", удаляющий рандомно часть спрайтов (можно и вручную, но муторно..)
- Возможно в будущем сделаю даже превью с поворачиванием поликов, только пока что слабо себе представляю как это должно выглядеть с точки зрения взаимодействия с пользователем. Ведь в итоговой модели все спрайты должны быть ориентированы сторо с "севера на юг", образно выражаясь. А в таком режиме они будут вертеться туда-сюда. Плюс еще поди различи объекты, подлежащие такой обработке. В голове только мысль о кнопке-переключателе, по которой все объекты, в которых имя начинается с определенного штампа, будут обрабатываться так, что при повороте вьюпорта их полики будут поворачиваться тоже. В таком режиме можно будет даже поудалять и подвигать их, а при отключении все полики снова ориентируются, как магнитная стрелка..
Чего хочу от вас:
- Поюзать, потестить, поискать баги (очень желательно локализовать, т.е. определить при каких конкретно условиях происходит, иначе найти причину сложно..), обдумать что и в каком виде можно было бы добавить, чтобы получилась качественная тулза.
ПРЕДУПРЕЖДЕНИЕ:
Очень неприятный баг бывает при отмене операций, благо проявляющийся все реже и реже. Но если появится - то Макс "падает" замертво. Поэтому советую сохранить во-первых саму модель дерева перед началом "развешивания" листвы, а во-вторых какой-либо приятный для себя результат, чтобы не было разочарований. Часть таких багов я уже отловил, но изредка бывает, что вылезает, а разобраться почему времени не хватило.
К сожалению выдав на гора все это мне придется вас покинуть на некоторое время, но по возвращении надеюсь увидеть здесь много "пищи для ума"
P.S. При генерации идей исходим из соображений юзабельности, полезности и относябельности к теме создания конкретного дерева для использования данной конкретной технологии. Делать кухонный комбайн, генерирующий все подряд, не стоит - да и некогда по большому счету