Giter Club home page Giter Club logo

computer-graphics-lab-for-jlu's Introduction

Computer Graphics Lab For Jilin University

I have developed this experiment framework for update the labs of the Computer Graphics course, offered at Jilin University.

The framework comprises 14 concise exercises, guiding you through the process of creating 2D graphics and rendering 3D objects on your personal computer screen from scratch.

If you have any advice, please feel free to contact me. Let's work together to make the Computer Graphics more engaging and accessible.

Environment

You should make sure your python environment has been set up firstly, and I suggest you using conda to create a pure python virtual environment. Then, you need to install denpendencies for our lab. numpy and matplotlib is all you need. For example:

conda create -n graphics_lab python=3.10
conda activate graphics_lab
pip install numpy matplotlib

Secondly, you'll need a tool to run the ipynb file, such as jupyter notebook, vscode etc.

Lab Contents

Graphics 2D

  1. Draw a Line
  2. Draw a Bézier Curve
  3. Draw a Rectangle
  4. Draw a Polygon
  5. Draw a Circle
  6. Fill Polygon with Color
  7. Fill Circle with Color
  8. Translation Transformation
  9. Rotation And Scale Transformation

Graphics 3D

The Graphics3D library is constructed as a pipeline:

  1. Complete MVP Processor
  2. Complete Vertex Processor
  3. Complete Rasterizer (Allows visualization of a 3D object)
  4. Complete Lighting Processor (Implement Blinn-Phong Model)
  5. Complete Texture Processor

Additional instructions can be found in the lab.ipynb file.

Examples

Graphics 2D

straight line and Bézier Curve (exercise 1-2)

circle and polygon (exercise 3-7)

translation transformation (exercise 8)

rotation and scale transformation (exercise 9)

Graphics 3D

Rasterize (exercise 12)

Blinn-Phong Lighting(exercise 13)

Texture (exercise 13)

computer-graphics-lab-for-jlu's People

Contributors

linzwcs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.