目录
[1. 绕 X 轴旋转 90 度](#1. 绕 X 轴旋转 90 度)
[2. 绕 Z 轴旋转 90 度](#2. 绕 Z 轴旋转 90 度)
指向原点,并保持y轴朝上
python
direction = -camera.location
rot_quat = direction.to_track_quat("-Z", "Y") # [[1, 0, 0], [0, 0, -1], [0, 1, 0]]
camera.rotation_euler = rot_quat.to_euler() 什么意思
设置金属度
python
def fix_metallic(default_value=0.125):
for material in bpy.data.materials:
if material.use_nodes:
nodes = material.node_tree.nodes
try:
bsdf = nodes.get("Principled BSDF")
if bsdf:
# 设置金属度
bsdf.inputs['Metallic'].default_value = default_value
except Exception as e:
print(f"Error setting metallic for {material.name}: {e}")
else:
print(f"{material.name} does not use nodes.")
具体操作
1. 绕 X 轴旋转 90 度
如果你想让相机的 Y
轴朝上,可以尝试绕 X
轴旋转 90 度。这会把相机的 Z
轴从前向后旋转,同时使 Y
轴朝上。
camera.rotation_euler[0] += 1.5708 # 90 degrees in radians
2. 绕 Z 轴旋转 90 度
如果你要让相机的 Y
轴朝上,但方向仍然是平面旋转,绕 Z
轴旋转 90 度也是一个常见的方式。这种方式适用于你想让相机改变观察角度,但不涉及上下方向的变化。
camera.rotation_euler[2] += 1.5708 # 90 degrees in radians
旋转矩阵示例
如果你想手动应用一个旋转矩阵,可以利用 Blender 的旋转方法进行旋转,像这样:
import math import bpy # 让相机绕 X 轴旋转 90 度 camera = bpy.context.scene.camera camera.rotation_euler[0] = math.radians(90) # 绕 X 轴旋转 90 度
或者使用 to_quaternion
方法:
python
import math
import bpy # 通过四元数进行旋转
rotation_quat = bpy.context.scene.camera.rotation_quaternion
rotation_quat.rotate_axis('X', math.radians(90)) bpy.context.scene.camera.rotation_quaternion = rotation_quat
坐标系讲解视频
blender变换坐标系------blender小知识