Голосование

Нужны ли "ноды" для POV-Ray?

Да
0 (0%)
Нет
0 (0%)
Не понимаю вопрос
0 (0%)

Проголосовало пользователей: 0

Автор Тема: Povray-3.7: Неофициальный экспортёр  (Прочитано 98069 раз)

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #225 : 02 Август 2014, 21:21:32 »
Подключил нод Transform.

Old Demon, скачай обновлённую версию и проверь превью. Сделал по рекомендации bdancer в tmp, слешев не использовал, у меня работает в линуксе.
« Последнее редактирование: 02 Август 2014, 21:29:59 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #226 : 02 Август 2014, 21:33:07 »
Ещё где-то косяк. В несохранённом файле рендер сцены не производится, выплёвывает ошибку. Поищу, что там снова где-то ни так.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #227 : 02 Август 2014, 22:05:23 »
Цитировать
Да превью, работает, спасибо (с остальным пока не разобрался)!  Я понимаю, что  достал этим тебя...
Нет, не достал. Это нужно. Если тестить возьмутся на офсайте, то им это тоже не понравится.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #228 : 02 Август 2014, 22:35:31 »
Цитировать
никогда не сталкивался с этими нюансами на счет обратных слэшей и путей
Это придумали, чтобы винду от линукса отличить можно было.
Там пишут C:\\путь\\в\\ винду, а тут пишут /путь/в/никуда. Круто, да? :)

Цитировать
Но постоянно врубаетсо эта виндовская "гуёвина" (меткое назавние) на весь экран
А ты её размер измени до минимального и закрой. Она сохранит параметры окна и далее будет открывать маленькое окошко
« Последнее редактирование: 02 Август 2014, 22:39:45 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #229 : 02 Август 2014, 22:44:20 »
Круто :) Ну и  "повыпендриваюсь"пожеланием на будущее, (как философ философу ;) ), если ты не против :) ...
Я отредактировал, читай выше про размер. Задал вопрос на офсайте: "Гугл показал, что вас уже лет 15 спрашивают, как запускать поврей без гуи, и вы 15 лет ни фига не отвечаете."
Завтра подключу турбулентность, warp нужен для процедурок, нормалмапом нужно заниматься.

