Skip to content

unison.renderer_scene — 渲染场景

网格、着色器、材质资源管理的顶级接口。

使用方式

python
from unison import renderer_scene as rs

RENDERER 类

渲染场景单例。

python
renderer = rs.RENDERER.get()
renderer.initialize()

方法

方法说明
get()获取渲染器单例
initialize()初始化渲染场景

网格 (Mesh)

python
vertices = [
    -0.5, -0.5, 0.0,  # 位置
    0.5, -0.5, 0.0,
    0.0,  0.5, 0.0,
]
indices = [0, 1, 2]

mesh = renderer.mesh_create(vertices, indices)
renderer.mesh_free(mesh)
方法说明
mesh_create(vertices, indices)创建网格,返回 RID
mesh_free(rid)释放网格

着色器 (Shader)

python
# 从文件加载(自动添加 .vert / .frag 后缀)
shader = renderer.shader_load("shaders/pbr")

# 从源码
vert_src = "#version 330 core\n..."
frag_src = "#version 330 core\n..."
shader = renderer.shader_load_from_source(vert_src, frag_src)

renderer.shader_free(shader)
方法说明
shader_load(path)从文件加载着色器(支持 VFS 和真实文件系统)
shader_load_from_source(vert, frag)从源码创建着色器
shader_free(rid)释放着色器

材质 (Material)

python
material = renderer.material_create()

renderer.material_set_albedo(material, 1.0, 0.0, 0.0, 1.0)  # 红色
renderer.material_set_metallic(material, 0.8)
renderer.material_set_roughness(material, 0.3)
renderer.material_set_emission(material, 0.0, 1.0, 0.0)     # 绿色自发光
renderer.material_set_emission_energy(material, 2.0)

renderer.material_free(material)
方法说明
material_create()创建材质,返回 RID
material_set_albedo(rid, r, g, b, a)设置反照率颜色
material_set_metallic(rid, value)设置金属度 (0~1)
material_set_roughness(rid, value)设置粗糙度 (0~1)
material_set_emission(rid, r, g, b)设置自发光颜色
material_set_emission_energy(rid, value)设置自发光强度
material_free(rid)释放材质

调试

方法说明
set_debug_draw_mode(mode)设置调试绘制模式
get_debug_draw_mode()获取当前调试绘制模式
get_render_info()获取 (对象数, 图元数, 绘制调用数)

EnvironmentSettings

python
env = rs.EnvironmentSettings()
env.tonemap_exposure = 1.0
env.ssao_enabled = True
env.glow_enabled = False
env.glow_intensity = 0.5
属性类型说明
tonemap_exposurefloat色调映射曝光度
ssao_enabledbool环境光遮蔽开关
glow_enabledbool辉光效果开关
glow_intensityfloat辉光强度