Автор Тема: Решил сделать сет посвященный русскому деревянному зодчеству  (Прочитано 6605 раз)

Оффлайн Mihanik

  • Житель
У меня тут возникли некоторые идеи относительно процедурок для сруба. В общем если моделить каждое бревно отдельным объектом можно настроить смещение и поворот процедурного массива на основе местоположения объекта в пространстве. Правда тогда сам сруб и брёвна должны быть неподвижны, то есть анимация сборки сруба или его перемещения исключается. Зато каждое бревно получает уникальную текстуру включая торец. Вот попробовал на своём процедурном материале дерева. Правда получилось оцилиндрованное бревно, а не окорённое, но могу попытаться сделать и окорённое. и состаренное, с трещинами...

Оффлайн Anchoret

  • Житель
Классная текстура! Или текстуры, если рассматривать весь перечень) Мне до такого расти и расти) В плане создания подобных процедурок. А то любое сооружение "из бревен" превращается в массивы объектов распиханные по подпапкам...

Вроде допилил крыльцо. Про фундамент помню. Только какой это должен быть фундамент.... Загадка. Видел фото с природным камнем на растворе цементном или его аналоге, но есть стойкое подозрение что это реставрация и ее последствия.

Оффлайн Mihanik

  • Житель
Вообще вроде как считается, что в России с конца 17 в. строились деревянные избы на каменных подклетах, до того просто камни под углы. Но то избы, вот более раннее свидетельство применения каменных подклетей https://azbyka.ru/news/pri-restavracii-cerkvi-v-pskovo-pecherskom-monastyre-obnaruzhili-kamennyj-podklet-xv-veka. Не знаю что там было с  цементным раствором, но это не ахти какой наноматериал, думаю что был он тогда и не хуже нынешнего. на крайняк глина точно была и активно использовалась в строительстве.

Оффлайн Anchoret

  • Житель
Интересно, а условия через ноды как-то можно задавать? А то примитивная математика есть, а условий не нашел... Хотя в принципе, раз знак перед числом роли в блендере (ноды) не играет, либо роль его мной до конца не выявлена, можно и как-то иначе вычислить координаты с размером участка поверхности исходя из координат и линейных размеров.

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

Дед рассказывал, что в раствор для кладки кирпича желтки от куриных яиц добавляли. Но это еще до революции.

Оффлайн Samovar

  • Житель
Цитировать
Интересно, а условия через ноды как-то можно задавать? А то примитивная математика есть, а условий не нашел...
Есть там логика, в том же узле математики. Больше чем и меньше чем... да и всё остальное , тоже по сути, математическая логика... можно даже изображение повернуть с помощью матрицы поворота из нодов(узлов), при желании...

Оффлайн Mihanik

  • Житель
Интересно, а условия через ноды как-то можно задавать? А то примитивная математика есть, а условий не нашел...
Можно вообще всё, на то он и свободный софт))) Есть даже нода "скрипт". Берём и пишем то, что до нас ни кто не догадался написать, Но есть маленький нюанс, надо уметь это делать. Вот это я как раз не умею.
 Тут выше я предложил двигать и вращать процедурную текстуру в зависимости от положения объекта, Вот только хорошо бы это делать не от положения, а от названия, от уникального имени объекта, и не как не соображу как получить это имя для использования в нодах материала.

Оффлайн Samovar

  • Житель
Цитировать
Тут выше я предложил двигать и вращать процедурную текстуру в зависимости от положения объекта...
А не проще к текстуре Random (Случайно) положения прикрутить, чтоб текстура для каждого объекта была случайной?
В узле Object Info (Информация об объекте) есть и Object ID ( Индекс объекта  - это, считай, "имя" объекта), и Material ID... Думаю, надо пробовать в данном направлении, через градиент, но придётся каждому объекту присвоить Pass Index в параметрах, вручную или скриптом...
« Последнее редактирование: 27 Март 2023, 08:34:33 от Samovar »

