磊磊cpp
Software Engineer specializing in Graphics . Main language is C++.
https://github.com/cfl997
展开
-
NVIDIA 的OpenGL FramBuffer Bug-glCreateFramebuffers
在做OpenGL开发的时候,遇到了NVIDIA写的bug。并进行了解决,在NVIDIA官网上进行了反馈。原创 2022-12-27 17:09:59 · 7154 阅读 · 0 评论 -
【CFLRenderAPI】 一、整体框架 和 基本配置
CFLRenderAPI 是一个跨平台的渲染引擎,旨在为上层应用提供统一的API接口,支持OpenGL和DirectX两种渲染后端。通过动态加载库的方式,上层应用可以切换不同的渲染引擎。支持多任务多线程。使渲染层和分离。原创 2025-02-12 12:34:10 · 951 阅读 · 0 评论 -
【WebGL】-02 绘制动态点
项目地址:https://github.com/cfl997/cflWebGL附源码:原创 2025-01-21 16:51:45 · 105 阅读 · 0 评论 -
【WebGL】-01 绘制静态点
【代码】【WebGL】-01绘制静态点。原创 2025-01-20 14:59:46 · 31 阅读 · 0 评论 -
CUDA和OpenGL纹理texture结合
通过上述代码解释,每一行代码的作用和逻辑应当清楚明了。这个过程包括计算图像直方图、执行前缀和扫描、计算CDF并对图像进行直方图均衡化。针对于单通道16位图像。结合方式在CUDA_equalizeHistogram_16函数中。定义直方图长度为65536,对应16位像素值的范围(0-65535)。cuda和OpenGL纹理结合,并进行直方图计算。其他的为CUDA核函数。原创 2024-06-04 11:41:37 · 266 阅读 · 0 评论 -
OpenGL 和 DirectX 矩阵 乘法 左乘和右乘,glm和DirectXMath。 OpenGL用列矩阵 在 glsl中反转矩阵
在OpenGL中,矩阵运算通常使用GLM(OpenGL Mathematics)库来进行。GLM库提供了与OpenGL兼容的数学运算功能,包括矩阵和向量的操作。而在DirectX中,矩阵运算通常使用DirectXMath库。GLM和DirectXMath都遵循列主序存储矩阵元素,但它们在矩阵乘法的顺序上有所不同:GLM使用的是行向量乘法,而DirectX使用的是列向量乘法。这导致了矩阵乘法的结果可能不同,具体取决于操作顺序。原创 2024-05-31 17:10:38 · 571 阅读 · 0 评论 -
OpenGL 处理 16位 unsigned int数据图像 以及着色器
当处理16位unsigned int数据图像时,你需要考虑使用OpenGL来加载和处理这些图像。在OpenGL中,你可以使用函数来加载纹理数据。原创 2024-05-28 09:28:55 · 369 阅读 · 0 评论 -
glCopyImageSubData 使用说明 并且 偏移操作之后 目标区域的其他区域颜色不对的问题
是 OpenGL 4.3 及以上版本提供的一种函数,用于在不同的纹理对象或纹理内部进行快速的数据拷贝操作。与传统的纹理数据传输方法相比,提供了一种高效且灵活的手段,可以在无需映射或解压纹理数据的情况下进行图像数据的复制。原创 2024-05-22 16:32:05 · 214 阅读 · 0 评论 -
qt C# MFC 等界面接入glfw。用glfw管理事件 实现 OpenGL事件交互 的教程。glfw+qt会卡死的问题
GLFW是一个轻量级的库,用于处理窗口和输入设备的操作,是开发OpenGL应用程序的理想选择。无论是Qt、C#还是MFC,我们都可以利用GLFW来管理窗口和事件。通过GLFW,我们可以在不同的界面框架中实现OpenGL事件交互。无论是在Qt、C#还是MFC中,我们都可以使用GLFW来管理窗口和事件,从而实现OpenGL的交互操作。关键是理解每个界面框架的特性和API的使用方法,并将GLFW集成到相应的框架中。原创 2024-05-08 17:33:46 · 512 阅读 · 0 评论 -
鼠标屏幕坐标转换到世界坐标纯c++代码实现
通过执行这些步骤,我们可以将场景中的物体从其模型坐标转换为屏幕上的像素坐标。这个过程涉及到模型变换、观察变换、投影变换和屏幕映射等操作,其中投影变换和屏幕映射是最关键的步骤,决定了最终在屏幕上可见的内容。原创 2024-04-18 13:57:10 · 426 阅读 · 0 评论 -
glm::vec3 等结构放入结构体中 内存对其问题
在OpenGL编程中,与顶点数据的交互是非常常见的操作。在C++中,通常会使用GLM库提供的数据结构,如glm::vec3,来表示顶点数据。然而,内存对齐问题可能会影响到这种交互,特别是在涉及到结构体的内存布局时。本教程将探讨在OpenGL中如何处理顶点数据,并对比在加入GLM宏定义和不加入GLM宏定义的情况下的内存大小差异,同时提供相应的Shader代码。当你在使用GLM库时,可能会遇到内存对齐的问题,特别是在与其他库或系统进行交互时。GLM提供了一个宏定义,它可以强制GLM库使用对齐内存分配。原创 2024-04-16 10:21:44 · 326 阅读 · 0 评论 -
FramBuffer离屏渲染上屏的简易操作
在每次循环中,清除颜色缓冲区,进行离屏渲染,然后将渲染结果显示在屏幕上。在离屏渲染时,将帧缓冲对象绑定为当前渲染目标,并在上屏渲染时将其绑定回默认的帧缓冲对象。创建一个三角形的顶点数据,并创建相应的顶点缓冲对象和顶点数组对象。通过理解这个示例程序,你可以学到如何使用帧缓冲对象进行离屏渲染,以及如何将离屏渲染的结果显示在屏幕上。创建一个帧缓冲对象,并将一个纹理附件附加到帧缓冲中。以下是一个完整的OpenGL程序示例,演示了如何进行离屏渲染并将渲染结果显示在屏幕上。并非在帧缓冲绑定的纹理上。原创 2024-04-09 13:35:26 · 481 阅读 · 0 评论 -
使用glBlitFramebuffer将2D多采样纹理转换为2D普通纹理的教程
在计算机图形编程中,有时你可能需要将2D多采样纹理转换为普通2D纹理。这种转换在实现不需要多采样的后处理效果时非常有用。OpenGL中的函数为高效实现此转换提供了便捷的方法。本教程将指导你如何使用从多采样纹理传输数据到普通2D纹理。原创 2023-12-01 17:32:59 · 510 阅读 · 0 评论 -
glFenceSync
是OpenGL中用于等待同步对象状态变化的函数,它可以用于在CPU端等待GPU端的某个操作完成。可能会阻塞CPU线程,因此你可能需要在独立的线程中等待同步对象,以确保CPU和GPU可以并行工作。用于在CPU端等待GPU操作完成。下面是一个简单的例子,演示如何使用。:等待同步对象的状态变化。:创建一个同步对象。原创 2023-11-30 16:12:30 · 577 阅读 · 0 评论 -
了解OpenGL的Program Pipeline:
在深入研究OpenGL Program Pipeline之前,我们首先要理解什么是Program Pipeline。Program Pipeline是OpenGL 4.1引入的一个特性,用于管理多个着色器程序(Shader Program)。着色器程序是OpenGL渲染管线的一部分,用于定义顶点处理、片段着色和其他图形处理过程。Program Pipeline的主要目的是将多个着色器程序组合在一起以实现高效的渲染。原创 2023-10-24 22:18:35 · 349 阅读 · 0 评论 -
点到线段的距离点到直线的距离
【代码】点到线段的距离点到直线的距离。原创 2023-06-08 16:49:11 · 54 阅读 · 0 评论 -
OpenGL绘制罗纳尔多三维模型-Assimp库
本文主要讲解assimp库的使用。OpenGL绘制罗纳尔多三维模型-Assimp库使用。原创 2022-12-08 16:30:21 · 3918 阅读 · 0 评论 -
HLSL转GLSL中函数映射
转换中函数的对应关系。原创 2022-11-04 16:32:11 · 3849 阅读 · 0 评论