GithubHelp home page GithubHelp logo

3d_graphics_programming's Introduction

3D Graphics Programming

Repositório para minhas atividades no curso "3D Graphics Programming", do Gustavo Pezzi, no Pikuma (https://pikuma.com).

O objetivo do curso é aprender a teoria e a matemática que suportam a criação de gráficos tridimensionais, através da criação prática de um software renderizador a partir do zero, usando apenas a linguagem C padrão e a biblioteca SDL (Simple DirectMedia). Maiores informações na página do curso: 3D Graphics Programming.

Progresso do curso:

  • Introduction
    • Introduction and Learning Outcomes
    • How to Take this Course
    • Words of Encouragement
  • Compiling our project
    • Project Dependencies
    • A Quick Note for Windows Users
    • Project Folder Structure
    • The Compilation Flow
    • Working with Makefiles
    • Configuring Visual Studio in Windows
    • Can I use WSL on Windows?
  • SDL Setup and Color Buffer
    • Creating an SDL Window
    • Rendering an SDL Window
    • Declaring a Color Buffer
    • Colorbuffer vs. Framebuffer
    • Allocation Memory and Freeing Resources
    • Checking for Errors in Memory Allocation
    • Quiz: Memory Allocation
    • The Operator sizeof
    • SDL Texture
    • Fullscreen Window
    • Exercise: Drawing a Background Grid
    • Drawing a Background Grid
    • Background Color Patterns
    • Exercise: Drawing Rectangles
    • Creating a Function to Draw Rectangles
    • Quiz: Color Buffer
  • Multiple Header Files
  • Vectors and Points
  • Projecting Points
  • Linear Transformations
  • Fixed Time Step
  • Triangles and Vertices
  • Line Drawing
  • Dynamic Arrays
  • OBJ Files
  • Vector Operations
  • Triangle Rasterization
  • Sorting Faces by Depth
  • Matrices
  • 3D Matrix Transformations
  • Projection Matrix
  • Light and Shading
  • Texture Mapping
  • Perspective Correct Textures
  • Decoing PNG Files
  • Textures OBJ Files
  • Z-Buffer
  • Camera
  • Clipping
  • Code Polishing & Refactoring
  • Multiple Meshes
  • CPU vs. GPU Rasterization
  • Conclusion and Next Steps

3d_graphics_programming's People

Contributors

abrantesasf avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.