I have long wanted to build an ambient lighting solution (e.g. like Ambilight) and at last it is starting to take shape with Afterglow, a solution built by myself and Jono.
Afterglow provides a framework to perform image capturing, colour extraction, post processing and colour output – primarily for use with lighting systems such as for ambient lighting.
The Afterglow project is designed to be an input and output agnostic framework, allowing users to create their own plugin’s to read images from the screen or perhaps a camera and to output to their own hardware solution. One idea, unrelated to existing ambilight-type solutions, is to build a sound analysis plugin that provides mood lighting for a room.
The hardware solution we used is a LED pixel string driven by an Arduino Uno. You can see how to build the hardware here, and see images of the output at the Afterglow Gallery. This uses a small Arduino program listening for serial input sent by an output plugin within Afterglow.
The reason I am interested in building an ambient lighting solution is to drive the lighting by images captured while playing a game. Traditionally ambient lighting systems have been designed to work with movies / TV whereas Afterglow is a more flexible environment that can accept any input source. This is beginning to be realised within Afterglow with the recent addition of a DirectX capture plugin.
It is still early days for the project with a long to do list and plenty of issues, but if you are after an easy to build, extensible ambient lighting solution Afterglow is a good start! Anyone interested in participating in the project or building custom plugin’s is welcome!
So it’s been almost a year and I have finally got around to finishing a new version of my screen capture project that supports Direct3D 9, 10, and 11! This solution still uses SlimDX for the Direct3D API wrapper along with EasyHook to perform the remote process hooking and IPC between the host process and target process.
Some of the changes since the previous version:
- 100% C# implementation
- Added Direct3D 10 and 11 support
- Capturing multi-sampled/anti-aliased images (for 10 & 11) is supported
- Re-organised code making it easier to support multiple D3D versions
- Implemented a new and improved test bed application
- Provided example overlays for D3D 9 and 10
- Improved debug messaging from Target application to Host (mostly removed when compiled with “Release” configuration)
Update 2012-04-14: code now hosted on Github
Continue reading C# – Screen capture and Overlays for Direct3D 9, 10 and 11 using API Hooks
Fatal error: Uncaught Error: Call to a member function id() on array in /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php:36
#0 /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php(538): CrayonFormatter::format_code('', Array, Object(CrayonHighlighter))
#1 [internal function]: CrayonFormatter::delim_to_internal(Array)
#2 /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php(516): preg_replace_callback('#()#msi', 'CrayonFormatter...', '"C:Program File...')
#3 /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php(166): CrayonFormatter::format_mixed_code('"C:Program File...', Object(CrayonLang), Object(CrayonHighlighter))
#4 /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php(186): CrayonHighlighter->process()
#5 /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highligh in /home/derp4640/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 36