Click here to check the ultimate guide to learn how to leverage your PC and internet to make money online.
The Washington Independent
The Washington Independent

Aspiring A Career In Computer Graphics Programming? Know The Basics Now

Aspiring A Career In Computer Graphics Programming? Know The Basics Now

Computer graphics programming involves a lot math, a lot of programming languages, and a good dose of creativity. Don’t be intimidated with the numerical challenges. It attracts a lot of money, too.

Anita Barnes
News
Last updated: Dec 27, 2021 | Dec 25, 2021

Table of Contents

Perhaps Michael Crichton’s 1990 sci-fi novel “Jurassic Park” about cloned dinosaurs would never be a 1993 blockbuster Steven Spielberg film of the same title without the aid of computer graphics programming.

In a book, any seasoned writer can skillfully describe how a Tyrannosaurus rex appears while escaping from a cage, devouring one hapless human being, and chasing a moving vehicle.

In a movie, how can you show a T. rex doing all that without computer-generated imagery (CGI), aka 3D imaging?

CGI, a kind of technology where images and special effects are created, is just one of the wonders of computer graphics.

Not only in the field of entertainment (movies, TV, video games,) is computer graphics programming applied but as well as in architecture, art, engineering, medical field, and photography, among several other areas.

Graphics Programming For Beginners

program script

In his 2020 LinkedIn article, Indian developer Raj Madhuram identified some of the areas that beginners need to study when learning computer graphics programming:

(a) 3D graphics

(b) animation

(c) data visualization

(d) image processing

(e) ray tracing

(f) shaders

Madhuram, the former principal software engineer at Yahoo!, also underlined the importance of math in computer graphics programming. He said that beginners need to study:

(a) analytic geometry or coordinate geometry

(b) linear algebra

(c) matrices

In addition, Madhuram said that for “more complex” areas of computer graphics programming (e.g, shaders, render pipelines), beginners must have a “deep knowledge” of the following:

(a) calculus

(b) computational geometry

(c) computer graphics algorithms

(d) trigonometry

(e) vectors

Specializing in computer graphics, Swedish software engineer Eric Arnebäck offers the following advice in his website (erkaman.github.io):

First Advice: “Start with ray tracing and rasterization.”

For beginners, Arnebäck suggests that they initially stay away from modern graphics API (Application Programming Interface), such as WebGL, Vulcan, OpenGL, Metal, and Direct3D.

Describing the above-mentioned graphics APIs as “not beginner friendly,” he said that they tend to “turn off” many first-time learners.

For Arnebäck, those who are new to computer graphics programming should instead begin writing a ray tracer and a software rasterizer. It will be easy for them to do so because, according to him, those two are just “simple algorithms.” Therefore, writing those two will be a “good” place to start.

In addition, the process of writing those two will expose beginners to several essential computer graphics concepts, including the following:

(a) cameras

(b) cross products

(c) dot products

(d) transformation matrices

For writing a ray tracer, Arnebäck told beginners to read books by American computer scientist and computer graphics researcher Peter Shirley, such as the following:

(a) “Ray Tracing in One Weekend” (2016)

(b) “Ray Tracing: The Next Week” (2016)

(c) “Ray Tracing: The Rest of Your Life” (2016)

(d) “Realistic Ray Tracing” (2000)

As for writing a software rasterizer, Arnebäck suggested the following online/offline sources:

(a) github.com/ssloy/tinyrenderer

(b) “Rasterization in One Weekend, Part I,” a 2018 WordPress blog post by Tayfun Kayhan, a Turkish graphics software engineer at Intel Poland.

(c) “Rasterization: A Practical Implementation” by Scratchapixel 2.0

(d) “Computer Graphics from Scratch: A Programmer's Introduction to 3D Rendering” (2021), a book by Gabriel Gambetta, a Spanish software engineer at Google Zurich. A preview of the contents of the book is available online.

Second Advice: “Learn the necessary math.” The required math is linear algebra.

Listed below are some of the specific areas in computer graphics programming to which linear algebra plays a role:

(a) calculating intersection (usually between a ray and a plane/ sphere/triangle, said Arnebäck)

