随笔分类 -  C/C++

1 2 3 4 5 ··· 10 下一页
摘要:目录特性类图关系ViewManager 数据成员ViewerManager 函数成员构造与析构配置面板回调初始化配置面板主渲染循环重置状态等待渲染器空闲绘制面板UI更新尺寸捕获手势查询是否正在捕获鼠标、键盘输入基本概念MSAAFBOOpenGL函数glBindTextureglTexSubImage 阅读全文
posted @ 2025-06-15 23:16 明明1109 阅读(101) 评论(0) 推荐(0)
摘要:目录回顾渲染方程环境光全局光照阴影贴图概念具体做法问题自遮挡锯齿(Aliasing)实时渲染中的数学近似相等实时渲染方程的近似相等软阴影基本概念PCFPCF效果图PCSS确定filter sizePCSS算法步骤VSSMMIPMAPSATMoment Shadow MappingDistance F 阅读全文
posted @ 2025-06-10 21:35 明明1109 阅读(191) 评论(0) 推荐(0)
摘要:目录OpenGLUtils类OpenGLUtils类定义GL_CHECK用户使用 OpenGLUtils类 OpenGLUtils类定义 文件:OpenGLUtils.h OpenGLUtils类用于OpenGL函数调用的错误检查. 用宏函数方式提供检查OpenGL错误功能:如果出现错误,则自动打印 阅读全文
posted @ 2025-05-20 00:36 明明1109 阅读(66) 评论(0) 推荐(0)
摘要:目录简介全局数据顶点着色器(Vertex Shader)片元着色器(Fragment Shader)GLFW、OpenGLGLFW使用流程OpenGL使用流程SoftGLRender中使用GLFW、OpenGL输入事件窗口事件绘制图形内容总结 简介 文件:Viewer/Main.cpp SoftGL 阅读全文
posted @ 2025-05-20 00:36 明明1109 阅读(115) 评论(0) 推荐(0)
摘要:目录介绍着色器着色器的基本结构着色器使用流程ShaderGLSL类(管理着色器)ShaderGLSL声明ShaderGLSL实现构造与析构添加头信息、宏定义加载着色器源码预处理顶点着色器源码预处理片元着色器源码预处理着色器程序着色器程序使用流程ProgramGLSL类(管理着色器程序)构造与析构加载 阅读全文
posted @ 2025-05-20 00:35 明明1109 阅读(88) 评论(0) 推荐(0)
摘要:目录简介BoundingBox 轴对齐包围盒getCorners获取角点transform 变换包围盒intersects 相交测试merge 合并包围盒Plane平面简介平面的点法式方程点到平面的距离相交测试与包围盒的相交测试与点的相交测试与线段的相交测试与三角形的相交测试Frustum视锥体简介 阅读全文
posted @ 2025-05-18 16:55 明明1109 阅读(141) 评论(0) 推荐(0)
摘要:目录SIMD技术介绍工作原理使用__m128常用_mm_函数_mm_load*系列函数_mm_set_ps函数_mm_shuffle_ps与_MM_SHUFFLE_mm_mul_ps乘法_mm_fmsub_ps融合乘法SoftGLRender的SIMDSIMD模块SIMD加速求重心坐标其他 SIMD 阅读全文
posted @ 2025-05-18 16:54 明明1109 阅读(153) 评论(0) 推荐(0)
摘要:目录简介类图关系基类Buffer<T>分配内存销毁内存坐标转换访问指定位置像素getter/setteremtpy()判空拷贝出像素数据清除像素数据设置像素数据工厂方法派生类TiledBuffer<T>分块布局的逻辑布局坐标变换派生类MortonBuffer<T> 简介 SoftGLRender针对 阅读全文
posted @ 2025-05-18 16:54 明明1109 阅读(95) 评论(0) 推荐(0)
摘要:目录ImageUtilsImageUtils声明readImageRGBA 读取图片文件writeImage 写图片文件convertFloatImage 转换float图像stb image 库stbi_load支持格式错误处理读取图像文件示例stbi_write_png其他格式写图像文件示例 I 阅读全文
posted @ 2025-05-18 16:54 明明1109 阅读(157) 评论(0) 推荐(0)
摘要:目录StringUtilsFileUtilsMemoryUtils内存布局分配对齐内存释放对齐内存计算最小对齐大小智能指针管理对齐内存ImageUtils 由于工具类(名为“xxxUtils”)大多比较短小,因此本文一次解析多个. StringUtils 文件:StringUtils.h 字符串工具 阅读全文
posted @ 2025-05-18 16:54 明明1109 阅读(40) 评论(0) 推荐(0)
摘要:目录特性Timer类计时功能3种计时:steady_clock, system_clock, high_resolution_clockScopedTimer类自动计时功能内联宏使用ScopedTimer 特性 文件:Base/Timer.h, Timer.cpp 这部分有2个类协作:Timer, 阅读全文
posted @ 2025-05-18 16:53 明明1109 阅读(65) 评论(0) 推荐(0)
摘要:目录特性线程池模型ThreadPool数据成员ThreadPool实现线程池的构造、析构创建线程组销毁线程组向任务队列添加用户任务从任务队列取出用户任务子线程执行用户任务子线程的暂停与退出线程安全 特性 文件:Base/ThreadPool.h 线程池:预先创建一组线程(对象),用于并发完成用户指定 阅读全文
posted @ 2025-05-18 16:53 明明1109 阅读(56) 评论(0) 推荐(0)
摘要:目录特性类声明类的使用日志级别内联宏按级别日志过滤自定义日志输出类实现记录日志 特性 文件:Base/Logger.h, Logger.cpp Logger是独立的日志系统,可输出不同级别日志信息. 默认输出目标为stdout, stderr;使用方式为C风格日志. 支持4种日志级别,支持动态调整日 阅读全文
posted @ 2025-05-18 16:53 明明1109 阅读(62) 评论(0) 推荐(0)
摘要:目录编译编译、运行环境下载编译、运行命令行IDE 编译 编译、运行环境 支持的系统: Linux Windows (Win10 x64 专业版) MacOS Andriod IOS 编译环境: CMake 3.23.1 Visual Studio Community 2022(MSVC 19.4), 阅读全文
posted @ 2025-05-18 16:53 明明1109 阅读(65) 评论(0) 推荐(0)
摘要:目录简介各模块特色目录结构资源第三方库 简介 SoftGLRender是一个跨平台的软件渲染器,实现了GPU渲染管线的主要步骤,通过C++模拟顶点着色器、片元着色器. 支持实时切换软件/OpenGL/Vulkan模式渲染. 可通过改项目,学习和了解现代图形编程. 特点: 1. 完整的 GPU 渲染管 阅读全文
posted @ 2025-05-18 16:53 明明1109 阅读(166) 评论(0) 推荐(0)
摘要:目录背景环境CMake构建项目独立的CMake项目集成到现有CMake项目测试环境 背景 因为需要将CMake构建的项目从VS 2022移植到Qt6,网上找了很多资料,但很少有适用于自己情况的,比如最简单的,通过CMake从网络下载googletest代码到项目,在Qt CMake上无法下载,而在V 阅读全文
posted @ 2025-02-27 15:46 明明1109 阅读(482) 评论(0) 推荐(0)
摘要:目录区分不同系统区分不同编译器及其版本区分不同语言及其版本参考 区分不同系统 1)_WIN32,Windows系统 _WIN64:32bit and 64bit系统 M_WIN64:仅64bit Windows系统 M_WIN32:仅32bit Windows系统 _WINDOWS:GUI Appl 阅读全文
posted @ 2024-02-19 16:30 明明1109 阅读(2406) 评论(0) 推荐(0)
摘要:目录spdlog项目构成CMake构建根目录CMakeLists.txtcmake版本要求include专用cmake文件设置默认build类型编译器配置判断当前项目是否为spdlog选项开关 spdlog项目构成 Github源码:https://github.com/gabime/spdlog 阅读全文
posted @ 2023-07-17 09:44 明明1109 阅读(2208) 评论(0) 推荐(0)
摘要:目录简介源码解析基础类日志库网络库 简介 muduo库是陈硕开发的Linux多线程事件库,适用于Linux服务器编程。 Github地址:https://github.com/chenshuo/muduo 文档介绍:https://book.douban.com/subject/20471211/ 阅读全文
posted @ 2023-05-18 20:54 明明1109 阅读(1881) 评论(0) 推荐(0)
摘要:目录意义问题用命令模式解决电机控制与输入信号耦合问题与标准命令模式的区别异同 意义 先说结论:命令模式能有效对代码模块进行解耦,增强模块的扩展性以及可移植性。 问题 为了方便说明问题,假设现在有一个电机Motor,在识别到外界信号后,通过软件控制其旋转。需要支持的旋转方式为3种:正转、反转、振动。 阅读全文
posted @ 2023-05-12 18:02 明明1109 阅读(207) 评论(0) 推荐(0)

1 2 3 4 5 ··· 10 下一页