Wow. this is great.
You are definitely underselling this. I would bump the price back up. and set the sales price to the current price, send a tweet, tell people the sale is for 2 weeks.... You should never sell niche concepts for peanuts. Especially with the mirror reflecting mirrors and people needing this really would not mind paying 10-15$ for this.
Also check you tags for the search. I had a though time finding it from the search.
You got a good set of apis there, very well made.
Suggestions:
1) Add a root folder (3d Mirror) and place your stuff, including the examples, under that folder
3d Mirror
+-API
+-Examples
same for rooms and sprites and shaders.
the exception would be the includes, dll need to be off the root so...
2) I would rename the dll to something a little less generic
3) I would add a m3d_README script explaining the concept. though most should figure out how it works off the bat, there may be things your set of api is capable of doing that we may not even consider... and gotchas we should be aware of.
Or and water reflection with distortion? possible to add my water shader on top of this?
Oh and the dll, is it MS Dev Studio? What redist do I need to include?
Thank you
Adding a root folder is a good idea, as well as renaming the dll file. A README or GUIDE script is something I've been adding to my newest marketplace assets, I might go back and do it with this one as well.
And the price, you have a point, but I've already lowered it, so I feel like it would be a bit odd to suddenly raise it again, hopefully the lower price extends the target group to people who want to try it out for fun or for learning purposes at least.
I'm not sure what should be changed with the tags. Do you mean the forum thread tags or the marketplace tags? I changed one of them (a forum tag) to "shader". Maybe I've missed some obvious words?
The DLL is written in ms visual studio express with directx 9. It's actually a simplified version of the dll from my Graphics Utilities marketplace asset. By the way, in version 1.0.1 I've set the DLL optimization to false by default. The latest version of GM seems to have issues with DLLs when there are too many arguments. I've heard it's been fixed in the early access version though. It can be set to true manually in the init script.
My additional C/C++ include directories input field is "D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include", and for the linker I have additional library directories set to "D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86". So you'll need the microsoft directx SDK.
The reflections work by multiplying the view matrix with a reflection matrix (that holds the info for the reflection across the plane the mirror lies within). The near plane of the projection matrix is skewed so that it aligns to the plane of the mirror to clip geometry that should not be reflected (as in geometry that is behind the mirror before reflection). The scene is drawn using these matrices which composes the reflection for the mirror and it's drawn to and stored in a surface. When the mirror model is drawn this surface is mapped onto the mirror with a shader. If you delve into the code behind the API you can probably get some distortions in the reflections.