一.材质&着色器&纹理图片
3D模型(mesh,只包含顶点数据) + 材质(着色器算法+纹理图片+光照参数) ==(渲染管线处理)== 2D平面.
材质 = 着色器算法 + 纹理图片静态数据 + 光照参数静态数据
header_operation.py提供接口可动态切换材质:
prop_instance_set_material = 2617 # (prop_instance_set_material, <prop_instance_no>, <sub_mesh_no>, <string_register>),
二.顶点着色(vertex_color)
顶点颜色在3D模型中定义,着色算法根据vertex_color进行插值运算得到实际结果.着色器算法简单,消耗系统资源较少.常用于同一模型不同时间的表示,如树木颜色,苹果颜色,只需要修改vertex_color即可实现不同类型模型渲染.
Direct3D中可声明灵活顶点格式
struct vertex {
int x;
int y;
int z;
int color;
}
三.骑砍战团引擎中顶点着色
header_operation.py可实现不同军团类型,不同国家军旗颜色,盔甲纹章等颜色切换
cur_item_add_mesh = 1964 # (cur_item_add_mesh, <mesh_name_string>, [<lod_begin>], [<lod_end>], [<vertex-color>]),
cur_tableau_add_mesh_with_vertex_color = 1993 # (cur_tableau_add_mesh_with_vertex_color, <mesh_id>, <position>, <value_fixed_point>, <value_fixed_point>, <value>),
cur_tableau_add_mesh_with_scale_and_vertex_color = 2000 # (cur_tableau_add_mesh_with_scale_and_vertex_color, <mesh_id>, <position>, <scale_position>, <value_fixed_point>, <value>),
四.OpenBrf中使用顶点着色
seleted->color uniform/Tune Colors with HSB可选择HEX顶点颜色
五.像素着色
通过在3D模型mesh中定义UV坐标,着色器算法根据纹理图片和UV坐标计算出像素颜色,即为像素着色.
Direct3D中使用FVF格式定义顶点格式:
struct vertex_FVF {
int x;
int y;
int z;
int u;
int v;
}
六.OpenBrf中修改纹理着色UV坐标和纹理图片
<1.修改UV坐标(Selected-Transform texture coords)
<2.修改纹理图片(修改material-diffuseA)