Hi. I’m working on a terrain editor plugin to be published on asset store.I want to use tessellation shaders to handle parts of its rendering tasks. If I use tessellation it can only used with systems that have dx11+/opengl core. Right? So it seems I have to say goodbye to mac users and anyone having a dx10- GPU.
The weird thing is unity hardware stats show a decline in the percentage of dx11 machines.
Even so I’m leaned to use it because I think most people who ACTUALLY BUY assets would buy decent graphics for their systems too.
Having said these, I wonder how buyers would react on this. When I put a warning in the asset description that it needs dx11/opengl core does it scare them? If a user buys the asset and finds out it doesn’t work on his system does it translate to a 1star review? Is there a routine that they could get refunds in case their system fails to support it? This is my first asset and it took long time to complete so it is important for me to know how the feedback would be.
If you have seen a similar situation or have thoughts please tell me about it.
But in the description that it requires DX11 and that is all you have to do. It won’t scare most people and might even attract many. Those do scare off probably do not use DX11 and so you don’t want them buying your asset and then posting bad reviews and demanding refunds.
I believe I’ve seen few DX11 assets on the store, though I’m not sure what they were, exactly. I think as long as you put that into description and make it obvious, it should be good.
By the way, check OpenGL support on MacOS, I think there were some differences between Mac and Windows regarding maximum supported OpenGL version. IIRC apple didn’t support the latest OpenGL version 4.5 (or something like that), which includes tasty things like random texture writes from shaders.
Thank you guys for the good news. This simple decision has been haunting me for so long:p
Thanks I’ll check it. I don’t know what is random write to textures!! I never cared for anything beyond SM4.0 for obvious reasons. This is a GPU implemented terrain engine and uses ALOT of shaders to do many many algorithms. Damn!! Should check what I’m missing and revisit the whole project:hushed:
Metal should be roughly equivalent to DX11 in capability so that would be supported after all (along with newer mobiles) but you have to check facts yourself.
Shader model version 5 and OpenGL 4.5 with certain extensions (although I’m fairly sure it is part of core spec) allows you to read and write at any location from any point of the shader into specifically declared textures. The textures could be accessed (IIRC) as 2d images or as raw data arrays. Those arrays can also contain strcutures declared in shader.
Unity does it. Several of the Adam assets are dx11 required. But those are non commercial. There are several assets that have specific requirements, some are for obvious reasons like iOS or android specific features, and some are win specific (I think there was a fluid simulator that was).
It seems totally fine, as long as it is clear up front. There was a paid asset a while back, that didn’t say up front that it relied on a backend service that had a non commercial limitation unless you paid a subscription fee. That stuff is bad.
Ultimately it is up to you, it may limit sales, or not, depending on what it does.
I applied tessellation into the terrain shader and it looks like this:
I want a square tile split into 4 square tiles. The height is specified in exact locations and I need a vertex exactly there not on some arbitrary random-ish point. Look how the terrain become jagged:
It seems unity has no support and no plans to support quad tessellation in surface shaders. I could round the locations of vertices to exact points to remove jitter and it will work at the price of having like 5 or 10 times more verts and tris!!
This won’t be happening. Unity does not support quad domains, and hardware tesselation works very differently. Basically tesselarotr splits each edge, and then recursively inserts smaller shapes in the middle.
I did integrate tessellation into the shaders and it is working perfectly. And the speed is even better than I imagined. No more lags for managing thousands of mesh Game Objects. Thank you guys very much.