Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

Help 

Need help to learn raw graphics programming.

I want to learn how to create my own graphics API. I am trying this summer to create my own GPU. However, I need to learn the math behind graphic engines. I need to know 2d and 3d and the latest advance math used for graphics. I will then need to learn physics.

Guys got any good resources??? books? websites? pdf files? 😧

Thanks in advance 🤝
"graphics API" is a very broad term. Do you mean something like OpenGL or Direct[Draw, 3D, X]? OpenGL is praised for its excellent documentation, so you might want to start there. Actual graphics libraries tend to be written in a low-level language such as the C programming language, but that is by no means a requirement. Low-level languages tend to be faster and more suitable to those tasks that are "closer to the metal", but if you want to Perl your own library, go right ahead.

Then, it might be benificial to study some already-existing libraries. Mesa is a well-known open-source implementation of (amongst others) OpenGL. The beauty of open-source software is that you can study its code.

Libraries such as these tend to be very complex, and even simple versions can take years to complete. It might be good to keep that in mind, especially if you intend to have "it" finished by this summer.

Good luck!
(Apr 21, 2014 09:19 AM)taoelism Wrote:  "graphics API" is a very broad term. Do you mean something like OpenGL or Direct[Draw, 3D, X]? OpenGL is praised for its excellent documentation, so you might want to start there. Actual graphics libraries tend to be written in a low-level language such as the C programming language, but that is by no means a requirement. Low-level languages tend to be faster and more suitable to those tasks that are "closer to the metal", but if you want to Perl your own library, go right ahead.

Then, it might be benificial to study some already-existing libraries. Mesa is a well-known open-source implementation of (amongst others) OpenGL. The beauty of open-source software is that you can study its code.

Libraries such as these tend to be very complex, and even simple versions can take years to complete. It might be good to keep that in mind, especially if you intend to have "it" finished by this summer.

Good luck!

I mean the chip level logic. The actual math behind drawing things on the computer screen. This would be GPU and a VGA controller type math.
Ah. In that case, the word "API" is probably not correct here, as an API specifies how some software components should interact with each other.(Wikipedia)

Be that as it may, I think it might still be benificial for you to study any of the docs and libraries I listed. OpenGL is one layer of abstraction above chip level logic, and communicates (almost) directly with the GPU. Studying OpenGL will teach you at least the interface of a GPU(so, what functions do what, with what parameters). Then you can start top-down designing one component at a time.

I understand that you are looking for a more abstract mathematical approach, but I'm afraid I wouldn't know where to look for that. Try implementing and abstracting one function at a time, creating a mathematical model piece by piece.
(Apr 22, 2014 12:59 AM)taoelism Wrote:  Ah. In that case, the word "API" is probably not correct here, as an API specifies how some software components should interact with each other.(Wikipedia)

Be that as it may, I think it might still be benificial for you to study any of the docs and libraries I listed. OpenGL is one layer of abstraction above chip level logic, and communicates (almost) directly with the GPU. Studying OpenGL will teach you at least the interface of a GPU(so, what functions do what, with what parameters). Then you can start top-down designing one component at a time.

I understand that you are looking for a more abstract mathematical approach, but I'm afraid I wouldn't know where to look for that. Try implementing and abstracting one function at a time, creating a mathematical model piece by piece.

Ya, but the chips actually create the API. I will need to make an API so programmers can create applications for the chips sets. My question is the actual math behind graphic api's... like opengl how does opengl work... meaning the inner workings. Not talking about using an API to build an application. I just need to learn the math used in graphics in drawing and animating things on screen.

Thanks I will look into what you provided to me. It's a good start towards where I want to eventually be at.
thegentlad22 Wrote:like opengl how does opengl work
If that is (part of) your question, then you should definitely study Mesa
taoelism Wrote:Mesa is a well-known open-source implementation of (amongst others) OpenGL. The beauty of open-source software is that you can study its code.

I've got to say, I admire your ambition. GPU's and 3D acceleration are god damn hard topics. Just trying to do something like that shows a strength of character I don't think I am capable of having.
(Apr 22, 2014 09:17 AM)taoelism Wrote:  If that is (part of) your question, then you should definitely study Mesa

I've got to say, I admire your ambition. GPU's and 3D acceleration are god damn hard topics. Just trying to do something like that shows a strength of character I don't think I am capable of having.

I am able to make a CPU in 4-bit, 8-bit, and 32-bit. I didn't try 16-bit because I already know it's very similar to 8-bit. So, I am sure I can do 16-bit. However, never made 64-bit or 128-bit cpu's. This summer will start doing a 64-bit cpu and start learning about muti-core and thread processing topics this summer.

I want to learn that at the same time to learn how to make a GPU. I have talked to people that created their own GPU. The only advice they gave me is to learn geometry and calc. They said do know about algbra topics like matrix tables. Which I did back in highschool.

However, i read a few gem mags and read a few creating game engine books. The math is a bit above my level. Some are just pure algorithms.

I know I won't learn it all this summer. However, when I get free time I want to advance my knowledge about these topics.

The end result is to know enough that I can build a better computer then whats out in the market today from scratch. In highschool took a few eletronics classes. I also took a few eletronic classes in college.

I just need to right now dive into the world of graphics. How to draw things and how to use math formulas to either draw things or animate things.

I know about the bezier curve.

for info here: Click Here for more info on bezier curve.

A lot of people is pissed at EA games for not making the Sims 4 use bezier curves to make curved walls and fences. They would have to design their modeling interface to use this formula to generate such curves. Not too hard to implement.

http://graphics.stanford.edu/courses/cs3...f_curv.pdf

I personally believe that nothing is hard. It's just takes time to learn the material. The level I am at with knowledge about computers and other stuff didn't come overnight. It took years and years. I also asked many people online to find resources to help me learn and master certain concepts.

I just believe if you want to learn something that you enjoy. You will find a way to find the right materials to learn from to get where you want to be at.

If you never did anything in your life by yourself. You can say that everything is hard. 🤝
Is there any links you could provide that could get my foot into the door with this?
You've just turned me on to that even being an option for me.
I never really pieced together what I could do with my different abilities.
Any links at all to get me started would be amazing.
(I can help you with the math)


Possibly Related Threads...
Thread / Author Replies Views Last Post
by SIM-5724601Mar 14, 2026 07:18 PM 11 295 Mar 14, 2026 07:18 PM
Last Post: Doug Dimmadome
[Tutorial] by KalvaxasMar 3, 2024 08:17 PM 4 198 Mar 3, 2024 08:17 PM
Last Post: Kalvaxas
by CallMePapiFeb 11, 2024 06:02 AM 5 225 Feb 11, 2024 06:02 AM
Last Post: carl1234