I love C++ AMP! I have tried it and less than in 5 hours ported a "Small Path Tracing" demo using C++ AMP. It is much easier than working with Compute Shaders. You don't need to create devices, compile shaders, create a buffer and views for them and shaders resources, and when you want to build another dependence you have to create a constant buffer, allocate memory for it, update it in a run-time and don't forget to declare it in your shader. You don't have to do any of this with AMP.
And debugging... I'm still dreaming of such debugger for Compute Shaders. Now with Windows8 and VS2012 you can debug vertex and pixel shaders, but still not the compute ones, which is a shame.
Yes, you have to pay for such convenience. In general you can implement the same functionality, probably faster, using one of the GPGPU languages. But I think that C++ AMP has a future and might become very popular.
I have been playing with another high-res model of a character. Using film type "Three-point lighting" settings, DOF, fur and post-processing.
These are some conclusions from my experience:
You don't need global illumination or ambient occlusion (OK, AO might help, but it's not necessary). All you have to do is to set up proper lights layout for your scene. The keyword here is "three-point lighting" where you have the key light, the fill light and the back light. You can simulate any lighting environment by using them. It is easy, it is fast and it looks good
Fur is key for a non-plastic look. You don't want your character’s skin to look waxy, so add some facial hair. Use high transparency to hide aliasing. You can also use it to simulate some fabric materials like woollen cloth, as an example
Depth of field adds photo-realism. It is actually a trick. You're kind of hiding lighting, shading or aliasing issues by blurring them and your eye and your brain assume that they look good, because they don't see details. It can be a very useful technique for a game where you can concentrate all your power and resources on the close-to-camera characters and blur a background
Use port-processing and color adjustment. Decide what is the main color in your scene and what mood you want to show. Colors in real life look boring, so don't make your game look real, make it looks great!
This is a big project for me! Actually it's only part of a big project. I've been working on a master class about advanced materials rendering using DX11.
This demo shows how some materials should look based on a Monte-Carlo integration and measured BRDF. Then you can approximate that BRDF using some well-known brdfs like Blinn-Phong, Warp or microfacet-based ones. You can also create a special shader that would give you the same results but in real-time.
I am using BRDF Importance Sampling to reduce the noise of the integration. There are not many ways to generate important samples for a measured brdf. I tried a couple and chose "Efficient BRDF Importance Sampling Using A Factored Representation", which works fine with any brdf representation.
It is also a demo where I am using HLSL interfaces and classes a lot. I did like the idea and ability to swap them in runtime. But over time, I found they don't behave as you would expect because of the GPU architecture limitation. Yes, I understand why you can't use a dynamic variable to index an array of the interfaces, but may-be Microsoft should have just chosen another name for it and not pretended that now HLSL is something like OOP language.
Also, compilation time when using classes is much longer than without it. And the HLSL compiler often crashes with them.