Skip to content

Latest commit

 

History

History
215 lines (147 loc) · 4.88 KB

647-2685828-渲染过程_render_灯光设置_渲染器设置_导出png.sy.md

File metadata and controls

215 lines (147 loc) · 4.88 KB
show version enable_checker
step
1.0
true

python_blender

开始

  • 上次我们完成了摄影机的控制
    • 控制位置
    • 控制旋转角度
  • 如何将 摄影机拍到的东西
    • 渲染成图片呢?

渲染

  • 重启系统
    • 再从 terminal
    • 启动 blender

图片描述

  • 设置渲染参数
    • 并且 观察代码

图片描述

  • 在默认场景中
    • 点击 渲染
    • 将默认场景中的 画面
    • 渲染

渲染界面

  • 将 摄影机拍摄到的 画面
    • 进行渲染

图片描述

  • 将图片 另存为1.png

图片描述

  • 可以将 渲染的过程
    • 作为 程序进行输出吗?

使用程序 渲染

import bpy

bpy.context.scene.render.resolution_x = 640
bpy.context.scene.render.resolution_y = 480
bpy.context.scene.render.resolution_percentage = 50

# Set the render engine (e.g., CYCLES, BLENDER_EEVEE)
bpy.context.scene.render.engine = 'CYCLES'

# Set the output file path
bpy.context.scene.render.filepath = './render.png'

# Render the current view
bpy.ops.render.render(write_still=True)
  • 观察终端

图片描述

  • 经过6秒左右
    • 渲染出render.png

观察效果

  • 新开终端标签页

图片描述

  • 在火狐浏览器中
    • 打开render.png

图片描述

  • 可以看到 光影效果吗?

添加地面

  • Add Mesh - Plane

图片描述

  • 设置平面的
    • scale
    • location

图片描述

  • 预览效果

图片描述

  • 然后准备渲染

渲染

  • 再次执行
    • 渲染脚本

图片描述

  • 经过10秒以上
    • 渲染完成
firefox render.png
  • 结果有了影子

图片描述

  • 可以 把之前的 晴天娃娃
    • 整合到一起吗?

分步走

  • 构造环境
import bpy

bpy.ops.object.select_all(action="SELECT") # 选择所有物体
bpy.ops.object.delete() # 删除选定的物体
bpy.ops.mesh.primitive_uv_sphere_add()
head = bpy.context.object
bpy.context.object.name  = "head"

r_eye = bpy.ops.mesh.primitive_uv_sphere_add()
bpy.context.object.name = "r_eye"
bpy.context.object.location = (0.7, 0.5, 0.3)
bpy.context.object.scale = (0.3, 0.3, 0.3)
mat = bpy.data.materials.new('mat_eye')
color = (0, 0, 0, 1)
mat.diffuse_color = color
bpy.context.object.data.materials.append(mat)
bpy.context.object.parent = head

l_eye = bpy.ops.mesh.primitive_uv_sphere_add()
bpy.context.object.name = "l_eye"
bpy.context.object.location = (0.7, -0.5, 0.3)
bpy.context.object.scale = (0.3, 0.3, 0.3)
bpy.context.object.data.materials.append(mat)
bpy.context.object.parent = head

bpy.ops.mesh.primitive_cone_add()
body = bpy.context.object
body.name  = "body"
body.location = (0,0,-1)
body.scale = (1,1,2)

character = bpy.data.objects.new("character", None)
bpy.data.collections["Collection"].objects.link(character)
head.parent = character
body.parent = character

bpy.ops.mesh.primitive_plane_add(size=20)
bpy.context.object.location = (0,0,-3)

camera = bpy.data.cameras.new('Camera')
camera_obj = bpy.data.objects.new('Camera', camera)
bpy.data.collections["Collection"].objects.link(camera_obj)
camera.lens = 50  # Focal length in millimeters
camera.sensor_width = 36  # Sensor width in millimeters
camera.sensor_height = 24  # Sensor height in millimeters
camera_obj.location = (13.6, 5, 10.5)  # X, Y, Z coordinates
camera_obj.rotation_euler = (-2.233,3.14,-1.047)
bpy.context.scene.camera = camera_obj
bpy.context.scene.render.resolution_x = 640
bpy.context.scene.render.resolution_y = 480
bpy.context.scene.render.resolution_percentage = 50


# Set the render engine (e.g., CYCLES, BLENDER_EEVEE)
bpy.context.scene.render.engine = 'CYCLES'

# Set the output file path
bpy.context.scene.render.filepath = './render2.png'

# Render the current view
bpy.ops.render.render(write_still=True)
  • 结果

图片描述

  • 感觉需要
    • 来个灯

总结 🤔

  • 这次我们
    • 设置了 渲染 参数
      • 大小
  • 以前的人物 渲染出来
    • 没有灯光
    • 效果不好
  • 需要来一盏灯!🤔

图片描述

  • 我们下次再说!👋