16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 03:29:19 +02:00

disable alpha blend on refractive materials

This commit is contained in:
Wls50
2025-11-24 19:03:43 +01:00
committed by Hirek
parent 76d5d3831d
commit 0820873a45

View File

@@ -303,8 +303,8 @@ void NvRenderer::MaterialTemplate::Init(const YAML::Node &conf) {
.setBlendState(nvrhi::BlendState().setRenderTarget( .setBlendState(nvrhi::BlendState().setRenderTarget(
0, nvrhi::BlendState::RenderTarget().disableBlend()))); 0, nvrhi::BlendState::RenderTarget().disableBlend())));
break; break;
case RenderPassType::Forward: case RenderPassType::Forward: {
pipeline_desc.setRenderState( auto render_state =
nvrhi::RenderState() nvrhi::RenderState()
.setDepthStencilState( .setDepthStencilState(
nvrhi::DepthStencilState() nvrhi::DepthStencilState()
@@ -316,19 +316,25 @@ void NvRenderer::MaterialTemplate::Init(const YAML::Node &conf) {
.setFillSolid() .setFillSolid()
.enableDepthClip() .enableDepthClip()
.disableScissor() .disableScissor()
.setCullFront()) .setCullFront());
.setBlendState( if (m_enable_refraction) {
nvrhi::BlendState() render_state.setBlendState(nvrhi::BlendState().setRenderTarget(
.setRenderTarget( 0, nvrhi::BlendState::RenderTarget().disableBlend()));
0, nvrhi::BlendState::RenderTarget() } else {
.enableBlend() render_state.setBlendState(
.setBlendOp(nvrhi::BlendOp::Add) nvrhi::BlendState()
.setSrcBlend(nvrhi::BlendFactor::One) .setRenderTarget(
.setDestBlend( 0,
nvrhi::BlendFactor::OneMinusSrcAlpha)) nvrhi::BlendState::RenderTarget()
.setRenderTarget(1, nvrhi::BlendState::RenderTarget() .enableBlend()
.disableBlend()))); .setBlendOp(nvrhi::BlendOp::Add)
break; .setSrcBlend(nvrhi::BlendFactor::One)
.setDestBlend(nvrhi::BlendFactor::OneMinusSrcAlpha))
.setRenderTarget(
1, nvrhi::BlendState::RenderTarget().disableBlend()));
}
pipeline_desc.setRenderState(render_state);
} break;
default:; default:;
} }