(b) cross product or vector product

(c) dot product or scalar product

(d) homogeneous coordinates or projective coordinates

(e) spherical coordinate system

(f) matrices (translation matrix, scaling matrix, rotation matrix)

(g) orthonormal basis of a matrix

(h) quaternion number system/quaternions

Special mention to these three (Arnebäck stressed that beginners should study the topics mentioned below thoroughly):

(a) column-major order and row-major order (geometry)

Arnebäck said that based on his experience, these two cause several beginners to make mistakes.

(b) modeling a camera (perspective transformation matrix and view matrix)

This topic is one that many beginners “struggle with,” according to Arnebäck. So, he wants beginners to study it “carefully and in depth.”

(c) transformation matrix

As graphics programmers usually deal with 4x4 matrices, Arnebäck reminded beginners to skip studying large matrices.

In studying linear algebra, Arnebäck recommended the following references:

(a) “The Graphics Codex” (2021), an eBook by MIT alumnus Morgan McGuire, chief scientist at Roblox and former research director at NVIDIA.

(b) “Immersive Linear Algebra” (2017), an eBook by J. Strom, K. Astrom, T. Akenine-Moller (available online via Immersive Math)

(c) “3Blue1Brown,” a YouTube channel (in the Playlist, look for “Essence of Linear Algebra”) by Stanford alumnus Grant Sanderson

Third Advice: Sharpen your skills by doing “good projects.”

Arnebäck advised beginners to do the following “good projects” to kickstart their study of computer graphics programming:

(a) Do heightmap rendering.

(b) Implement the following: gamma correction, normal mapping, particle systems rendering, specular shading, and view frustum culling.

(c) Learn spot lights, point lights, and directional lights.

(d) Through instanced rendering, render several meshes.

(e) Through mesh skinning, do animated meshes.

(f) Using cube maps, do reflection rendering.

(g) Using shadow maps, do shadow rendering.

(h) Using spherical coordinates, create and render a sphere mesh.

Fourth Advice: Learn debugging tools (debuggers) for GPU debugging.

For beginners drawing their first triangle, Arnebäck “strongly” suggested beginners to learn debuggers and specifically mentioned NVIDIA Nsight Graphics and RenderDoc as examples.

How Do I Become A Graphics Programmer?

architectural design via graphics programming

Careers.StateUniversity.com describes graphics programmers as “technical experts” who create “specialized computer programs exclusively applicable to complicated 2D and 3D graphics.”

A bachelor’s degree in computer programming (or other related fields) is the minimum requirement to be a professional computer graphics programmer, according to the said website.

It added that one may have “an edge” when applying for a job if he/she completed a certificate (or a two-year degree) course in computer information systems.

A graphics programmer must be knowledgeable in:

(a) databases

(b) graphics user interfaces (GUI)

(c) operating systems

(d) programming languages

(e) systems programming

Aside from the technical skills, a graphics programmer should also exhibit great interpersonal skills, which include skills in verbal and non-verbal communications. Careers.StateUniversity.com reminds future graphics programmers that they will frequently work in groups; so, relational skills are important.

In 2020, Into Games, a computer games company in England, interviewed Howard Price – a former game programmer at Sony Computer Entertainment Europe – on how he became a graphics programmer.

When asked about “the key skills needed” to carry out his current role as a principal programmer at the U.K.-based video game company Codemasters, Price mentioned the following:

(a) C programming

(b) C++ programming

(c) shader

(d) vectors (4x4 matrices, cross products, dot products, points)

(e) “good” and “clear” communication skills

How Much Do Graphics Programmers Make?

In the U.S., as of December 8, 2021, the range for the annual base salary (gross income before taxes) of a graphics developer is $36,000 – $91,000, according to PayScale.

The average base salary is $52,342.00 per year.

For ZipRecruiter, a graphics programmer’s salary range is $80,000 – $190,000/yr. (average base salary per year: $133,085) as of December 19, 2021.

Below are the five highest-paying jobs related to computer graphics programming in the U.S., according to ZipRecruiter (exact job title is given):

(1) Graphics Software Engineer – $126,332 per year or $10,528 per month

(2) Senior Graphics Programmer – $123,810/yr. ($10,318/mo.)

(3) Graphics Engineer – $119,899/yr. ($9,992/mo.)

(4) 3D Graphics Software Engineer – $112,217/yr. ($9,351/mo.)

(5) 3D Graphics Programmer – $105,072/yr. ($8,756/mo.)

For job search website Glassdoor, the range (as of December 25, 2021) is also higher than what PayScale reported: $61,000 – $121,000/yr. (annual average base salary: $86,148).

Computer Programming Languages In 2021

JavaScript book

In November 2021, ComputerScience.org listed the different computer programming languages used by different industry professionals and in some major companies.

Here they are:

C++ (Adobe Software, Amazon, Firefox, Google)

C# (Hewlett Packard, Microsoft Intel)

C Language (Apple, Cisco, Microsoft, Oracle)

HTML or HyperText Markup Language (Apple, CareerBuilder, CyberCoders)

Java (eBay, Eurotech, V2COM)

JavaScript (Linkedin, Soundcloud, Yahoo!, WordPress)

Objective-C (Apple, CyberCoders)

PHP or Hypertext Preprocessor (CyberCoders, Facebook, Yahoo!)

Python (DropBox, Google, Instagram, NASA, Pinterest, YouTube)

Ruby/Ruby on Rails (Github, Google, Motorola, Scribd)

The top 10 programming languages used worldwide, according to data published by Statista in August 2021, are the following:

(1) JavaScript (64.96%)

(2) HTML/CSS (56.07%

(3) Python (48.24%)

(4) SQL (47.08%)

(5) Java (35.35%)

(6) Node.js (33.91%)

(7) TypeScript (30.19%)

(8) C# (27.86%)

(9) Bash/Shell (27.13%)

(10) C++ (24.31%)

Built In, an online community for tech companies and startups, published in July 2021 the new programming languages that developers may need to know.

Functional Languages – Elixir, Elm, PureScript, Swift

Procedural Languages – Go

Object-Oriented Languages – Dart, Pony, TypeScript

Others – Hack, Julia, Kotlin, Nim, OCaml, Python 3, Reason, Red, Rust

Video will be loading soon. Please wait...

Recommended Programming Languages In 2021 And 2022

For Beginners

According to Indian career website TimesJobs, those new to computer graphics programming should learn these seven programming languages:

C#, Go, Java, JavaScript, Kotlin, Python, and PHP

Based on One’s Career Plan

Coding bootcamp Fullstack Academy enumerated on its website what programming languages should be learned depending on one’s interest or choice of profession.

(a) Back-end Web Development – Go, JavaScript, Python, Ruby, Scala

(b) Front-end Web Development – Elm, JavaScript, TypeScript

(c) Desktop Applications – Go, Python, Scala

(d) Game Development – TypeScript, Unity

(e) Mobile Development – Objective C, Java, JavaScript, Swift

(f) Systems Programming – Go, Swift

For 2022

The University of California, Berkeley, Extension forecasted that the following programming languages will be the “most in-demand” ones in 2022:

(a) JavaScript (used for: mobile apps, game development, web development, web servers)

(b) Python (app development, back-end development, data science)

(c) HTML (web documents, website development and maintenance)

(d) CSS (web documents, website design, website development)

(e) Java (app development, e-commerce, finance)

(f) SQL (business management, database management, sales reports)

(g) NoSQL (business management, database management, sales reports)

(h) C# (desktop/web/mobile apps, game development, virtual reality)

(i) Rust (web browsers, operating systems, virtual reality)

(j) Perl (GUI development, network programming, system administration)

(k) Go (audio and video editing, Big Data, system/network programming)

Conclusion

Jurassic Park T. rex scene

With “Jurassic World: Dominion” coming out in 2022, the public can see how computer graphics programming achieves the impossible. It will once more resurrect some animals – on the big screen, at least – that became extinct some 65 million years ago.

Of course, graphics programming doesn’t only concentrate on creating special effects.

In his November 2021 article for ReadWrite Labs, Nate Nead, CEO of software consulting company DEV.co and a member of Forbes Business Council, wrote that in the coming years, programming languages will continue to evolve.

That’s why for those who are considered beginners in the world of computer graphics programming – as well as the seasoned ones – Nead’s advice for them is to “keep challenging” themselves through education.

Anita Barnes | With over twenty years of professional experience in the design industry, I'm a web designer and front-end web developer. As a small business owner, I am familiar with the difficulties that come with running a business. One of those challenges is creating a strong online presence. One that not only represents your ever-changing brand and personality, but also appeals to your target audience. Throughout my web design career, I've built a distinct design style that emphasizes attention to detail. I assume that less is enough when it comes to design. You don't have to have all the bells and whistles only because you can. It's critical to figure out which elements are essential for getting your message through to your customers – and which ones are unnecessary. I'll assist you in sorting through the choices to see what works best for you.

Related

Who’s Satoshi Nakamoto? Search For The Real Identity Of Bitcoin Creator Persists

Who is Satoshi Nakamoto? Is he really the inventor of – or one of the key people behind – the cryptocurrency Bitcoin? If not, then who is the true Bitcoin creator?

What You Need To Know About China's Map Issues And Information Restrictions 2021

For the first time in six years, Apple's iPhone became the best-selling smartphone in China, the company's second-largest market after the United States. But much of Apple's success can be attributed to CEO Tim Cook, who lay the groundwork years ago by secretly signing a $275 billion pact with Chinese officials guaranteeing Apple will help improve China's economy and technical strength through investments, commercial partnerships, and worker training.

Ever Heard Of A Crypto Miner In Antivirus Software? Then, Beware!

Norton surprised the public with its latest Norton 360 product that comes with a crypto miner called Norton Crypto. Whether the majority of the public got surprised or not – some got disgusted – should not really the first major concern, according to some experts.

Slowly But Surely? Crucial Event Expands Crypto Mainstream Adoption

You can now use cryptocurrency for that good old dark roast coffee at Starbucks, and for Dallas Mavericks fans, to purchase a ticket to their next game. Crypto has gone mainstream, it seems, but how wide will be its reach? What’s at stake for crypto a decade or two from now?

Unveiling The Three Faces Of Cryptocurrency

When it comes to cryptocurrency, one day it might be a bed of roses for you; next morning, you’re in a bed of nails. What’s the good, the bad, and the ugly when it comes to cryptocurrency?

Evolutionary Transition In Plain Words- How Life Forms Started

How can a form of life originate from something that has no life at all? Some major evolutionary transitions provide some explanations not only to this particular question but as well as to other changes of paramount importance.

From Impeccable To Terrible? Google Search Gets Slammed

Through the years, Google has become the all-time favorite search engine. People naturally expect that as it grows, search results get to improve, too. Unfortunately, that doesn't seem to be the case.

Moon Knight French Actor, Gaspard Ulliel Died After Ski Accident

Gaspard Ulliel, the star of It's Only the End of the World and Marvel's new Moon Knight series, died on Wednesday in a skiing accident in the French Alps.

NFTs – The Case Of A Multibillion-Dollar Craze

Non-fungible tokens or NFTs are hot these days, but will the hype lose its steam soon? Or will its popularity continue to attract people with the scorching potential to earn up to millions of dollars?

The PlayStation 5 Is Available Once Again

Many people, especially gamers, are always looking for a solution to fulfill their gaming adventure. When Sony Interactive Entertainment released the PS5 last year on November 12th, 2020 in the United States, Japan, Canada, Mexico, Australia, New Zealand, and South Korea, including the United Kingdom, which got the console on November 19, 2020, people got really excited! Sony Interactive Entertainment's PlayStation 5 (PS5) is a video game console intended for home gaming.

Not To Be Scrapped- Web Scraping Here To Stay

Information is gold. Mining data online paves way to mining real money in the real world. Companies exhaust all possible legal means to obtain data. Web scraping has been doing that for them and will likely remain doing so in the years to come.

© Copyright 2022 The Washington Independent All Rights Reserved

Terms & Privacy | twi.news@washingtonindependent.com

Click here to check the ultimate guide to learn how to leverage your PC and internet to make money online.