Transparent Renderer (DX11) Background?

I thought this would be an easy thing to find an answer for but dag-nabbit I have not been able to.

Is it possible to have a Renderer window with a transparent background, so the desktop shows through while all objects with non-zero alpha show up? The Window (Windows) alpha pin works for the window overall including everything in it. Setting the Renderer background alpha to zero and going full screen does not work either (no big surprise there).

So is this possible? I’m happy to use EX9 if that’s the only way to do it. Thanks!

I not aware of any possibility to blend 3d content with the windows desktop. i’d try stackoverflow or google to find out whether anyone managed to do that with DirectX…

I was looking at this idea literally yesterday. If you’re comfortable with C# or VL you might get this to work. I haven’t tried yet…
I think you would use the AsImage node, and feed it into your plugin.

1 Like

You may also try this if you don’t mind to use freewares

GUIPropView

and execute this from your command line (tweak it so it fits your needs)

GUIPropView.exe /Action Transparent Alpha 120 Process:vvvv.exe Title:Renderer

1 Like

WPF with D3DImage control supports alpha in the texture, so you can use it in a transparent background WPF window and boom you have 3D objects floating on your desktop. Unfortunately you’ll also need a new DX9 context and texture sharing to do this (DXGI interop is possible).

There’s also this trick apparently: c# - How do I draw transparent DirectX content in a transparent window? - Stack Overflow
and in the same thread DirectComposition is also mentioned (I have a hunch this is what MS uses for blur and UWP apps under the hood) How to initialize DirectComposition - Win32 apps | Microsoft Learn but that’s really elaborate.

simplest way to do this is actually not with directx but with Electron.js and in turn WebGL or any other web goodies ;)

I revive this thread because I found this: https://www.prasannavl.com/2016/10/introducing-winapi-graphics-with-direct3d-d2d1-gdi-opengl-and-skia/

in a nutshell, there’s a C# library helping interaction with win32 api, conveniently called WinApi, and in there, there’s DxUtils which solves all the boilerplate for you to create transparent windows with D2D1 or D3D11 content. Scroll down to “The Direct3D and Direct2D Window” part

this is the library btw: https://github.com/prasannavl/WinApi

1 Like

I gave it a go and it’s amazing:

Acrylic blurred background is achieved via this sample: https://github.com/riverar/sample-win32-acrylicblur which uses an unexposed win32 api

3 Likes

so cool!

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.