How to get started writing a rasterized renderer in C

Updated on technology 2024-03-05
5 answers
  1. Anonymous users2024-02-06

    Let's talk about my thoughts, first of all, if you start from a learning point of view, you don't have to start with a software copy based on the current GPU architecture and concepts. Current GPUs are mainly based on triangular rasterization and Z-buffer.

    If we learn from the historical process of graphics, we can do this exercise:

    2D part: rasterized 2D points (that is, drawing points on a 2D array, understanding the basic principles of color, and solving image output problems).

    Rasterized 2D straight lines (Bresenham straight line algorithm, Wu Xiaolin straight line algorithm, etc.).

    Shearing algorithm for 2D straight lines (see Line Clipping).

    Rasterized 2D triangles (Scan Conversion). Avoid repeating the edge equation of rasterizing adjacent triangle boundaries.

    Rasterization is simple and complex polygons.

    3D: Transform vertices from 3D world space to 2D screen space, paint vertices (e.g. Milky Way galaxy data), and manipulate the camera to rotate the model.

    The shearing algorithm of 3D straight lines is carried out in the shear space, and the vertex connections (such as various 3D regular polyhedra) are rasterized into a wire frame model.

    Define a 3D model in polygons. Use the painter's algorithm to rasterize those polygons.

    Use depth buffering instead.

    Implement simple texture mapping, first do screen space interpolation, and then implement simple perspective-correct texture mapping.

    Implement simple vertex lighting and use vertex color interpolation for gouraud shading.

    Through vertex normal interpolation, phong shading is realized.

    Implement other mapping techniques, such as mipmapping (also try summed area table), bilinear trilinear filtering, bump mapping, normal mapping, environment mapping, etc.

  2. Anonymous users2024-02-05

    What does it mean, I don't express it clearly, after n vertices are passed into the pipeline, the geometric transformation is carried out first, that is, the vertexshader in the programmable pipeline, and then the pixel coordinates of these vertices on the screen are determined, and then enter the filling stage, that is, run pixelshader, which is called fragmentshader in opengl. It's over after filling.。。 -

  3. Anonymous users2024-02-04

    Rasterizing 2D points (that is, drawing points on a two-dimensional array, understanding the fundamentals of color, and solving image output problems).

    Rasterized 2D straight lines (Bresenham straight line algorithm, Wu Xiaolin straight line algorithm, etc.).

    Shearing algorithm for 2D straight lines (see Line Clipping).

  4. Anonymous users2024-02-03

    It depends on whether you understand the principles of rasterization and C++

  5. Anonymous users2024-02-02

    It depends on whether you understand the principles of computer graphics and OpenGL

Related questions
11 answers2024-03-05

It's not interesting, it's just that there's these members and methods in this category.

9 answers2024-03-05

I don't understand what you're talking about, what is your purpose?

10 answers2024-03-05

Writing ideas: Mainly use humor to write why he is a humorous person. >>>More

20 answers2024-03-05

Version 2 supports the library edb

Support for library specs >>>More

11 answers2024-03-05

The third floor can be considered, the second floor is enough to joke, people should ask questions should be consulted seriously, and they have come to the Buddhist family to think that they should have some Buddhist insight. What do you do when you talk about fake monks? The false monk himself will go to hell to repay his karma. >>>More