Автор Тема: Модификаторы объектов на python.  (Прочитано 6922 раз)

Оффлайн -andrey-

  • Житель
Модификаторы объектов на python.
« : 27 Октябрь 2016, 20:55:53 »
   Здравствуйте, есть необходимость написать несколько модификаторов. По python вопросы я задам на киберфорум.ру, там эксперты не плохие (как минимум по FPC Lazarus), а вот с блендером хотелось-бы разобраться, в первую очередь - как прочитать в открытом файле информацию об объекте - поверхности и вершины. Вообще задумка написать недоBoolean модификаторы, поверьте - такие тоже нужны, так как ошибок будет меньше. Первый модификатор который в планах - упрощённый аналог Differense, нечто вроде рихтовки или точнее сказать получение отпечатка одного объекта на другом, не знаю как сказать ещё точнее - вытеснение, отпечаток рельефа...   отпрессовка. Дело в том, что такой модификатор можно использовать так-же как и логический, но с большим числом операций (разделение меша, потом снова объеденение, если вообще это нужно), но с меньшим числом ошибок.
« Последнее редактирование: 27 Октябрь 2016, 21:51:55 от -andrey- »

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Модификаторы на python.
« Ответ #1 : 27 Октябрь 2016, 21:04:28 »
>> - как прочитать в открытом файле информацию об объекте - поверхности и вершины.
... информацию о вершинах можно прочитать из соответствующей коллекции vertices полисетки объекта ...
... подробное описание можно найти в разделе blender api: https://www.blender.org/api/blender_python_api_2_78a_release/bpy.types.Mesh.html#bpy.types.Mesh.vertices

... описание информации о вершинах: https://www.blender.org/api/blender_python_api_2_78a_release/bpy.types.MeshVertex.html#bpy.types.MeshVertex

... и в частности где хранятся координаты вершины:  https://www.blender.org/api/blender_python_api_2_78a_release/bpy.types.MeshVertex.html#bpy.types.MeshVertex.co

... насколько понимаю структуру api, то модификатор нужно впилить в код blender, то есть это не будет язык python, а Си ...
Для Кота

Оффлайн -andrey-

  • Житель
Re: Модификаторы на python.
« Ответ #2 : 27 Октябрь 2016, 21:24:31 »
Нет, мне не нужно модифицировать сам Blender, мне нужно добавить несколько функций, и всё. Насколько я понимаю -это можно на pythone.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Модификаторы на python.
« Ответ #3 : 27 Октябрь 2016, 21:29:17 »
>> есть необходимость написать несколько модификаторов
>> мне нужно добавить несколько функций, и всё.
... то есть речь идет не про написание модификатора, а про написание дополнения (addons) ...
... посмотри ссылки из предыдущего сообщения, по ним ты сможешь выбрать с помощью модуля bpy требуемые данные о структуре полисетке - вершинах, ребрах, полигонах ...
Для Кота

Оффлайн -andrey-

  • Житель
Re: Модификаторы на python.
« Ответ #4 : 27 Октябрь 2016, 21:35:41 »
А вообще, если не секрет, данные хранятся в массиве? Зачем такие API, если можно просто работать напрямую с массивом? Мне нужно просто знать карту массива и всё, и команды работы с ним. Больше мне не надо, мне-бы сразу с памятью работать (массивом). Или на python это не возможно? А изучать отдельные шаги - не интересно, хватит знания возможных направлений, ходить я сам научусь. Ну если нельзя - конечно напишу скрипты работы с этим массивом на pythone.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Модификаторы на python.
« Ответ #5 : 27 Октябрь 2016, 21:47:29 »
... попробуй еще в сторону bmesh  посмотреть: https://wiki.blender.org/index.php/Dev:Source/Modeling/BMesh/Design ...

>> А вообще, если не секрет, данные хранятся в массиве?
... в общем в этом секрета нет, ведь blender это opensource проект, ты можешь открыть его исходники и посмотреть как и где хранятся данные ...
https://wiki.blender.org/index.php/Dev:Doc/Tools/Git
Для Кота

Оффлайн -andrey-

  • Житель