Оффлайн Mihanik

  • Житель
А не проще к текстуре Random (Случайно) положения прикрутить, чтоб текстура для каждого объекта была случайной?
В узле Object Info (Информация об объекте) есть и Object ID ( Индекс объекта  - это, считай, "имя" объекта), и Material ID... Думаю, надо пробовать в данном направлении, через градиент, но придётся каждому объекту присвоить Pass Index в параметрах, вручную или скриптом...
Это всё я уже попробовал,  Random не знаю в каком месте он рандомный, он одинаковый для всех объектов, или я не понял как им пользоваться, А Object ID и Material ID, как ты правильно заметил надо каждому объекту присваивать, там под сотню брёвен,(Скрипт писать, это не для меня) с таким же успехом можно пивоты у них двигать и вращать, тогда тоже текстура по разному будет ложиться. А вот имя у объектов у всех разное, боле того не бывает одинаковых, даже если захотеть.
 Есть ещё цвет объекта, он тоже для всех одинаковый, но помнится где то был нето адонн, не то настройка, которая делает этот цвет разным, не нашёл пока.

Оффлайн Mihanik

  • Житель
 Оооо,  Samovar извиняюсь, где то я напахал, Random работает.

Оффлайн Samovar

  • Житель
Скрипт простой:
import bpy
n=0
for obj in bpy.context.selected_objects:
    obj.pass_index = n
    n+=1
Не знаю, будет ли работать на новых версиях Blrender. У меня на 2.79 работает.
Копируешь скрипт в окно текстовое окно для скриптов. Выбираешь объекты в сцене. Запускаешь скрипт. Всё.

Оффлайн Mihanik

  • Житель
Скрипт простой:
import bpy
n=0
for obj in bpy.context.selected_objects:
    obj.pass_index = n
    n+=1
Не знаю, будет ли работать на новых версиях Blrender. У меня на 2.79 работает.
Копируешь скрипт в окно текстовое окно для скриптов. Выбираешь объекты в сцене. Запускаешь скрипт. Всё.
Спасибо, пригодится но как я уже написал, где то я напахал, Random работает.
Это в корне меняет дело, доведу мат до ума, подпишу что там к чему по человечьи, выложу.

Оффлайн Samovar

  • Житель
Цитировать
Это в корне меняет дело, доведу мат до ума, подпишу что там к чему по человечьи, выложу.
Ясно, успехов. Рад, что чем-то помог. :D  Мысли вслух: во я писака... "в окно текстовое окно"  ;D

Оффлайн Anchoret

  • Житель
Переучиваться на пайтон что-ли...

Логика там конечно есть, но очень скромная. Я уже представил стену из математических нодов для расчета положения объекта в пространстве с вычислением где у этого объекта (в данном случае цилиндра) торец.

Оффлайн Anchoret

  • Житель
На тему пайтона и нодов и не только - http://www.striver00.ru/files/Scripting_Blender_2.49_ru.pdf

Оффлайн Mihanik

  • Житель
Переучиваться на пайтон что-ли...

Логика там конечно есть, но очень скромная. Я уже представил стену из математических нодов для расчета положения объекта в пространстве с вычислением где у этого объекта (в данном случае цилиндра) торец.
Да там дело не в математике, а в недостатке данных. вот нода "информация об объекте" есть, а информации как таковой нет, мало. Был бы там хотя бы узел "длинна-ширина-высота" , не вопрос, было бы определить где у бревна торец. А так я не морочился, просто в моём материале бревно лежит вдоль по оси Х, можно нодой "отображение вектора" повернуть как надо, но этот поворот конечно скажется на всех брёвнах. Это завязано на объект а не на мир, по этому как не верти бревно  в объектном режиме, текстура будет лежать правильно, а вот в режиме редактирования если повернуть, то текстура съедет. А если вся стена один объект, то я не представляю, как у каждого бревна найти центр, опять же из за недостатка данных.