Unity is a fixed function pipeline technology with shader for effects. DX10 would force a full rewrite of the technology.
So a new price policy would very likely be needed, one that makes it seriously more expensive.
I definitely don’t see DX10 as a requirement, otherwise I would waste time developing in something like LeadWerks engine or S2, where Shader Model 3 is enforced (which is still far more performant on low to mid end DX10 cards than DX10 ever will be but degrades the performance considerably and cuts 30-50% of the possible userbase even for min quality settings)
Vista Business 64 is already working right now when you deploy to windows.
Unity does support the fixed function pipeline for reasons of being completely backwards compatible with very old cards and machines.
However when you use Pixel Lights + PS 2 / PS 3 pixel shaders in Unity we go through a completely non fixed function code path which goes far beyond using pixel shaders for effects.
The shader support is architechted for scalability and encapsulates all kinds of different shader languages, from fixed function pipeline to PS 1/2/3, GLSL, Wii specific shader effects and so on. Adding more shader languages is what the system is designed for.
DX 10 capable cards at the moment make up for 3.5% of the market, so right now it is just not worth it. But we are keeping our eyes on this to see when DX 10 support starts to make sense.
Thank you for pointing that out Joachim
Did not realize that it went pure shader, if the needed hardware is present and effects that “need” it are used but makes sense given the performance the pixel lights have.
Thanks for pointing out this serious missassumption, this will surely also help in future considerations for effects on my end.
I don’t know if this is somewhere documented, guess so. But if not, it would make sense to do so.
But they don’t point out that the engine is pure shader driven without FFP, if the hardware is capable of it and how the engine decides to switch to pure shader.
There is no direct feature in Unity that requires pure shader driven rendering without FFP, at least I’ve not seen one that would on DirectX.
Even shadow mapping works easily and performant with FFP on FFP + shader based technology (including support for point light)
I’m not sure what you’re referring to when you state “price politic”. Our pricing and licensing are going to be largely the same except that your license will be cross-platform (each license is per-developer but allows two installs, you can choose two Mac/two Win/one of each).
Support for a lot VR devices (HMDs, controllers, trackers), ability to syncronize multiple workstations with timecode to render view for multiple screens (like CAVE), live color keying/support for videos with alpha…
To clarify: it will run on Vista 64 bit, but Unity itself will be a 32 bit application for the time being.
The same as it is now. On Windows, we’ll use DX9.0c API, so you can target everything from fixed function dinosaurs to shader model 3.0.
Well, define what is “pure shader driven” Unity can use shaders. It can use fixed function as well. It can use both. If you’re thinking “pure shader driven” is the one that does not support fixed function, well, then Unity is better than that - both shaders and fixed function are supported.
I think when we’ll make DX10 renderer (which is much less work than “rewriting everything”, btw - it’s just rewriting the renderer. Which is actually a very small portion of whole Unity codebase), we’ll try to make it easy to use transition. E.g. you could continue writing fixed function shaders, and Unity would create actual SM4.0 shaders for that behind the scenes. We already do this to limited extent in DX9 renderer - some fixed function texture combine operations are converted to pixel shader 1.1 behind the scenes.
If you’re creating your own threads, then they will be scheduled on arbitrary cores. This is done by the OS, not by Unity. So if you create at least as many threads as there are cores, and the threads will be doing work without too much waiting on each other, then all cores will be used.
Keep in mind that Unity scripting API is not thread safe. So you either need to call it from one thread, or have synchronization in your own code.
But again, this is not related to Unity for Windows in any way.