Re: Модификаторы объектов на python.
« Ответ #6 : 27 Октябрь 2016, 21:55:36 »
Хорошо, спасибо. Думаю, что без труда найду мануалы по редактированию мешей на python.

Оффлайн -andrey-

  • Житель

Оффлайн LanuHum

  • Житель
Re: Модификаторы на python.
« Ответ #8 : 27 Октябрь 2016, 22:56:35 »
Нет, мне не нужно модифицировать сам Blender, мне нужно добавить несколько функций, и всё. Насколько я понимаю -это можно на pythone.
Сомневаюсь я, однако, что недобулеан поедет на питоне...
Как бы не пришлось сюда смотреть:
https://docs.python.org/3.4/extending/extending.html
 :)

Оффлайн LanuHum

  • Житель
Re: Модификаторы объектов на python.
« Ответ #9 : 27 Октябрь 2016, 23:02:59 »
  Вот с чего надо начинать, думаю https://ru.wikibooks.org/wiki/Blender_%D0%B4%D0%BB%D1%8F_%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85/Python
Чтобы вытащить меш достаточно изучить аддон экспорта меша в OBJ формат.

Оффлайн -andrey-

  • Житель
Re: Модификаторы объектов на python.
« Ответ #10 : 27 Октябрь 2016, 23:30:52 »
А почему не поедет? В python есть массивы, математические функции, что ещё надо, или чего не хватает? Скорости?

Оффлайн -andrey-

  • Житель
Re: Модификаторы объектов на python.
« Ответ #11 : 27 Октябрь 2016, 23:51:26 »
Цитировать
# AngleArray - создает массив объектов по окружности.
# RotationAngle - угол поворота последющего элемента относительно предыдущего
# MaxRotation - длина дуги поворота в грудусах
# Size - радиус окружности, на которой лежит дуга
# Type - тип элементов (мешей)

def AngleArray(RotationAngle, MaxRotation, Size,type):

тут массив python-а или Blender-a?
« Последнее редактирование: 28 Октябрь 2016, 00:07:11 от -andrey- »

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Модификаторы объектов на python.
« Ответ #12 : 28 Октябрь 2016, 06:32:22 »
... чтобы тебе сейчас незаморачиваться на определении что есть массив "python-а или Blender-а", дай общее описание алгоритма решений по выбранной тобой проблеме ...
... это позволит хоть как-то определиться с набором данных, которые тебе нужно будет извлечь из модели Blender ...
Для Кота

Оффлайн -andrey-

  • Житель
Re: Модификаторы объектов на python.
« Ответ #13 : 28 Октябрь 2016, 19:10:38 »
За алгоритмом не заржавеет, мне нужны массивы, разумеется на такую фичу не замахиваюсь в pythone, там да, я поучил даже экспертов как надо писать код с условными операторами http://www.cyberforum.ru/blogs/223907/blog3707.html#comment15551. Вот мой проект законченный http://www.cyberforum.ru/projects/thread1657256.html , редактор работает с произвольными (нессиметричными, неправильными) пятимерными массивами, сохраняет данные в файл и файл-карту массива. Алгоритм будет - можете не сомнваться, и аддоны я напишу мне нужные, в состоянии, есть много чего того, чему меня никто не учил и что я придумал до кого-либо. Так-что уж будьте добры, подскажите мне про массивы и помогите с вопросами, и у Вас будут аддоны, которых в Blender, пока,  просто нет. Немного ведь прошу, аддоны обещаю первоклассные, фря.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Модификаторы объектов на python.
« Ответ #14 : 28 Октябрь 2016, 19:22:38 »
... вот массив (список) всех вершин меша Cube (кубика по умолчанию)  ...
Код: python
import bpy
vs=[v.co for v in bpy.data.meshes['Cube'].vertices]
print(vs)
Для Кота

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 67
Автор: LEXA ANЭGROWND
blender.png
Скачано: 77
Автор: ipv2007
4.png
Скачано: 99
Автор: hiroyukiss
2.png
Скачано: 121
Автор: hiroyukiss

Скачано: 111
Автор: Dilifa12