混合模式(OW)

最終更新: 2026年1月29日

5.4 alpha版现已开放体验! alpha 版相关公告页面请点击此处。

此页面包含有关Beta版的描述。

Cubism 5.3 SDK for Native R5 beta1、for Web R5 beta1和for Java R5 beta1现在支持Cubism 5.3中追加的混合模式。

将混合模式应用于模型可以实现类似于绘画工具的高级合成。
通过使用Cubism 5.3或更高版本的Cubism SDK,即可应用在Cubism Editor中设置的混合模式,且无需任何追加的编码。


有关在Cubism Editor中设置混合模式的信息,请参考Editor手册中的“混合模式”。

Cubism Framework内部处理

这是为表达混合模式的Framework内部处理。
按照以下流程处理。

  • 从Cubism Core获取混合模式
  • 将绘制目标切换到绘制模型全体的缓冲区
  • 确定要使用哪种混合模式进行绘制
  • 从获取的混合模式中指定要使用的着色器程序
  • 将着色器程序中绘制模型全体的缓冲区设置为要混合的纹理
  • 标志着色器使用指定的混合模式将混合源纹理和要绘制的纹理进行混合并绘制
  • 在画面上绘制已绘制模型全体的缓冲区
TIPS
如果混合模式为 ormal Over、AddCompatible、MultiplyCompatible,则将使用传统混合方法进行绘制。

从Cubism Core获取混合模式

使用Cubism Core的API从模型中获取所有Drawable的混合模式。

对于Offscreen的混合模式,请将Drawable替换为Offscreen。

csmBlendMode CubismModel::GetDrawableBlendModeType(csmInt32 drawableIndex) const
{
    csmBlendMode blendMode;
    const csmInt32* const blendModes = Core::csmGetDrawableBlendModes(_model);
    blendMode.SetBlendMode(blendModes[drawableIndex]);

    return blendMode;
}

Core的API如下。

csmApi const int* csmCallingConvention csmGetDrawableBlendModes(const csmModel* model);

获取绘制CubismModel类时需要绘制的Drawable部分。

TIPS
采用上述处理也可获取传统混合方式的内容。

限制事项
Native
在beta1中,只有OpenGL的Windows/Mac/iOS/Android支持Cubism 5.3功能。
Cubism 5 SDK R5 beta1包中包含的除上述平台之外的其他平台可能无法正常工作,因为它们与包含的Cubism Core不兼容。
beta2支持除Vulkan之外的所有环境。
beta3支持包括Vulkan在内的所有环境。

Web
无。

Java
无。

有关其他限制,请参考SDK手册的“关于Cubism 5.3功能的SDK兼容性和限制”
请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。