Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Hi there,
I've started playing around with the Delta engine, I'm wondering wether it's possible to mimick this technique (http://www.sgtconker.com/2010/08/article-texture-modification-using-render-targets-with-some-stencil-buffer-action/) somewhat platform independend using the delta engine (on platforms where stencil buffer capabilities are available)? I found some documentation mentioning DepthStencilObject, but it was in the XNA rendering implementation.
I'd like to use this technique for a worms style of game, where I don't want to alter/copy bitmap data to the gpu each time...
Thanks in advance!
Matthijs
|
|
|
|
Medals:  Joined: 8/20/2011(UTC) Posts: 1,421 Location: Hannover
Thanks: 18 times Was thanked: 97 time(s) in 92 post(s)
|
It is possible in theory, but currently render targets (see RenderToTexture class und tests) are a bit broken, so it will be hard to setup everything correctly. It obviously can be fixed and stencil buffers can be enabled (we did so on Android and Windows for the SoulCraftTechDemo early last year), but it is a lot of work to make sure it runs correctly on all platforms. This is why you saw DepthStencilObject, which just mirrored XNA capabilities when we ported the SoulCraftTechDemo to WP7, but in the end we just used ShadowMaps, not stencil buffers. Did not matter for WP7 anyway since render targets with custom shaders are not possible and probably too slow anyway. Since Delta.Graphics.OpenTK is in the public repository, you could help out by modifying it to allow stencil render targets and we could adapt and test for the other platforms. To be honest if you want to wait until we implement advanced rendering techniques, it will be a long time until we can focus on specific features like this one. It is quicker to just go ahead and implement it on your own and ask for help in the forum :) Edited by user Tuesday, January 3, 2012 3:32:39 AM(UTC)
| Reason: Not specified
|
|
|
|
Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Originally Posted by: Benjamin Nitschke (DeltaEngine)  It is possible in theory, but currently render targets (see RenderToTexture class und tests) are a bit broken, so it will be hard to setup everything correctly. It obviously can be fixed and stencil buffers can be enabled (we did so on Android and Windows for the SoulCraftTechDemo early last year), but it is a lot of work to make sure it runs correctly on all platforms. This is why you saw DepthStencilObject, which just mirrored XNA capabilities when we ported the SoulCraftTechDemo to WP7, but in the end we just used ShadowMaps, not stencil buffers. Did not matter for WP7 anyway since render targets with custom shaders are not possible and probably too slow anyway.
Since Delta.Graphics.OpenTK is in the public repository, you could help out by modifying it to allow stencil render targets and we could adapt and test for the other platforms. To be honest if you want to wait until we implement advanced rendering techniques, it will be a long time until we can focus on specific features like this one. It is quicker to just go ahead and implement it on your own and ask for help in the forum :) Thanks for the detailed answer! I gave it a stab and made some modifications that *theoretically* should enable the OpenTKRenderToTexture class also to act as a stencil buffer. I cannot test the simple RenderToTexture example though (the DrawLineOnTexture example just shows a black rectangle on both pc's i've tested it on). With attached modifications & added test (MaskTexture) I get the same result. Besides that it probably won't work as it's the first try, it's impossible for me to test because it won't show anything. Do you have any idea what the problem might be? Cheers! Matthijs Edited by user Tuesday, January 3, 2012 9:40:52 PM(UTC)
| Reason: Not specified File Attachment(s):  delta.zip (16kb) downloaded 5 time(s).You cannot view/download attachments. Try to login or register.
|
|
|
|
Medals:  Joined: 8/20/2011(UTC) Posts: 1,421 Location: Hannover
Thanks: 18 times Was thanked: 97 time(s) in 92 post(s)
|
Hey Matthijs,
I added your code to the RenderToTexture classes and it compiles fine (I also did some code improvements).
However, when executing the MaskTexture unit test it fails for me with: "Warning: FBO: One or more attachment points are not framebuffer attachment complete."
The feature is still open and will be investigated when I have more time. You can check out the code yourself in the next nightly release.
|
|
|
|
Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Hi Benjamin,
Thanks for the swift action, I'll check it out and give it another try!
|
|
|
|
Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Originally Posted by: Matthijs  Hi Benjamin,
Thanks for the swift action, I'll check it out and give it another try! So I was picking this up again to see if I can get things to work, but there seems to be another problem with the rendertotexture functionality; When I try to run MaterialTests.DrawLineOnTexture I get a black square... I tested this on two pc's (deltaengine v0.93, both pc's have an ATI card, different models though). Could you confirm if this test is currently broken, or am I missing something? Thanks! Matthijs
|
|
|
|
Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Originally Posted by: Matthijs  Originally Posted by: Matthijs  Hi Benjamin,
Thanks for the swift action, I'll check it out and give it another try! So I was picking this up again to see if I can get things to work, but there seems to be another problem with the rendertotexture functionality; When I try to run MaterialTests.DrawLineOnTexture I get a black square... I tested this on two pc's (deltaengine v0.93, both pc's have an ATI card, different models though). Could you confirm if this test is currently broken, or am I missing something? Thanks! Matthijs Could anyone confirm? Tested this on another pc (with an nvidia card) and had the same problem...
|
|
|
|
Medals:  Joined: 8/20/2011(UTC) Posts: 1,421 Location: Hannover
Thanks: 18 times Was thanked: 97 time(s) in 92 post(s)
|
Yes it is probably broken, some render to texture functionality works in special cases, but I have moved all RenderToTexture features and bugs to v0.9.5.
|
 1 user thanked Benjamin for this useful post.
|
|
|
Joined: 8/24/2011(UTC) Posts: 6
Thanks: 1 times
|
Originally Posted by: Benjamin Nitschke (DeltaEngine)  Yes it is probably broken, some render to texture functionality works in special cases, but I have moved all RenderToTexture features and bugs to v0.9.5. Ok good to hear! Will the stenciltest be part of the rtt features and bugs? I hope to setup a sample project soon, demonstrating the stencilbuffer in a small isolated project in the same fashion as deltaengine's opentk rendering setup.. This way we could easily verify where the bottleneck lies, and I can be sure it's not a deltaengine specific rtt bug thats bugging me.
|
|
|
|
Medals:  Joined: 8/20/2011(UTC) Posts: 1,421 Location: Hannover
Thanks: 18 times Was thanked: 97 time(s) in 92 post(s)
|
Yes as I wrote above stencil testing was used to support shadows on platforms without custom shaders, but due slow performance we never actually used it in the Soulcraft Tech Demo on WP7. Enabling stencil yourself (e.g. in OpenTK) should not be hard (just enable stencil at creation time and add a few methods to enable drawing into it).
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.