View Full Version : do we neeed open GL?

11-04-2003, 07:25 AM
can we create graphics without open gl or direct x funtions? and creat our own or something?

11-04-2003, 07:29 AM
if u mean making 3d graphics u probably could do it, it would be very hard and time consuming. the chip vendors (ATi, nvidia....) write the functions for each API functions be it openGL or dx. All the very hard work is done. To be honest, unless ur creating some other kind of 3d graphics (eg pov-ray) u'd be kinda crazy to try and make 3d graphics on ur own that rival that of opengl or dx.

thats what i think anyway.

11-04-2003, 08:14 AM
If you're only talking about real time animation or games, I agree. (I recognize that you mentioned pov-ray) ;)

However, the world of 3d graphics does not stop at quake. many software packages must render accurately. OpenGL is about speed, not accuracy.

so nerdyneo, you can just set pixels on a bitmap in memory and then display that bitmap on the screen when you're done. That's how rendering should be done. But yes, you'll have to know quite a lot about 3d math, texture mapping, shading, lighting, etc...

11-04-2003, 08:42 AM
You can get DirectX to act as a framework for your own 3D graphics. Simply do not use Direct3D and get a pointer to your surface in DirectX.

Then treat the surface like you would in the old DOS graphics days. Make functions to draw lines, plot points, fill polies, texture polies, light polies, etc., etc. But it won't be as fast as D3D. Direct3D calls the HAL which in turn calls the driver - which is basically just a bunch of functions that activate circuits on the video board to do what you want. Hence the software equivalent will never be as fast as the accelerated one.

If you know about assembly and the principles behind it then you also realize that all a video GPU is, is a bunch of hard-coded assembly functions like bilinear filtering, polygon scan converting, etc., etc. Much like when you activate circuits in the CPU via opcodes, the same is true when the video driver interacts with the GPU.

This is the model for Direct3D
D3D -> HAL -> video driver -> output

The HAL holds the prototypes for all the standard DirectX library functions and the video driver is basically the body of the code - written by the GPU manufacturer. Microsoft defines the functions and the standard...and each vendor writes the body of the code for the standard functions. Hence that is why drivers are so important and also why DirectX will work with any card that supports it. Support meaning any vendor that has coded a driver that is designed to be used with DirectX.

This is the model for DirectX

DX -> HEL or user code-> output

So the DirectX equiv of 3D graphics will use the Hardware Emulation Layer or it will use your code...neither of which are gonna be faster than the video driver/GPU itself.

The difference between DX and D3D has now been glossed over a bit because it is all called DirectGraphics and they are closely meshed together. DirectX as it was is almost non-existent. Nearly everything is Direct3D.