透视投影

实现软光栅化中的透视投影:从基础渲染到深度测试优化在开发软光栅化渲染器时,透视投影是实现真实感渲染的关键一步。本文基于一次代码修改(git diff),详细讲述如何将一个基础的模型渲染系统升级为支持透视投影的渲染管线,包括矩阵变换、深度处理和透视校正...

Computer Graphics

摄像机的实现

概述本文档详细记录了在 SoftRasterizer 项目中实现 Camera 类的全过程,包括其设计、核心代码、应用方式以及验证方法。通过该类,我们实现了灵活的相机控制,支持 OpenGL 风格的视图变换。 核心实现1. Camera 类定义123...

Computer Graphics

漫反射材质

概述本文档详细记录了在 SoftRasterizer 项目中实现 diffuse 材质加载的全过程,解决了初始加载失败的问题,使得模型能够正确显示纹理效果。 核心修改1. Texture 类扩展1234567891011121314151617181...

Computer Graphics

Z-Buffer 深度缓冲的实现

概述本文档详细记录了在SoftRasterizer项目中实现Z-Buffer深度测试的全过程。 核心修改1. 帧缓冲类改造1234567891011121314// 添加深度缓冲区std::vector<float> zBuffer;//...

Computer Graphics

OBJ模型加载与三角形渲染实现

OBJ模型加载与三角形渲染实现坐标系确定本渲染器使用左手坐标系,判断依据: 静态分析方法 检查顶点变换: 123// 没有Z轴反转操作,保持原始方向screen_coords[j] = vec2i((v.x+1)*fb.width/2, (v.y+...

Computer Graphics

软光栅渲染器开发记录

软光栅渲染器开发阶段性成果项目概述我们实现了一个基础的软光栅渲染器,具有以下特点: 完全从零实现,不依赖图形API 仅使用标准库和基础数学运算 支持基本的像素绘制和图像输出 核心功能实现1. 数学库123456789101112// 向量模板类t...

技术分享

软光栅直线绘制算法实现

直线光栅化基础算法 - Bresenham实现算法简介Bresenham算法是计算机图形学中最基础的直线光栅化算法,通过整数运算高效确定最佳逼近直线路径的像素点。 核心特点 完全整数运算,无浮点计算 避免乘除法,仅用加减和位运算 一次生成一个像素,时...

Computer Graphics

计算机图形学——第2章:图形系统

计算机图形学:第2章 图形系统使用计算机进行图形处理时,需要有一个由硬件和软件组成的计算机图形系统,也就是我们所说的支撑环境。本章主要讨论计算机图形系统完成图形显示任务的原理和方式,并且对图形系统所涉及的主要软件和硬件进行必要的介绍。最后对图形流水线...

计算机图形学——第1章:绪论

计算机图形学:第1章 绪论 “图形是人类与计算机对话的窗口,而计算机图形学则是打开这扇窗的钥匙。” 计算机图形学(Computer Graphics)是一门研究如何利用计算机生成、处理和显示图形的学科。它不仅是计算机科学的重要分支,还融合了数学、物...

Shader入门——第2章:渲染流水线

123