Python 搅拌机脚本-添加的纹理不正确

Python 搅拌机脚本-添加的纹理不正确,python,scripting,blender,texture-mapping,collada,Python,Scripting,Blender,Texture Mapping,Collada,我编写了一个python脚本,可以自动向DAE模型添加纹理 用法:blender--background--pythonscript.py 此脚本显示的纹理不正确: import bpy from math import pi from mathutils import Quaternion myscale = 0.1; daepath = "input.dae" bpy.ops.wm.read_factory_settings(use_empty=True) # Import Dae b

我编写了一个python脚本,可以自动向DAE模型添加纹理

用法:blender--background--pythonscript.py

此脚本显示的纹理不正确:

import bpy
from math import pi
from mathutils import Quaternion

myscale = 0.1;
daepath = "input.dae"

bpy.ops.wm.read_factory_settings(use_empty=True)

# Import Dae
bpy.ops.wm.collada_import(filepath=daepath)

# Rotate
bpy.ops.transform.rotate(value=-pi/2, constraint_axis=(False, True, True))
bpy.ops.transform.resize(value=(myscale, myscale, myscale))

# Change to orthographic view and switch to topview
bpy.context.screen.areas[2].type = 'VIEW_3D'
rv3d = bpy.context.screen.areas[2].spaces[0].region_3d
rv3d.view_rotation = Quaternion((1.0, 0.0, 0.0, 0.0))
rv3d.view_perspective = "ORTHO"
rv3d.view_distance += 1000.0

# Unwrap
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action = 'SELECT')
for oWindow in bpy.context.window_manager.windows:
    oScreen = oWindow.screen
    for oArea in oScreen.areas:
        if oArea.type == 'VIEW_3D':  
            for oRegion in oArea.regions:
                if oRegion.type == 'WINDOW':
                    override = {'window': oWindow, 'screen': oScreen, 'area': oArea, 'region': oRegion, 'scene': bpy.context.scene, 'edit_object': bpy.context.edit_object, 'active_object': bpy.context.active_object, 'selected_objects': bpy.context.selected_objects}
                    bpy.ops.uv.project_from_view(override , camera_bounds=False, correct_aspect=True, scale_to_bounds=True)
bpy.ops.object.mode_set(mode = 'OBJECT')

# Add Texture
imgpath = "input.jpg"
img = bpy.data.images.load(filepath=imgpath)
mat = bpy.data.materials['m0DefaultMaterial']
mat.diffuse_intensity = 1.0
mat.specular_intensity = 0.0
tex = bpy.data.textures.new("SomeName", 'IMAGE')
tex.image = img
slot = mat.texture_slots.add()
slot.texture = tex

# Save Dae
bpy.ops.wm.collada_export(filepath="output.dae")
如果我将脚本分成两部分(第#展开部分之前的一部分)并在混合器中运行它们

  • 开放应用程序
  • 选择脚本模式
  • 在运行时打开.py文件
  • 我得到了正确的结果

    我在寻找所有类似的问题,但我找不到这种脚本行为的原因


    请告诉我,错误在哪里?

    欢迎使用Stackoverflow!请在问题中添加脚本或相关部分。链接可能会过期,那么这个问题在将来对任何人都没有帮助。看一看。我想它是在后台模式下运行的,因为没有窗口或视口,更改视口透视实际上并没有改变任何东西。@sambler,可以创建窗口或视口吗?论坛中类似的话题没有给我答案。不是在后台模式下-这就是问题所在,没有创建窗口。@sambler,谢谢你的回答。