Closed Kangz closed 7 years ago
When thinking about this work, some of us at Apple considered who the primary audience is for this API. It seems like many clients of 3D graphics consume the API indirectly, via an engine or framework.
Based on this, we think the key audiences to address are:
You may have noticed the list doesn't include graphics programming beginners. While making the API easy to learn for them isn't necessarily bad, and is probably worth doing if all else is equal, I don't think it should be a primary goal like serving the key client constituencies above.
I agree with your assessment and even say that the third audience you mentioned (experts writing custom code) is a very small minority.
However I believe that by making an API that is safe and portable, a lot of the complexity of D3D12 and Vulkan will disappear and the API will tend to be more teachable. How about making it a stretch goal? Meaning that when a choice has to be made, the primary goals are used to decide, but when they are not sufficient, stretch goal are used to decide.
@jonobr1 Good point. 2D engines and frameworks are also a relevant target audience.
Though it was not quite the original intent of this issue, I think maybe the charter should list expected target audiences for the spec (perhaps split into primary and secondary).
+1 to listing target audiences.
I agree with @Kangz about teachability, in that we should definitely keep it in mind. This could be listed as an important (but not essential) goal in the requirements.
We could also consider a tutorial as a deliverable. It need not be amazing, but having something that shows examples that are more clear than what a test suite provides would be really useful.
+1 on a tutorial as a potential deliverable.
One of the big successes of WebGL is that it made it much easier to teach computer graphics as all you really need to get started is a browser and a text-editor. On the contrary D3D12 and Vulkan give developers a lot of control, but are for experts only.
With the new API, there is an opportunity to improve on the teachability of WebGL as we move away from the idiosyncrasy of WebGL. Maybe we could add it to the goals, at least the stretch ones.