Голосование

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

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

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

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

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #195 : 27 Июль 2014, 22:14:01 »
Цитировать
Поглядел. Не работает, LanuHum. Но ты не парься особо по этому поводу пока.
Пусть спецы посмотрят. Ошибка где-то здесь:
Код
class PovrayRender(bpy.types.RenderEngine):
    bl_idname = 'POVRAY'
    bl_label = "Povray render"
    bl_use_preview = True
    DELAY = 0.5

    @staticmethod
    def _locate_binary():
        addon_prefs = bpy.context.user_preferences.addons[__package__].preferences
        pov_binary = addon_prefs.binary
        if pov_binary:
            if os.path.exists(pov_binary):
                return pov_binary
            else:
                print("User Preference to povray %r NOT FOUND, checking $PATH" % pov_binary)
        if sys.platform[:3] == "win":
            import winreg
            win_reg_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\POV-Ray\\v3.7\\Windows")
            win_home = winreg.QueryValueEx(win_reg_key, "Home")[0]
            if platform.architecture()[0]=='64bit':
                pov_binary = os.path.join(win_home, "bin", "pvengine64.exe")
                if os.path.exists(pov_binary):
                    return pov_binary
            if platform.architecture()[0]=='32bit':
                pov_binary = os.path.join(win_home, "bin", "pvengine.exe")
                if os.path.exists(pov_binary):
                    return pov_binary
        pov_binary_default = "povray"
        os_path_ls = os.getenv("PATH").split(':') + [""]
        for dir_name in os_path_ls:
            pov_binary = os.path.join(dir_name, pov_binary_default)
            if os.path.exists(pov_binary):
                return pov_binary
        return ""
    def render(self, scene):
        if self.is_preview:
            declareNodes=[]
            workDir=os.path.dirname(__file__)
            previewDir=('%s/preview/'%workDir)
            if sys.platform[:3] == "win":
                previewDir="C:\\povray\\preview"
            if os.path.exists(previewDir)==False:
                if sys.platform[:3] == "win":
                    os.makedirs("C:\\povray\\preview", mode=0o777, exist_ok=False)
                else:
                    os.mkdir('%s/preview/'%workDir)
            file = open("%sPreview.ini"%previewDir, "w")
            file.write("bla-bla-bla")
            file.close()
            file = open("%sPreview.pov"%previewDir, "w")
            file.write("bla-bla-bla")
            file.close()
            pov_binary = PovrayRender._locate_binary()
            self._process = subprocess.Popen(["%s"%pov_binary,"-d","%s/Preview.ini"%previewDir],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
            self._process.wait()
            imageFile="%sPreview.png"%previewDir
            if os.path.exists(imageFile):
                result = self.begin_result(0, 0, x, y)
                lay = result.layers[0]
                time.sleep(self.DELAY)
                lay.load_from_file(imageFile)
                self.end_result(result)
            else:
                print("***POVRAY FILE NOT FOUND***")

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #196 : 27 Июль 2014, 23:13:21 »
Код
file.write("bla-bla-bla")
...подстолом!  :D ;D :)

Да, просто незачем писать всё, что оно там пишет - это на винду не влияет.  :)
Скачай ещё раз:
https://github.com/Lanuhum/BlendPov-alternative
Здесь уже без Суслика, ноды материалов, текстурные ноды и в коде превью удалил это подозрительное return "", не знаю, нафиг оно там было... может, заработает в винде превью. :)
Файл предоставляю, картинку тоже


[вложение удалено Администратором]

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #197 : 27 Июль 2014, 23:18:45 »
Да, на всякий случай, укажи бинарник поврея в userpref

[вложение удалено Администратором]

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #198 : 28 Июль 2014, 19:50:16 »
Смари че пишет (скриншот показывает туже самую ситуацию)... Но ты  особо не парься... хрен с ним с этим превью под винду пока что на данном этапе...

