# Computer_Graph **Repository Path**: gentheaven/computer_-graph ## Basic Information - **Project Name**: Computer_Graph - **Description**: GAMES101作业 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-09 - **Last Updated**: 2023-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: raylib ## README 2022/10/8 学习raylib开源图形库, 计算机图形学 fundamentals-of-computer-graphics-4th.pdf https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html GAMES101: 现代计算机图形学入门 PC env: iMac2012, OS 10.15.7, Catalina lib: raylib 4.2.0 开发日志: 2022/10/22 raylib: 从3.5.0 升级为4.2.0,并且把lib直接加入项目中 2022/10/25:完成作业3,实时渲染模型 2022/10/27: 完成作业4,贝塞尔曲线 2022/11/2:完成作业5,光线追踪,渲染两个球体 2022/11/7: 完成作业6,BVH加速,渲染一个兔子模型 注意: Raylib底层用OpenGL OpenGL中的物体,世界,照相机:右手坐标系 规范化设备:左手坐标系 投影变换:采用了OpenGL的变换矩阵 作业1开始:同时支持Mac和Windows平台 Windows平台:Win10 开发工具:visual studio 2019 社区版 作业0: homework 给定一个点 P =(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出变换后点的坐标(要求用齐次坐标进行计算) 作业1:homework1 旋转三角形 本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点 v0(2.0,0.0,−2.0), v1(0.0,2.0,−2.0), v2(−2.0,0.0,−2.0), 你需要将这三个点的坐标变换为屏幕坐标,并在屏幕上绘制出对应的线框三角形 (在代码框架中,我们已经提供了 draw_triangle 函数,所以你只需要去构建变换矩阵即可)。简而言之,我们需要进行模型、视图、投影、视口等变换来将三角形显示在屏幕上。在提供的代码框架中,我们留下了模型变换和投影变换的部分给你去完成。 你可以使用 A 和 D 键将该三角形绕 z 轴旋转 (此处有一项提高作业,实现将三角形绕任意过原点的轴旋转)。 当你按下 Esc 键时,窗口会关闭且程序终止。 作业2: homework2 填充2个三角形,注意三角形之间的遮挡关系 主要实现如下两个函数: rasterize_triangle:逐个像素点填充三角形 insideTriangle:判断一个像素点是否在三角形内