优化软渲染器:线程池设计与性能提升
在开发软渲染器时,性能优化是核心目标。单线程渲染受限于 CPU 单核性能,特别是在高分辨率或复杂场景下,帧率(FPS)往往较低。通过引入线程池(ThreadPool)并对关键模块进行多线程优化,我们成功将软渲染器的平均 FPS 从约 30 提升至 1...
在开发软渲染器时,性能优化是核心目标。单线程渲染受限于 CPU 单核性能,特别是在高分辨率或复杂场景下,帧率(FPS)往往较低。通过引入线程池(ThreadPool)并对关键模块进行多线程优化,我们成功将软渲染器的平均 FPS 从约 30 提升至 1...
在之前的开发中,我们通过直接传递一个 mat4 modelMatrix 到渲染函数来表示模型的位置、旋转和缩放。虽然可行,但这种方式不够直观,难以单独修改某个变换分量(如只改变旋转),并且在处理旋转时可能遇到欧拉角的固有问题。为了更优雅、健壮地管理对...
在上一篇文章中,我们成功地为 C++ 软渲染器添加了法线贴图支持,让低模也能展现丰富的表面几何细节。然而,要进一步提升渲染的真实感,我们还需要引入更多控制光照和材质表现的细节。本文将介绍如何继续扩展我们的渲染管线,加入环境光遮蔽 (Ambient O...
在实时计算机图形学中,模型的细节往往受到多边形数量的限制。为了在不显著增加模型复杂度的前提下,模拟出丰富的表面细节(如凹凸、划痕、纹理),法线贴图技术应运而生。本文将详细介绍如何在基于 C++ 的软件渲染器中实现切线空间法线贴图 (Tangent S...