# 自定义
# AddPostProcess
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
添加后处理效果,与graphics_settings/post_process.json定义的process等效
参数
参数名 数据类型说明 processDict dict process的定义字典,格式参考graphics_settings/post_process.json index int 插入位置下标,从0开始计数。可通过GetPostProcessOrder接口获取,缺省或负值则默认添加到最后。 返回值
数据类型说明 bool 连接操作是否成功,成功返回True,失败则返回False 备注
- 调用这个接口的时候会启动后处理
示例
test = {
"name": "oldtv",
"enable": False,
"paras": [
{ "name": "density", "value": 0.1, "range": [0.0, 1.0] },
{ "name": "strength", "value": 1.0, "range": [0.0, 1.0] },
{ "name": "snow_size", "value": 2.0, "range": [0.5, 16.0] },
{ "name": "noise_fps", "value": 6.0, "range": [0.01, 64.0] },
{ "name": "black_zone", "value": 0.2, "range": [0.0, 1.0] }
],
"pass_array":[
{
"render_target":{
"width":1.0,
"height":1.0
},
"material":"old_tv"
}
]
}
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
print postComp.AddPostProcess(test, 5)
# CheckEnabledByName
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
查询是否开启了自定义后处理效果
参数
参数名 数据类型说明 name str 需要查询的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 返回值
数据类型说明 bool 是否已经开启。已开启返回True,否则返回False 示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 查询名为"my_custom_postprocess"的自定义后处理效果是否已经开启
print postComp.CheckEnabledByName("my_custom_postprocess")
# GetParameter
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
获取指定自定义后处理参数的值
参数
参数名 数据类型说明 postName str 需要获取的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 paramName str 需要的参数名,名称来自后处理效果定义中的paras字段 返回值
数据类型说明 any 后处理参数的值,如果该参数的长度只有1个值,则返回float,如果长度超过1个,则返回list,list的长度不超过4。返回失败则返回None 备注
- 该接口仅支持获取自定义后处理的参数。获取参数时,需要先开启过一次后处理才能成功获取。否则获取失败返回None。
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 获取自定义后处理"my_custom_postprocess"中名为“radius”的参数的值
print postComp.GetParameter("my_custom_postprocess", "radius")
# GetPostProcessOrder
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
获取后处理效果的渲染顺序
参数
无
返回值
数据类型说明 list(str) 后处理效果的渲染顺序,获取失败或未开启后处理返回None 示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
print postComp.GetPostProcessOrder()
# InsertPassToPostprocess
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
往自定义后处理的多pass中的指定位置插入自定义pass。多pass指定的是graphics_settings/post_process.json中的"pass_array"渲染pass数组。这个后处理会按照这个数组所定义的pass来逐个渲染,每个pass之间的像素输入输出相互连接,即pass数组中第一个pass所使用的fragment shader中的TEXTURE_0为游戏原始输出到屏幕的像素信息。下一个pass所使用的fragment shader中的TEXTURE_0为上一个Pass的fragment shader的输出。最后一个pass的fragment shader的输出即为输出到游戏屏幕的像素信息。
参数
参数名 数据类型说明 postName str 需要增加自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 index int 自定义pass插入的位置下标。下标的范围不能超过该自定义后处理目前包含的pass数组的大小,同时必须大于等于0。 passDict dict 自定义pass的定义字典。 返回值
数据类型说明 bool 插入操作是否成功,成功返回True,失败则返回False 备注
- 该接口仅支持对自定义后处理进行操作。
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 自定义pass字典
passDict = {
# 渲染目标的分辨率大小,值范围为(0,1]。1.0表示全屏幕。
"render_target":{
"width":1.0,
"height":1.0
},
# 这个自定义pass所使用的材质,定义在materials/postprocess.material中
"material":"scan_map",
# 可选,是否启动深度图。开启后可以在片元着色器中的使用TEXTURE_2拿到深度图。
"depth_enable": True
}
# 往自定义后处理"my_custom_postprocess"中增加一个自定义pass,插入位置为第一个。
print postComp.InsertPassToPostprocess("my_custom_postprocess", 0, passDict)
# PopBackPassInPostprocess
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
删除自定义后处理的多pass的最末尾的pass。多pass指定的是graphics_settings/post_process.json中的"pass_array"渲染pass数组。这个后处理会按照这个数组所定义的pass来逐个渲染,每个pass之间的像素输入输出相互连接,即pass数组中第一个pass所使用的fragment shader中的TEXTURE_0为游戏原始输出到屏幕的像素信息。下一个pass所使用的fragment shader中的TEXTURE_0为上一个Pass的fragment shader的输出。最后一个pass的fragment shader的输出即为输出到游戏屏幕的像素信息。
参数
参数名 数据类型说明 postName str 需要删除自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 返回值
数据类型说明 dict 包含所删除的自定义pass的数据字典。删除失败则返回None。 备注
- 该接口仅支持对自定义后处理进行操作。另外,由于python浮点数值精度问题,返回的数据字典中的浮点数可能会带有小数点后多位的现象,例如width的值原本为0.1,则返回的数据字典中width的值可能会变为0.10000000149,请注意。
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 删除自定义后处理"my_custom_postprocess"中包含的多pass最末尾的自定义pass。
print postComp.PopBackPassInPostprocess("my_custom_postprocess")
# PostPassResultToOtherPass
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
将自定义pass的纹理结果传递到其他自定义pass的fragmentShader指定纹理单元槽位
参数
参数名 数据类型说明 sourceProcessName str 发送纹理单元的自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 sourcePassIndex int 源process中需要传递的自定义pass在process中的下标,从0开始计数。 destProcessName str 接收纹理单元的自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 destPassIndex int 接收的process中自定义pass在process中的下标,从0开始计数。 glTextureIndex int 接收pass中framentShader中的纹理单元槽位,取值范围3~7,0~2已被占用,0为上个pass处理后的颜色缓冲,1为未做后处理的原始颜色缓冲,2为深度缓冲。 返回值
数据类型说明 bool 连接操作是否成功,成功返回True,失败则返回False 备注
- sourceProcessName的pass执行顺序必须在destProcessName的pass之前执行。sourceProcessName和destProcessName可相同
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 将名为test1的后处理效果中第一个pass处理完的纹理单元,发送给名为test2的后处理效果中第二个pass的fragmentShader中的纹理单元槽位3。
print postComp.PostPassResultToOtherPass("test1", 0, "test2", 1, 3)
# 将名为test1的后处理效果中第一个pass处理完的纹理单元,发送给名为test1的后处理效果中第二个pass的fragmentShader中的纹理单元槽位5。
print postComp.PostPassResultToOtherPass("test1", 0, "test1", 1, 5)
# PushBackPassToPostprocess
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
往自定义后处理的多pass最末尾插入自定义pass。多pass指定的是graphics_settings/post_process.json中的"pass_array"渲染pass数组。这个后处理会按照这个数组所定义的pass来逐个渲染,每个pass之间的像素输入输出相互连接,即pass数组中第一个pass所使用的fragment shader中的TEXTURE_0为游戏原始输出到屏幕的像素信息。下一个pass所使用的fragment shader中的TEXTURE_0为上一个Pass的fragment shader的输出。最后一个pass的fragment shader的输出即为输出到游戏屏幕的像素信息。
参数
参数名 数据类型说明 postName str 需要增加自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 passDict dict 自定义pass的定义字典。 返回值
数据类型说明 bool 插入操作是否成功,成功返回True,失败则返回False 备注
- 该接口仅支持对自定义后处理进行操作。
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 自定义pass字典
passDict = {
# 渲染目标的分辨率大小,值范围为(0,1]。1.0表示全屏幕。
"render_target":{
"width":1.0,
"height":1.0
},
# 这个自定义pass所使用的材质,定义在materials/postprocess.material中
"material":"scan_map",
# 可选,是否启动深度图。开启后可以在片元着色器中的使用TEXTURE_2拿到深度图。
"depth_enable": true
}
# 往自定义后处理"my_custom_postprocess"中的包含的多pass最末尾增加一个自定义pass。
print postComp.PushBackPassToPostprocess("my_custom_postprocess", passDict)
# RemovePassInPostprocess
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
删除自定义后处理的多pass中指定位置的pass。多pass指定的是graphics_settings/post_process.json中的"pass_array"渲染pass数组。这个后处理会按照这个数组所定义的pass来逐个渲染,每个pass之间的像素输入输出相互连接,即pass数组中第一个pass所使用的fragment shader中的TEXTURE_0为游戏原始输出到屏幕的像素信息。下一个pass所使用的fragment shader中的TEXTURE_0为上一个Pass的fragment shader的输出。最后一个pass的fragment shader的输出即为输出到游戏屏幕的像素信息。
参数
参数名 数据类型说明 postName str 需要删除自定义pass的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 index int 需要删除的自定义pass的位置下标。下标的范围不能大于或等于该自定义后处理目前包含的pass数组的大小,同时必须大于等于0。 返回值
数据类型说明 dict 包含所删除的自定义pass的数据字典。删除失败则返回None。 备注
- 该接口仅支持对自定义后处理进行操作。另外,由于python浮点数值精度问题,返回的数据字典中的浮点数可能会带有小数点后多位的现象,例如width的值原本为0.1,则返回的数据字典中width的值可能会变为0.10000000149,请注意。
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
# 删除自定义后处理"my_custom_postprocess"中包含的多pass中第二个自定义pass。
print postComp.RemovePassInPostprocess("my_custom_postprocess", 1)
# SetEnableByName
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
设置是否开启自定义后处理效果
参数
参数名 数据类型说明 name str 后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 enable bool 是否开启自定义效果,True为开启,False为关闭。 返回值
数据类型说明 bool 设置是否成功 示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
postComp.SetEnableByName(myPostName, True)
# SetParameter
客户端
method in mod.client.component.postProcessControlComp.PostProcessComponent
描述
设置自定义后处理shader的自定义参数值
参数
参数名 数据类型说明 postName str 要修改的后处理效果名,名称为graphics_settings/post_process.json中定义的后处理效果名 paramName str 要修改的参数名,名称来自后处理效果定义中的paras字段 paramValue any 修改后的后处理参数值,长度必须与post_process.json中对应的参数定义一致(float/list/tuple) 返回值
数据类型说明 bool 设置是否成功 备注
- 该接口仅支持修改自定义后处理的参数
示例
import mod.client.extraClientApi as clientApi
postComp = clientApi.GetEngineCompFactory().CreatePostProcess(levelId)
postComp.SetParameter(myPostName, paramName, [0.0, 0.0, 0.0]) # 设置某个三维参数值为全0向量