![]() ![]() Instead of being able to call a function for each polygon or each vertex you had to use the newer API of giving OpenGL a list of coordinates in a block in memory⁴, you had to use either the fixed function or the shader pipeline with no mixing (depending on whether you were using ES 1.x or ES 2.x), etc. All this legacy baggage promised a lot of extra work for the manufacturers of the new mobile GPUs, so to make it easier Khronos (which is what the ARB had become by this point) introduced an OpenGL "ES", which stripped out everything except the features you absolutely needed. Accidentally activating one of these trap features could easily move you from 60 FPS to 1 FPS. The spec said that every video card had to support every OpenGL feature, but it didn't say it had to support them in Hardware, so there were certain early-90s features that 00s card vendors had decided nobody really uses, and so if you used those features the driver would render the screen, copy the entire screen into regular RAM, perform the feature on the CPU and then copy the results back to the video card. It had all these leftover functions from the SGI IRIX era, and then it had this new shiny OpenGL 2.0 way of doing things with the shaders and everything and not only did this mean you basically had two unrelated APIs sitting side by side in the same API, but also a lot of the OpenGL 1.x features were traps. OpenGL was kind of… large, at this point. But implementing OpenGL on mid-00s mobile silicon was rough. DirectX was never in the running for these applications. Handheld devices were starting to get to the point it made sense to do 3D rendering on them (or at least, to do 2D compositing using 3D video card hardware like desktop machines had started doing). They ran software.Ģ004 Pretty shortly after this was another change. Suddenly video cards weren't specialized rendering tools anymore. ![]() This opened things up a lot, but more importantly it set card design on a kinda strange path. The software would upload a computer program in a simple C-like language (upload the actual text of the program, you weren't expected to compile it like a normal program)³ into the video driver at runtime, and the driver would convert that into configurations of ALUs (or whatever the card was actually doing on the inside) and your program would become that chunk of the pipeline. The (1) boxes got collapsed into the "Vertex Shader", and the (2) boxes became the "Fragment Shader"². Notice some of the boxes above are yellow? Those boxes became replaceable. This was obnoxious, so eventually "programmable shaders" were introduced. ![]() What if you want some other feature the ARB didn't think of, or want to do shadows or fog in a unique way that makes your game look different from other games? Sucks to be you. If you had shadows, or fog, it was because OpenGL or an extension had exposed a feature for drawing shadows or fog. Rust / C++ / Posthuman Intersecting TetrahedronĪ history of graphics APIs (You can skip this)Įach box in the "pipeline" had some dials on the side so you could configure how each feature behaved, but you were pretty much limited to the features the card vendor gave you.I don't know what a NPM is I Just wanna write CSS and my stupid little script tags.A history of graphics APIs (You can skip this). ![]() If you are a programmer, let me tell you what I think this means for you. But probably not because WebGL wasn't the only problem there. It might get us closer to a world where you can just play games in your web browser as a normal thing like you used to be able to with Flash. If you are not a programmer, this probably doesn't affect you. On phones, it won't be in Chrome until later this year and Apple I don't know. (All of this refers to desktop computers. By the end of the year WebGPU will be everywhere, in every browser. If you click here, and you see a rainbow triangle, your web browser has WebGPU. Chrome 113 shipped in the final minutes of me finishing this post and should be available in the "About Chrome" dialog right this second. WebGPU is a little bit irritating- but only a little bit, and it is massively less irritating than any of the things it replaces. In fact it is so good I think it will replace Vulkan as well as normal OpenGL, and become just the standard way to draw, in any kind of software, from any programming language. It is so good I think it will also replace Canvas and become the new way to draw 2D in web browsers. It is, in my opinion, very good actually. That means it is the new way to draw 3D in web browsers. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |