🖥️

# Computer Graphics (CG)

Tags @February 1, 2022 3:27 PM @July 9, 2022 11:18 PM

# Resources

### Fundamentals of computer graphics

https://www.cs.middlebury.edu/~candrews/classes/cs461/

https://www.scratchapixel.com

Fundamentals of Computer Graphics, 4th Edition. ISBN 9781315360201

Interactive Computer Graphics A Top-Down Approach with WebGL Edward Angel and Dave Shreiner Seventh Edition, Addison-Wesley 2015

https://graphtoy.com/

### Libraries

https://learnopengl.com

Videogames

"Some people think games are kid's stuff, but gamedev is one of the few areas that uses almost every item of the standard CS curriculum."- Dr. Sepideh Chakaveh

https://www.conted.ox.ac.uk/profiles/sepideh-chakaveh

# Meaning

• CGI (computer-generated imagery). Abbreviation. common gateway interface.
• Computer graphics is as create coherent models, not fit with reality.
• It’s not about user interfaces.

# History of Computer Graphics

https://deseng.ryerson.ca/dokuwiki/mec222:brief_history_of_computer_graphics

# Research

## CG industry

• Motion Graphics
• 3D Rendering
• VFX

## Actual ecosystem

• Maya, Blender, Max.
• OpenGL, DirectX.

# GitHub Repository

https://github.com/sanchezcarlosjr/computer-graphics/

## Examples

https://cg.sanchezcarlosjr.com/

## How do I render my models when don’t have enough computational power?

Render farm

https://www.sheepit-renderfarm.com

## How Many FPS Can the Human Eye See? and Frame rate

30-60 is an animation.

# Description and ecosystem

• Fundamentals of computer graphics.
• Basics of real-time rendering and graphics hardware.
• Basic OpenGL.
• C++ programming experience.
• Algorithms.
• Mathematics.
• Software packages.
• Graphics editor. Photoshop, Illustrator, ...
• Computer graphics. Blender, Maya, RenderMan, ...
• Video-games. Unity, ...
• Libraries.
• OpenGL.
• DirectX.
• WebGL.
• ...
• Hardware.
• Graphic cards.
• Displays.
• Artistic skills and product management.
• Video-games.
• Movies.
• Animations.
• Simulations.

# People

Frank Thomas

Johnston

https://frankandollie.com/

Disney's Nine Old Men

Disney Legends

PDF, SVG, ...

# Visual system

https://www.geogebra.org/calculator/vuvjfafb

# Raster images

Images are presented on some raster display. So, raster images are the most common way to store and process images.

Raster means converting vector images to pixel images.

Raster displays:

• Printers.
• Monitor.
• Television.
• Camera
• ...

https://en.wikipedia.org/wiki/Bayer_filter

Render means generating from a 3D model, 2D model, or effects to an image by a computer program. Raster displays show images as rectangular arrays of pixels. A raster image is a 2D array that stores the pixel value for each pixel.

Render programs:

• Blender
• After Effects
• ...

Rasterization, Ray Tracing, and Ray Tracing are rendering techniques.

Rendering Equation.

# Rendering

## Ray Tracing

In computing, Ray Tracing is a process that draws a set of objects producing an array of pixels. From a material way, rendering means converting 3D objects to 2D images into realistic images, which considers how each object contributes to each pixel. So, if you want it, you need an image-order algorithm called Ray Tracing. Reversing reality, it takes an image based on the camera geometry, known as an array of pixels, running through each pixel in the image shoots rays through the normal surface, checking every object of the scene to see if it intersects with any of them. Also, it computes the pixel color based on the results of the ray intersection. My implementation of the algorithm in pseudocode, thanks to Appel:

for each pixel on the scene based on the camera geometry do
compute the ray direction
find first object hit by ray and its surface normal
compute illumination
calculate color

https://www.desmos.com/calculator/s4zfc085d4

## Notes

“Ray Tracing in One Weekend.” raytracing.github.io/book/RayTracingInOneWeekend.html (accessed Feb. 21, 2022)

https://en.wikipedia.org/wiki/Netpbm#File_formats

https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster

## Properties of lighting & Light rays

There are properties of lighting and lights rays. So this lesson is about the spotlight, diffuse reflection, specular reflection, refraction, shadows rays, and how does work light rays with different mediums.

* Spotlight means the intensity of a lamp. When the light comes from directly a source, it's called direct illumination. Otherwise, it's called indirect illumination, that is, either refraction or reflection.

• Reflection * Diffuse reflection is the reflection of light in a random direction on a surface. * Specular reflection is the mirror-like reflection of light in a single direction on a surface.

* Refraction signifies the change in direction of light passing from one medium. For example, a glass with water.

* Ray tracing determines shadows rays from the object intersection to the light source.

* The camera is a factor to determine the brightness and racy tracing -image plane-.

## Rasterization and his graphic pipeline

The process of taking a primitive, generally a triangle, and figuring out which pixels it covers is called rasterization

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-837-computer-graphics-fall-2012/lecture-notes/MIT6_837F12_Lec21.pdf

## Notes

https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation

# Transformations

Geometric transformations and projections in computer graphics are linear transformations such that they are matrices, so we will be able to operate on Linear Algebra ideas. As shown below

is called translation.

is called scaling.

is called rotating.

We are ready to introduce composite transformations, i.e. multiply matrices. $T_aT_b$﻿ means applying translation and after scaling. How we can check $T_aT_b \neq T_bT_a$﻿, but $T_{a1}T_{a_2} = T_{a2}T_{a_1}$﻿ and $T_{b1}T_{b_2} = T_{b2}T_{b_1}$﻿.

• Affine space

# Blender

https://git.blender.org/gitweb/

# Camera

Virtual cameras work similar way to real cameras simulating optics and their behavior. The camera lens is about focal length, f-stop, diameter, and their relationship is $f_{stop}=\dfrac{\text{focal length}}{diameter}$﻿. Focal length is the distance between the lens and focal point on mm, and it’s possible manipulating in-camera with Lens Curvature. Diameter measures the diameter of the aperture on mm. Focal length classifies as a natural view (~50mm), narrow view (~150mm), and wide view (~28mm).

Another hand, the Depth of field is a region where the objects in a scene are in focus. It determines choosing of a lens, aperture, and f-stop. A narrow depth of field gets by a small f-stop. A wide depth of field gets by a bigger f-stop.

• Algorithm

# Viewing

• Field of view
• Len mm
• Perspective distortion

# Image-based rendering

https://www.inf.ufrgs.br/~oliveira/pubs_files/RITA_IBMR.pdf

https://graphics.stanford.edu/courses/cs248-05/IBR/IBR.pdf

https://pages.cs.wisc.edu/~dyer/cs534/papers/ibr-survey.pdf

# Animation

Twelve basic principles of animation

Disney Animation: The Illusion of Life

# The Graphics Pipeline

• Object-order rendering.

### Recall

How does a developer write his own animation?

The developer writes vertices and modes -geometric objects, and the computer interpolates.

Curves? Chain of line segments.

Polygons? Break them up into triangles.

### Notes

• INPUT: Geometric primitive by clipper.
1. It enumerates the pixels.
1. It interpolates values.
• OUTPUT: A set of fragments -pixels, with their information, including color, location, and depth- for each primitive in the frame buffer.
• A raster is a matrix of pixels.
• Geometric primitive to pixels is called rasterization.
• Triangles are the most often used primitive.
• A shader is a program that runs over GPU.

### Topic: Clipping

https://www.tutorialandexample.com/clipping-in-computer-graphics

### Notes

• It’s implemented to improve rendering performance.
• ...

# Imaging systems, visual science, and computer vision

https://zillalib.github.io/