файл render.py строка 805
Код
            self._process = subprocess.Popen(["%s"%pov_binary,"-d","%s/Preview.ini"%previewDir],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
Удали
Код
,"-d" 
Чтоб получилось так:
Код
            self._process = subprocess.Popen(["%s"%pov_binary,"%s/Preview.ini"%previewDir],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
Если заработает, то я внесу изменение

Цитировать
Лучше сделай  кнопку в панели узлов, типа "обновить" и  чекбокс "автообновление" при изменениях, что бы был выбор у  пользователя ... хотя...
Ничё не понял. Что будем обновлять? По умолчанию выскакивают два интерналовских нода? Там же есть чекбокс use node, который должен обновить.
« Последнее редактирование: 28 Июль 2014, 20:00:43 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #199 : 28 Июль 2014, 22:20:45 »
А, между делом, мы уже умеем так:

[вложение удалено Администратором]

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #200 : 29 Июль 2014, 02:33:44 »
... создал два объекта и два различных материала, присвоил каждому объекту свой материал, но на рендеринге оба объекта одного материала ...
Для Кота

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #201 : 29 Июль 2014, 02:44:38 »
... еще на вкладке Render пусто ...
Для Кота

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #202 : 29 Июль 2014, 20:09:39 »
Цитировать
... создал два объекта и два различных материала, присвоил каждому объекту свой материал, но на рендеринге оба объекта одного материала ...
Благодарю! Косяк обнаружен, исправлю. Я присвоил материалам имена нодов не учитывая, что они могут иметь одни и те же имена в разных деревьях. Нужно к имени нода добавить имя дерева, тогда должно быть всё нормально.

Цитировать
... еще на вкладке Render пусто ...
Пустота заполнится, до этого, просто, я не дошёл ещё.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #203 : 29 Июль 2014, 21:07:01 »
Цитировать
... создал два объекта и два различных материала, присвоил каждому объекту свой материал, но на рендеринге оба объекта одного материала ...
Благодарю! Косяк обнаружен, исправлю. Я присвоил материалам имена нодов не учитывая, что они могут иметь одни и те же имена в разных деревьях. Нужно к имени нода добавить имя дерева, тогда должно быть всё нормально.

Цитировать
Код
if inp.name not in {"Pattern","Mapping","Transform","Modifier"} and inp.is_linked: # тут, по-моему, что-то не так!
node.name (и node.label) может переопределить пользователь, для сравнения надо использовать node.bl_idname либо node.bl_rna.identifier.

... как уже было отмечено, то наверное лучше использовать идентификаторы, а не имена ...
Для Кота

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #204 : 29 Июль 2014, 21:40:13 »
Цитировать
... как уже было отмечено, то наверное лучше использовать идентификаторы, а не имена ...
Я и использую идентификаторы для выстраивания нодов в очередь на декларацию. Для создания индивидуального имени пигмента, текстуры и прочего идентификаторы не годятся.
А, если в дереве несколько нодов с bl_idname == "PovrayImageNode"?
Для имён лучше использовать имена. Имя нода пользователю не нужно, оно не отображается в интерфейсе нодов. Можно в инструкции прописать, просто, имя нода на панели N не трогать!!! А лэйблы можно присваивать какие угодно, хоть на русском, хоть на китайском. Именно, лэйблы отображаются в шапке нода и позволяют юзеру ориентироваться в созданной им схеме. Экспортёру лэйблы не нужны.

Исправил, вроде, косяк с материалами разных объектов. Добавил панели. Пока без повреевских элементов

[вложение удалено Администратором]

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #205 : 29 Июль 2014, 21:56:38 »
А, если юзер захочет без проблем ориентироваться в повфайле, то я могу добавить в строчку комментарий, например:
#declare Full_Material_Material_001 = texture { // Стекло люстры
Разумеется, если у нода будет самому юзеру понятный лэйбл: "Стекло люстры"
Поврей не читает кириллицу, но, ему не нужно читать комментарии, которые могут быть на кириллице

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #206 : 29 Июль 2014, 22:02:27 »
Цитировать
LanuHum, поменял, но не фуричит... хоть бы ругался иначе, но трындит тоже самое...
Ну, коль ты переводишь доки, тебе и искать правильные команды для виндовс, чтобы запустить поврей в теневом режиме.
Или опиши мне по английски проблему, я задам вопрос на офсайте. Они там с моим онлайн промтом очень плохо меня понимают и просят ставить смайлики, чтобы видеть, что я, хотя бы не ругаю их матом. :)

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #207 : 29 Июль 2014, 22:09:37 »
Old Demon! А, ещё посмотри, создаются ли файлы предпросмотра
В коде у меня написано так, что должна быть создана директория на диске С. C:\\povray\\preview

Код
            previewDir=('%s/preview/'%workDir)
            if sys.platform[:3] == "win":
                previewDir="C:\\povray\\preview"
            if os.path.exists(previewDir)==False:
                if sys.platform[:3] == "win":
                    os.makedirs("C:\\povray\\preview", mode=0o777, exist_ok=False)
                else:
                    os.mkdir('%s/preview/'%workDir)

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #208 : 29 Июль 2014, 23:28:33 »
Цитировать
Есть там эти директории...

Покажи Preview.ini оттуда. Я задал вопрос на офсайте

Оффлайн LanuHum

  • Житель
Re: Povray-3.7: Неофициальный экспортёр
« Ответ #209 : 29 Июль 2014, 23:58:14 »
Цитировать
Не пойму, нафига сразу к нагличанам лезть с вопросами?... это ж, вроде, проблема твоего экспортера, а не рендерера...
Это проблема твоего виндового поврея. Он не хочет работать в теневом режиме, открывая свою гуёвину. Мне там расскажут, как запустить. Но, даже, если я виноват, то мне укажут на ошибку. У них ни твой менталитет, чтобы сразу валить все шишки на того, кто ищет ответ. :)
Не создаёт. Он её должен создать, если её нет, а, если она есть, то он должен туда писать два файла, постоянно переписывая их при каждом твоём телодвижении в блендере. Раз она у тебя была, там должны были быть файлы.

Цитировать
Ноды красные...
Покажешь, нет?
Надеюсь, ты проверяешь на Github последние изменения :)
« Последнее редактирование: 30 Июль 2014, 00:17:48 от LanuHum »

 


Яметрика

* По форуму

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

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

1 (1).png
Скачано: 68
Автор: LEXA ANЭGROWND
blender.png
Скачано: 78
Автор: ipv2007
4.png
Скачано: 100
Автор: hiroyukiss
2.png
Скачано: 122
Автор: hiroyukiss

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