3 ms·
There are some big mistakes about Flash Stage3D which makes an article that pretends to be an informed overview very suspect. Stage3D allows dynamic shaders ev
by starmole 14y ago
There are some big mistakes about Flash Stage3D which makes an article that pretends to be an informed overview very suspect.
Stage3D allows dynamic shaders even more than any other platform and does work very well on mobile via AIR.
WebGL as an API has serious problems that are not mentioned:
- High level language vs. bytecode at the API layer makes it very hard to implement consistently. The js API should take bytecode and a shader compiler (outermost loop) should be implemented in a safe script language via libraries.
- Very large API surface based on an 80s standard. This makes it much harder for browsers to support and test consistently.
- Extension mechanism makes it very hard to target consistently. A common problem in graphics is that every hw vendor wants you to optimize for the highest end in their line. Which gets you into the "make the best case better" optimization case when you really want to "make the worst case better".
- Serious interop/performance issues with js targets. Typed arrays are for example very important to a low level API like this.
- Low end support. Like Intel GPUs and mobile. WebGL is simply to big for testing and enforcing those constraints.
Sorry for ranting. :) Feel free to PM me for discussing 3D APIs for the web. I personally think the Flash Stage3D API is much better but I also realize the benefit of going plugin less.
- pyalot2 14y ago- Please post documentation on flash being able to on-line compile. - Both Direct3D and OpenGL (any variant) are moving away from requiring people to supply bytecode (or native code) to an on-line compile model of a high level language. Starting with Direct3D 10 you cannot supply your own bytecode anymore. Direct3D bytecode is cryptographically signed by the HLSL compiler of Microsoft and the DirectX runtime will refuse to run any shader bytecode that does not pass signature verification. - WebGL is the smallest most concise of any 3D API around. Your claim of 80ties legacy is baseless. It is re-engineered from OpenGL ES 2.0 which cut away much legacy. WebGL threw out the entire remaining OpenGL ES 2.0 legacy profile. The entire API, all of it, fits on 2 PDF pages of a quick reference (compared to 4 for ES 2.0 and a dozen for full blown OpenGL). WebGL is extremely well tested with close to 10'000 tests in around 500 test suites that test everything from API consistency and behavior to actually verifying rendering results. It is not hard to test at all, evidenced by a superb conformance test suite and performance regression suite, unique among any 3D API in existence. - The extension mechanism offers you the possibility to introduce alternative renderpaths. On any account, none of the extensions present are more than what Direct3D 9 already supports (but OpenGL ES 2.0 does not). Instead of checking the D3DDeviceCaps for capabilities, you check extensions, same thing really. - Typed arrays have been introduced and are supported well by any vendor doing WebGL - WebGL runs on mobiles because it is an implementation of OpenGL ES 2.0, which is supported by well over 90% of smartphones and tablets. Implementations of WebGL are offered from multiple vendors for android, and out of the box from Blackberry and Firefox OS