Не понял я твоего видео из одного кадра.
Ты уже на будущее мне гифку анимированную показывал.
« Последнее редактирование: 02 Август 2014, 22:49:33 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #230 : 02 Август 2014, 23:03:36 »
Цитировать
слушать надо...
Послушал. Промолчу.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #231 : 02 Август 2014, 23:15:43 »
Нравится мне растительность в иных повреевских работах

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #232 : 02 Август 2014, 23:47:45 »
Цитировать
только непонятно куда тебя занесло (это как философ философу)...
На офсайт поврея. Просматривал последние мессаги. Не философ я уже. Я время убиваю.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #233 : 03 Август 2014, 16:09:49 »
Sungreen, я обновил экспортёр, чтобы ты загрузил, и, возможно, что-то придумал.
Найдёшь там в render.py вот этот код с построчными комментариями:
Код
            if node.bl_idname == "ShaderMultiPatternNode" and node.outputs["Color"].is_linked and node.name not in declareNodes:          # Если нод мультипаттерн
                declare=True                                                                                                              # разрешаем декларацию.
                if node.outputs["Replace"].is_linked:                                                                                     # Если сокет Replace имеет линки
                    for link in ntree.links:                                                                                              # ищем во всех линках
                        if link.from_node==node and link.to_node.bl_idname=="ShaderReplaceNode":                                          # линки от исследуемого нода к ShaderReplaceNode.
                            for ilink in ntree.links:                                                                                     # Ищем во всех линках
                                if ilink.to_socket.name=="Color" and ilink.to_socket.node==link.to_node:                                  # линк на сокет нода ShaderReplaceNode
                                    if ilink.from_node.name not in declareNodes:                                                          # Если линк идёт с непродекларированного нода
                                        declare=False                                                                                     # запрещаем декларацию.

                if declare:                                                                                                               # Если декларация разрешена

                    replaceIn=[]                                                                                                          # создаём список нодов цвета, подключаемым к ShaderReplaceNode
                    replace=[]                                                                                                            # создаём список нодов ShaderReplaceNode.
                    for link in ntree.links:                                                                                              # Во всех линках
                        if link.from_node==node and link.to_node.bl_idname=="ShaderReplaceNode":                                          # если линк от исследуемого нода к ShaderReplaceNode
                            for ilink in ntree.links:                                                                                     # Ищем во всех линках
                                if ilink.to_socket.name=="Color" and ilink.to_socket.node==link.to_node:                                  # линк на сокет нода ShaderReplaceNode
                                    replaceIn.append(ilink.from_node.name)                                                                # Добавляем в список replaceIn нод цвета
                                    replace.append(ilink.to_node.name)                                                                    # Добавляем в список replace ShaderReplaceNode

                    povNodeName=string_strip_hyphen(bpy.path.clean_name(node.name))+"_%s"%povMatName                                      # Создаём имя для экспорта
                    file.write('#declare %s = texture {\n'%(povNodeName))                                                                 # Начинаем декларацию
                    transform = ""                                                                                                        # Transform
                    for link in ntree.links:                                                                                              #
                        if link.from_node.bl_idname=='PovrayTransformNode' and link.to_node==node:                                        #
                            povTransName=string_strip_hyphen(bpy.path.clean_name(link.from_node.name))+"_%s"%povMatName                   #
                            transform="transform {%s}"%povTransName                                                                       #
                    file.write('    %s %s texture_map {\n'%(node.inputs["Pattern"].default_value, transform))                             #
                    if node.inputs["Color ramp"].is_linked:                                                                               # Проверяем подключение колоррампа
                        for link in ntree.links:                                                                                          #
                            if link.from_node.type=='VALTORGB' and link.to_node==node:                                                    # Находим нужный
                                els=link.from_node.color_ramp.elements                                                                    # Определяем элементы
                                n=-1                                                                                                      # Задаём отсчёт элементов
                                for el in els:                                                                                            # По элементу во всех элементах
                                    n+=1                                                                                                  # Определяем порядковый номер
                                    pos=el.position                                                                                       # Определяем позицию
                                    r,g,b,a=el.color[:]                                                                                   # Переводим цвет в переменные
                                    f=0                                                                                                   # Добавляем фильтр
                                    default=True                                                                                          # Разрешаем запись с колоррампа
                                    povColor="color rgbft <%.4g,%.4g,%.4g,%.4g,%.4g>"%(r,g,b,f,a-1)                                       # Определяем цвет для поврея
                                   
                                    povColName=string_strip_hyphen(bpy.path.clean_name(link.from_node.name))+"_%s_%s"%(n,povMatName)      # Называем цвет
                                    for inode in ntree.nodes:                                                                             # По всем нодам
                                        for i in range(0,len(replace)):                                                                   # По списку replace
                                            if (inode.name==replace[i]) and inode.inputs["Stop number"].default_value==n:                 # Если Stop number нода ShaderReplaceNode равен порядковому номеру
                                                for knode in ntree.nodes:                                                                 # Во всех нодах
                                                    if knode.name == replaceIn[i]:                                                        # находим соответствующий нод в replaceIn
                                                        povColName=string_strip_hyphen(bpy.path.clean_name(knode.name))+"_%s"%povMatName  # Заменяем дефолтное имя
                                                        default=False                                                                     #
                                    if default:                                                                                           # Если дефолтное имя, то создаём и декларируем текстуру на основе дефолтного цвета
                                        file.write('    #declare %s = texture{pigment{%s}};\n'%(povColName,povColor))                     # то создаём и декларируем текстуру на основе дефолтного цвета
                                    file.write('    [%.4g %s]\n'%(pos,povColName))                                                        # Записываем текстуру для порядкового номера
                    file.write('}}\n')                                                                                                    # Закрываем декларацию
                    declareNodes.append(node.name)                                                                                        # Добавляем в список продекларированных

