Lets make DirectX

Started by
25 comments, last by _goat 20 years, 9 months ago
Okay, I really don''t mind if you flame me for this. I think it''s a silly idea as well. Useful, but silly. My question is, how did they make DirectX/OpenGL, and how do you make your "own" version of them. Interfacing with the hardware, using drivers, yeah. But how? I''m not fazed by ASM, nor using drivers, but there is very little information on this topic out there. And by "out there", I mean Google. :] Thus, I turn to you good people, to tell me why I should just use one of the existing ones. Oh, if you''d help me with my question, well, I''d appreciate that too. - Cheers I''''m not easily impressed. Ooh! A blue car!
[ search: google ][ programming: msdn | boost | opengl ][ languages: nihongo ]
Advertisement
Oh yeah. I put this under Graphics Programming rather than DirectX because we wouldn''t be working with DirectX. We''d be starting from scratch. Writing all the code ourselves, which means 3D graphical mathematics. Which means this thread.

Just so you don''t get angry. :]

I''''m not easily impressed.
Ooh! A blue car!
[ search: google ][ programming: msdn | boost | opengl ][ languages: nihongo ]
You can design your own 3D API and implement it in SOFTWARE (ie, on the CPU) using C++/ASM or whatever.

Getting IHVs to support your new API is not feasible. (Hey nVidia, wanna write a driver for my l33t3DAPIversion 0.01a ?)

Writing a software renderer for the purposes of learning/experimental however, is a worthy goal.
If you want to do programming where you interface directly with the hardware you should either get into console programming or try and get a job with one of the PC 3D hardware vendors writing drivers. You won''t get the information you need to do it yourself (even if it was feasible in principle, which it''s not) on the PC. The hardware vendors are pretty protective of the details of how their hardware works.

Game Programming Blog: www.mattnewport.com/blog

Dreamcast is a nice console to try, as the hardware interface is pretty well documented in KOS (Kallisti OS), and it''s easy to run homebrew software on it
in this thread I asked a similar question... I was told that DirectX, OpenGL, and the GDI all interface directly with the device drivers and that in theory you could duplicate what they do by reading the Microsoft DDK (which I guess is a guide for manufactures to make Windows device drivers) and learning how to interface with the drivers... this obviously would only work on Windows

let me show you how it would go down with post-its attached to the top of pens.
Tz tz tz,what shame!The more the years pass the more people forget about software rendering and it''s something SO FREQUIN COOL!Good to see some people are still intressted in that.

"You losers better learn...NOONE CONTROLS OUR GOD DAMN LIFE!!!" - MANOWAR
I think software rendering is awesome. So much, that I haven''t even bothered to learn an API yet.
You know what I never noticed before?
you should check out the Andre Lamothe''s latest book: Tricks of the 3D Game Programming Gurus. He writes a 3D software rasterizer from scratch (well you start with the directdraw7 framebuffer so you dont have to write video card drivers ...) At the end you have a full API that handles textures( 8 and 16 bit ), lighting, shadows and animations. He shows you all the steps to build the 3D pipeline and its very good book so far ( im near page 600 out of 1700!)

So well if your interested in that kind of stuff, its a book that you''ll definitly like
Stéphane RossGame Gurus Entertainment
quote:Original post by _goat
Interfacing with the hardware, using drivers, yeah. But how? I''m not fazed by ASM, nor using drivers, but there is very little information on this topic out there. And by "out there", I mean Google. :]

You''d need the precise mapping of all registers and ports used by the target 3D chipset. And that information is classified, as it is considered trade secret by the respective manufacturers. Your only possibility to get it, is to reverse engineer the original drivers. At least on nvidia, ATI is a little more open with their lowlevel specs, I think. Still, you''d probably have to sign a heavy NDA (and pay lots of k$).

This topic is closed to new replies.

Advertisement