rendering: add builtin alpha-test pass support
This commit is contained in:
@@ -183,7 +183,7 @@ BuiltinForwardPipeline::ResolvedShaderPass BuiltinForwardPipeline::ResolveSurfac
|
||||
if (builtinShaderHandle->IsValid()) {
|
||||
const Resources::Shader* builtinShader = builtinShaderHandle->Get();
|
||||
if (const Resources::ShaderPass* shaderPass =
|
||||
FindCompatibleSurfacePass(*builtinShader, sceneData, nullptr, pass, backend)) {
|
||||
FindCompatibleSurfacePass(*builtinShader, sceneData, material, pass, backend)) {
|
||||
resolved.shader = builtinShader;
|
||||
resolved.pass = shaderPass;
|
||||
resolved.passName = shaderPass->name;
|
||||
@@ -705,18 +705,32 @@ bool BuiltinForwardPipeline::DrawVisibleItem(
|
||||
if (!materialConstants.IsValid()) {
|
||||
const BuiltinForwardMaterialData materialData = BuildBuiltinForwardMaterialData(material);
|
||||
fallbackMaterialConstants.baseColorFactor = materialData.baseColorFactor;
|
||||
static const Resources::MaterialConstantFieldDesc kFallbackMaterialConstantField = {
|
||||
Containers::String("baseColorFactor"),
|
||||
Resources::MaterialPropertyType::Float4,
|
||||
0,
|
||||
sizeof(FallbackPerMaterialConstants),
|
||||
sizeof(FallbackPerMaterialConstants)
|
||||
fallbackMaterialConstants.alphaCutoffParams = Math::Vector4(
|
||||
materialData.alphaCutoff,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f);
|
||||
static const Resources::MaterialConstantFieldDesc kFallbackMaterialConstantFields[] = {
|
||||
{
|
||||
Containers::String("_BaseColor"),
|
||||
Resources::MaterialPropertyType::Float4,
|
||||
0,
|
||||
sizeof(Math::Vector4),
|
||||
sizeof(Math::Vector4)
|
||||
},
|
||||
{
|
||||
Containers::String("_Cutoff"),
|
||||
Resources::MaterialPropertyType::Float,
|
||||
sizeof(Math::Vector4),
|
||||
sizeof(float),
|
||||
sizeof(Math::Vector4)
|
||||
}
|
||||
};
|
||||
materialConstants.data = &fallbackMaterialConstants;
|
||||
materialConstants.size = sizeof(fallbackMaterialConstants);
|
||||
materialConstants.layout = {
|
||||
&kFallbackMaterialConstantField,
|
||||
1,
|
||||
kFallbackMaterialConstantFields,
|
||||
2,
|
||||
sizeof(fallbackMaterialConstants)
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user