Sir

helscome my wedsite. its not done.

WORLD WIDE WEB A Demon Driving a Car A Rat Teases the Concept of An Electronic Mail Drippy E-mail



lapisnev
@lapisnev

In the beginning, there was DOS. People wanted to make video games for computers running DOS that looked really good and ran fast, but the majority of computers were extremely tight on resources compared to the luxuries we have today, and as a result they had a limited color palette and not a lot of raw power to draw an image fast enough.

One of the ways people worked around the limitations was by using dithering. This is a technique used to make a limited amount of colors look like new colors to the human eye, by drawing two or three colors near each other in a pattern, like checkered or alternating. You could also vary the proportions of colors in your dithering to create the illusion of lighting as 3D objects were moving on the screen. This was a great way to get a lot more out of simple hardware and small video memory.

Computers and software advanced, and eventually Microsoft released Windows. This is nothing like the Windows you may be familiar with today, I'm talking about Windows 3.1. If you upgraded a computer that shipped with DOS to Windows, suddenly Windows was using the graphics hardware to draw itself. If you wanted to make a Windows program with graphics, you had to go through Windows' APIs, and if you wanted to run a DOS game that needed to do wizardry on the video card, you usually needed to close Windows (You could do that!) and launch the DOS game directly in DOS. The Windows APIs were great for business applications but dogshit slow for trying to recreate tricks like dithering to use in games.

Microsoft created a library called WinG that included lots of fast graphics drawing routines you could use to implement games and other graphics applications on Windows. It was nearly as fast as the tricks DOS programmers were using before, but you could use it inside Windows.

WinG was the precursor to the first versions of DirectX. Most of what WinG could do was reimplemented a better way and new functionality was added on top, and this evolved into the DirectX Windows has today.

It was still possible to install WinG and play 16-bit Windows games that need it as late as Windows 7! (I have no idea if it still works today on Windows 10 or 11, but Windows is an enormous fucking pile of backwards compatibility hacks like you wouldn't believe so I'm sure 32-bit Windows 10 will still run 16-bit applications. SOMEONE is still running a business application at their company that they will never update.)


MisutaaAsriel
@MisutaaAsriel

But early games used proprietary APIs for hardware-based 3D rendering — If you didn't have the exact line of cards your game was designed for, everything was rendered in software on the CPU. Card manufacturers had competing APIs, and OpenGL was still in its infancy, where Microsoft had yet to support it *fully.

DirectX unified 3D rendering under a single API on Windows systems via Direct3D. Instead of targeting [X] card, you would target DirectX, and the card designer would be responsible for how those calls were carried out on the backend, via drivers.

As a result, you could use any graphics card you want to run 3D software, as long as it is DirectX compatible, which was a very desirable proposition for the average consumer, and even businesses, whilst being a better proposition for Microsoft than OpenGL, which could target other platforms, pushing developers to develop for Windows first with DirectX.

Please do your own reading to learn more; To clarify, OpenGL did exist at the time, Microsoft just wanted to be anti-competitive, and graphics card manufacturers were also being saucy with proprietary APIs in spite of OpenGL.

Edit 3: I am talking specifically about hardware rendering here. Also, please note that DirectX as a whole is a collection of Direct, well, [X], as in [insert name here], technologies, such as DirectDraw, Direct3D, DirectInput, DirectSound, etc. — They all have reasons to exist.



You must log in to comment.

in reply to @lapisnev's post:

Its direct competitor, OpenGL, could be used cross platform, and on high end graphics workstations where Microsoft may not have had much of a user base.

Making a Windows only API meant that developers would have to chose between Windows & other platforms, or double the effort. There was, from what I was reading, a brief effort to combine OpenGL & DirectX into a unified API, but due to purported financial constraints and Microsoft's own anticompetitive nature, it "failed".

I wonder if part of it was Microsoft being afraid that SGI (OpenGL's original developer) owned patents relating to OpenGL that they might enforce, but it was probably mainly vendor-lock in.

in reply to @MisutaaAsriel's post:

it would be really good for people to link primary sources when speaking with a tone of authority on these issues, eg:

http://www.chrishecker.com/OpenGL/Press_Release http://www.chrishecker.com/Developer_Power_and_the_U_Word

what is specifically weird to see in this thread is basically no acknowledgement that directx was created as a monopolist's weapon, to build what is called a "competitive moat" around windows that would force developers to commit to a single ecosystem and make it more difficult to support other platforms. this was a very real political battle that happened in the industry in the 90s and 00s and that context is always worth mentioning.

I literally mention that. And I quote;

whilst being a better proposition for Microsoft than OpenGL, which could target other platforms, pushing developers to develop for Windows first with DirectX.

I also mention OpenGL was in its infancy still, as in: it did exist but didn't have the broad support it had today, and hardware manufacturers were still willing to try their own APIs over it (Think CUDA/RTX of the 90s, but for everything, not just ray-tracing & compute), resulting in a fragmented consumer market.

I just didn't have the energy or time to post said things in detail, and I was trying to avoid posting in detail without sources so I kept to a condensed version.

But go off [Royal Term], i guess, as they say?

I didn't mean to start beef in the comments. I was just answering the more immediate "why" and ignoring the broader implications in my chost, but I do realize that there are very few things in capitalist society anymore that are done out of the goodness of someone's heart rather than in an attempt to make money at all costs.

Anyone is welcome to continue the thread and talk about EEE and FUD if they'd like.

Ok so that's where the confusion lies here. I was specifically talking about hardware accelerated graphics. Which is where my knowledge is coming from.

DirectX as a whole, I also explain in another comment is a collection of "Direct [X]" products such as DirectDraw, Direct3D, DirectInput, etc. — Hence "DirectX" as in X a variable used to refer to a number of things. Might as well be "Direct[Insert Name Here]".

part of the problem with the stock OpenGL in Windows is that it was something like GL 1.1 or 1.2, so the feature set was limited on top of being software rendered. So while OpenGL would "work" on any windows machine, it worked so poorly that often a custom software renderer was better. Direct3D (once it arrived) also had a software renderer available that (IIRC) was much faster, and maintains that tradition to this day with WARP, a very fast software 3D renderer that will compile your shaders to native code and everything