微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 bpy 进行视口渲染未使用正确的着色器

如何解决使用 bpy 进行视口渲染未使用正确的着色器

我有一个带有脚本的搅拌机场景,该脚本可以旋转对象,渲染动画,保存帧,然后重复:

import bpy
from math import radians
from mathutils import Euler

track = bpy.context.scene.objects["BezierCircle"]

for angle in range(8):
    angle = angle + 1
    # set output
    bpy.data.scenes['Scene'].render.filepath = 'C:/Users/Evan/Pictures/BlenderSprites/Angle' + str(angle) + '/'
    print(bpy.data.scenes['Scene'].render.filepath)
    # change camera angle
    new_angle = radians(angle*45)
    track.rotation_euler = Euler((0,new_angle),'XYZ')
    # change viewport settings
    view3d = None
    for area in bpy.context.screen.areas: 
        if area.type == 'VIEW_3D':
            for space in area.spaces: 
                if space.type == 'VIEW_3D':
                    view3d = space
    print(view3d.shading.type)
    # render viewport
    bpy.ops.render.render(animation=True,use_viewport=True)

这部分正在工作。但是,尽管 print(view3d.shading.type) 输出“SOLID”,但生成的图像是使用“RENDERED”阴影保存的,而不是我在 GUI 中选择的“SOLID”阴影。

我认为这可能是因为我使用的是 ops.render.render 而不是 ops.render.opengl,但是 ops.render.render 使用的是我已经配置好的设置,这要好得多。

有什么方法可以让 ops.render.render 使用 SOLID shading 吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。