and "UnboundLocalError“使用 Pov Ray 插件-6ren"> and "UnboundLocalError“使用 Pov Ray 插件-我不确定这是最好的提问地点,但我走了... 我正在尝试使用 Blender 2.79b 的 Pov ray 插件渲染图像。当我这样做时,它只会向我展示一个丑陋的棋盘。 在闲逛之后,我点击了信息选项卡,-6ren">
gpt4 book ai didi

python - Blender 渲染 "location: and "UnboundLocalError“使用 Pov Ray 插件

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:07 24 4
gpt4 key购买 nike

我不确定这是最好的提问地点,但我走了...

我正在尝试使用 Blender 2.79b 的 Pov ray 插件渲染图像。当我这样做时,它只会向我展示一个丑陋的棋盘。

在闲逛之后,我点击了信息选项卡,它向我显示了这条小消息:

Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\render_povray\render.py", line 4147, in render
self._export(scene, povPath, renderImagePath)
File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\render_povray\render.py", line 3837, in _export
write_pov(self._temp_file_in, scene, info_callback)
File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\render_povray\render.py", line 3648, in write_pov
shading.writeMaterial(using_uberpov, DEF_MAT_NAME, scene, tabWrite, safety, comments, uniqueName, materialNames, material)
File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\render_povray\shading.py", line 251, in writeMaterial
if(t and t.use and validPath and
UnboundLocalError: local variable 'validPath' referenced before assignment

location: <unknown location>:-1

不幸的是,我并不真正了解 Python(或一般的编码),所以在我更好地理解之前我不想接触任何东西。

最佳答案

打开文件 C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\render_povray\shading.py 并替换行

if material:
special_texture_found = False
for t in material.texture_slots:
if t and t.use and t.texture is not None:
if (t.texture.type == 'IMAGE' and t.texture.image) or t.texture.type != 'IMAGE':
validPath=True
else:
validPath=False
if(t and t.use and validPath and
(t.use_map_specular or t.use_map_raymir or t.use_map_normal or t.use_map_alpha)):
special_texture_found = True
continue # Some texture found

if special_texture_found or colored_specular_found:
# Level=1 Means No specular nor Mirror reflection
povHasnoSpecularMaps(Level=1)

# Level=3 Means Maximum Spec and Mirror
povHasnoSpecularMaps(Level=3)

使用 Blender 2.8 更新后的附加组件中的以下代码。确保标识级别与原始文件中的标识级别相同。

if material:
special_texture_found = False
for t in material.texture_slots:
if t and t.use and t.texture is not None:
if (t.texture.type == 'IMAGE' and t.texture.image) or t.texture.type != 'IMAGE':
#validPath
if(t and t.use and
(t.use_map_specular or t.use_map_raymir or t.use_map_normal or t.use_map_alpha)):
special_texture_found = True
continue # Some texture found

if special_texture_found or colored_specular_found:
# Level=1 Means No specular nor Mirror reflection
povHasnoSpecularMaps(Level=1)

# Level=3 Means Maximum Spec and Mirror
povHasnoSpecularMaps(Level=3)

代码中的问题是 if-case if (t.texture.type == 'IMAGE' and t.texture.image) or t.texture.type != 'IMAGE': 没有设置 validPath 的 else 情况。如果发生这种情况,则 validPath 未初始化,这会导致您遇到错误。

关于python - Blender 渲染 "location: <unknown location> and "UnboundLocalError“使用 Pov Ray 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57343234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com