Не работает он толком ни фига.
Код
#declare MultiPattern_001_Material = texture {
    granite  texture_map {
    #declare ColorRamp_001_0_Material = texture{pigment{color rgbft <0,0,0,0,0>}};
    [0 ColorRamp_001_0_Material]
    [0.5 MultiPattern_001_Material]   // КАКОГО ХРЕНА?
    #declare ColorRamp_001_2_Material = texture{pigment{color rgbft <1,1,1,0,0>}};
    [1 ColorRamp_001_2_Material]
}}
#declare MultiPattern_Material = texture {
    agate  texture_map {
    #declare ColorRamp_0_Material = texture{pigment{color rgbft <0,0,0,0,0>}};
    [0 ColorRamp_0_Material]
    [1 MultiPattern_001_Material]
}}

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #234 : 03 Август 2014, 20:00:04 »
Не нравится мне это. Повозился с Group make. По-моему, намного лучше, но будет пользователь совершать дополнительные телодвижения, а, может, и нет, не считал я число действий при создании обратных связей и при добавлении нужного количества сокетов и их именования.
А вот раскручивать будет намного легче всю эту лабуду. :)
« Последнее редактирование: 03 Август 2014, 22:44:33 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #235 : 03 Август 2014, 23:19:16 »
Old Demon, ответы с офсайта таковы:
Разработчик Поврея Le_Forgeron <jgrimbert [at] freefr> wrote:
Цитировать
No gui: try to have the unix/linux code in a windows port, via thing like cygwin.

From: Alain (По-моему, ещё один разработчик):
Цитировать
The Windows version always show the GUI and there are now option or
switch to change that. The only thing that you may try is to start
minimised. It's possibly the same for the MacOS version.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #236 : 04 Август 2014, 19:55:21 »
Цитировать
...либо, необходима возможность отключения автоматического просмотра материала, о которой я тебе писал ранее...
В принципе, автопросмотр работает только, если развёрнуто окошко превью. Нужно его вынести в отдельный свиток

Цитировать
..в общем я тебе пока не помощник в тестах... ребята с линуксами в помощь...  но чет их не видно тут :\
Проблема минимизировать окно GUI?
Ну, да, не помощник, так не помощник. Я уже давно понял, что занялся бесполезным, но, допишу, на всякий случай. Может, самому пригодится, раз другим не нужно.

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #237 : 04 Август 2014, 23:28:53 »
Цитировать
Я тебе грубо и снова по хамски скажу: если ты делаешь не только для себя, а и для других людей, то, будь добр, прислушивайся и к тому, что они тебе пишут.
Прислушиваться нужно к голосу, к тому, что пишут, нужно причитываться :)
И, к чему я не причитался, к тому, что
Цитировать
но чет их не видно тут :\
???
 :)
Ты уже какой раз собираешься свалить? Псих?  Лечись, философ. Меня этим не прошибёшь
« Последнее редактирование: 04 Август 2014, 23:34:26 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #238 : 04 Август 2014, 23:35:29 »
Ну причитывайся дальше..
Свалишь, закрою тему

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #239 : 04 Август 2014, 23:40:56 »
Внёс изменения. Вынес превью в отдельный свиток. По умолчанию свиток будет свёрнут и рендер превью производиться не будет.
Добавил  кнопку Group. Эта кнопка для редактирования нода MultiPattern. При её нажатии нод преобразуется в группу и приобретает возможность добавления нужного количества сокетов. Об этом я уже говорил и показывал.
« Последнее редактирование: 05 Август 2014, 20:55:45 от LanuHum »

 


Яметрика

* По форуму

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

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

blender_Ild91AVt1h.png
Скачано: 5
Автор: dimak
Glue to Sphere.jpg
Скачано: 19
Автор: Samovar
screen.jpg
Скачано: 13
Автор: Samovar
screen.jpg
Скачано: 14
Автор: LanuHum
Primer Glossy on-off.jpg
Скачано: 27
Автор: Samovar