Blender 2.7 如何使用脚本查找聚光灯外观/目标
Posted
技术标签:
【中文标题】Blender 2.7 如何使用脚本查找聚光灯外观/目标【英文标题】:Blender 2.7 how to find spotlight lookAt/target using script 【发布时间】:2016-04-30 13:44:22 【问题描述】:我很难弄清楚如何找到聚光灯观察点/目标点。我需要它在文件中导出一些光照信息,以便我能够将它们与 OpenGL 一起使用并渲染场景。
到目前为止有这个代码
with open(bpy.path.abspath("//Taest.txt"), "w", encoding="utf8", newline="\n") as f:
fw = f.write
#fw("testing file write")
#for ob in bpy.context.scene.objects:
for ob in bpy.data.objects:
if ob.type == "LAMP" :
la = ob.data
fw(la.type + " " + la.name + "\n")
fw(vec3ToStr(ob.location) + "\n")
fw(colorToStr(la.color) + "\n")
fw(str(la.energy) + "\n")
#if la.type == "AREA" :
# print("\tAREA " + la.name)
if la.type == "POINT" :
fw(str(la.distance) + "\n")
fw(str(la.quadratic_attenuation) + "\n")
fw(str(la.linear_attenuation) + "\n")
if la.type == "SPOT" :
fw(str(la.distance) + "\n")
fw(str(la.quadratic_attenuation) + "\n")
fw(str(la.linear_attenuation) + "\n")
fw(str(la.spot_size) + "\n")
#empty = bpy.data.meshes.ne(type='PLAIN_AXES')
me = bpy.data.meshes.new("test Mesh")
obn = bpy.data.objects.new("test Obj" , me)
scn = bpy.context.scene
scn.objects.link(obn)
obn.location = ob.location #ob.shadow_buffer_clip_end <<< this is where i have trouble figuring out what to do ??
fw(vec3ToStr(me .location) + "\n")
obn.delete()
解决了
mat = ob.matrix_world
end = mat * Vector((0, 0, -la.shadow_buffer_clip_end))
fw(vec3ToStr(end) + "\n")
【问题讨论】:
发布您的答案作为问题的答案并接受它。 【参考方案1】:解决了
mat = ob.matrix_world
end = mat * Vector((0, 0, -la.shadow_buffer_clip_end))
fw(vec3ToStr(end) + "\n")
如果您需要,相机外观也是如此
mat = ob.matrix_world
end = mat * Vector((0, 0, -la.shadow_buffer_clip_end))
fw(vec3ToStr(end) + "\n")
【讨论】:
以上是关于Blender 2.7 如何使用脚本查找聚光灯外观/目标的主要内容,如果未能解决你的问题,请参考以下文章
如果在后台执行脚本,如何在 Blender Python 上使用旋转运算符?