随笔分类 - 计算机图形学
摘要:目录特性相机模型Camera声明Camera成员函数构造与析构设置投影参数设置视图参数视图变换矩阵透视投影变换矩阵坐标变换更新视景体参考 特性 文件:Camera.h,Camera.cpp Camera(相机)类,用于管理3D场景中的视角和投影矩阵,支持透视投影、视图变换、视锥体(Frustum)计
阅读全文
摘要:目录Z-BufferZ-FightingReverse-Z参考 Z-Buffer Z缓冲(Z-Buffer),又名深度缓冲(Depth buffer),是3D图形中用于处理遮挡关系的一种技术. 主要用于判定哪个物体/fragment在前面(距离相机较近),哪个在后面(距离相机较远),从而正确显示可见
阅读全文
摘要:目录Config类特性常量定义资源路径抗锯齿类型Config类定义ConfigPanel类特性ConfigPanel数据成员ConfigPanel函数成员构造与析构加载资源路径加载model加载skybox绘制面板绘制设置菜单更新光源是否需要捕获IO事件ImGui使用流程 Config类 特性 文件
阅读全文
摘要:目录特性轨道控制器模型OrbitController类类声明构造与析构更新相机的观察者信息平移控制旋转控制缩放控制控制参数SmoothOrbitController类类声明构造与析构实现平滑效果重置控制器参考 特性 文件:OrbitController.h, OrbitController.cpp
阅读全文
摘要:目录特性类图关系ViewManager 数据成员ViewerManager 函数成员构造与析构配置面板回调初始化配置面板主渲染循环重置状态等待渲染器空闲绘制面板UI更新尺寸捕获手势查询是否正在捕获鼠标、键盘输入基本概念MSAAFBOOpenGL函数glBindTextureglTexSubImage
阅读全文
摘要:目录回顾来自环境光照的着色蒙特卡洛积分法经典近似法Split Sum第一项Split Sum第二项Split Sum近似来自环境光照的阴影背景知识频率、滤波基函数(Basic Function)球谐函数PRT对于diffuse物体对于glossy物体小波(Wavlet)参考 回顾 环境光照(Envi
阅读全文
摘要:目录回顾渲染方程环境光全局光照阴影贴图概念具体做法问题自遮挡锯齿(Aliasing)实时渲染中的数学近似相等实时渲染方程的近似相等软阴影基本概念PCFPCF效果图PCSS确定filter sizePCSS算法步骤VSSMMIPMAPSATMoment Shadow MappingDistance F
阅读全文
摘要:目录相机Cameras成像针孔相机视场视场是什么如何决定视场曝光透镜Lens理想薄透镜薄透镜方程散焦模糊Defocus Blur计算弥散圆CocF-Number理想薄透镜的光线追踪景深Depth of Field参考 相机Cameras 成像 图形学有2种成像(Imaging)方式:光栅化成像,光线
阅读全文
摘要:目录基本概念材质漫反射材质Glossy material材质反射、折射材质反射折射菲涅⽿项计算菲涅尔项微表面材质微表面概念微表面BRDF各项同性/各项异性材质各项异性BRDFBRDF性质测量BRDF参考 基本概念 材质与外观 不同的材质(Material)在不同的光线作用下,表现出不同的外观(App
阅读全文
摘要:目录Whitted-Style Ray Tracing路径追踪简单蒙特卡洛解决方案全局光照光线生成俄罗斯轮盘赌光源采样小结参考 Whitted-Style Ray Tracing 之前介绍的光线追踪方法(参见计算机图形:全局光照),是Whitted-Style Ray Tracing. 核心思想:
阅读全文
摘要:目录辐射度光照模型术语立体角Ω辐照度(Irradiance)朗伯余弦定律(Lambert's Consine Law)Irradiance 衰减辐射度(Radiance)Radiance与Irradiance双向反射分布函数(BRDF)BRDF定义反射方程(Refection Equation)渲染
阅读全文
摘要:目录OpenGLUtils类OpenGLUtils类定义GL_CHECK用户使用 OpenGLUtils类 OpenGLUtils类定义 文件:OpenGLUtils.h OpenGLUtils类用于OpenGL函数调用的错误检查. 用宏函数方式提供检查OpenGL错误功能:如果出现错误,则自动打印
阅读全文
摘要:目录简介全局数据顶点着色器(Vertex Shader)片元着色器(Fragment Shader)GLFW、OpenGLGLFW使用流程OpenGL使用流程SoftGLRender中使用GLFW、OpenGL输入事件窗口事件绘制图形内容总结 简介 文件:Viewer/Main.cpp SoftGL
阅读全文
摘要:目录介绍着色器着色器的基本结构着色器使用流程ShaderGLSL类(管理着色器)ShaderGLSL声明ShaderGLSL实现构造与析构添加头信息、宏定义加载着色器源码预处理顶点着色器源码预处理片元着色器源码预处理着色器程序着色器程序使用流程ProgramGLSL类(管理着色器程序)构造与析构加载
阅读全文
摘要:目录简介BoundingBox 轴对齐包围盒getCorners获取角点transform 变换包围盒intersects 相交测试merge 合并包围盒Plane平面简介平面的点法式方程点到平面的距离相交测试与包围盒的相交测试与点的相交测试与线段的相交测试与三角形的相交测试Frustum视锥体简介
阅读全文
摘要:目录SIMD技术介绍工作原理使用__m128常用_mm_函数_mm_load*系列函数_mm_set_ps函数_mm_shuffle_ps与_MM_SHUFFLE_mm_mul_ps乘法_mm_fmsub_ps融合乘法SoftGLRender的SIMDSIMD模块SIMD加速求重心坐标其他 SIMD
阅读全文
摘要:目录简介类图关系基类Buffer<T>分配内存销毁内存坐标转换访问指定位置像素getter/setteremtpy()判空拷贝出像素数据清除像素数据设置像素数据工厂方法派生类TiledBuffer<T>分块布局的逻辑布局坐标变换派生类MortonBuffer<T> 简介 SoftGLRender针对
阅读全文
摘要:目录ImageUtilsImageUtils声明readImageRGBA 读取图片文件writeImage 写图片文件convertFloatImage 转换float图像stb image 库stbi_load支持格式错误处理读取图像文件示例stbi_write_png其他格式写图像文件示例 I
阅读全文
摘要:目录StringUtilsFileUtilsMemoryUtils内存布局分配对齐内存释放对齐内存计算最小对齐大小智能指针管理对齐内存ImageUtils 由于工具类(名为“xxxUtils”)大多比较短小,因此本文一次解析多个. StringUtils 文件:StringUtils.h 字符串工具
阅读全文
摘要:目录特性Timer类计时功能3种计时:steady_clock, system_clock, high_resolution_clockScopedTimer类自动计时功能内联宏使用ScopedTimer 特性 文件:Base/Timer.h, Timer.cpp 这部分有2个类协作:Timer,
阅读全文

浙公网安备 33010602011771号