
C++ OpenGL
文章平均质量分 75
C++ OpenGL笔记
令狐掌门
C++程序员,出版过《C++零基础入门视频教程》、《Qt高级进阶视频教程》、《C++ Qt6 QtQuick/QML入门进阶视频教程》、《OBS源码分析与桌面录制视频教程》、《PyQt PySide6零基础入门与项目实战》。
展开
-
OpenGL MVP变换
在OpenGL中,(Model-View-Projection Transformation)是3D图形渲染的核心流程,它将物体的局部坐标通过一系列矩阵变换最终映射到屏幕空间。。原创 2025-03-24 11:17:50 · 721 阅读 · 0 评论 -
GLB文件介绍
是由支持的软件或工具生成的。glTF是一种开放的3D模型传输格式,而GLB是其二进制版本,通常用于嵌入纹理和模型数据。原创 2025-03-21 18:25:07 · 500 阅读 · 0 评论 -
OpenGL窗口变换、裁减、剪切与反馈
在OpenGL中,窗口变换、裁剪、剪切和反馈是图形渲染管线中的重要概念。原创 2025-03-10 09:12:32 · 347 阅读 · 0 评论 -
OpenGL纹理数组
在 OpenGL 中,是一种特殊的纹理类型,它允许我们将多个纹理存储在一个纹理对象中,并通过索引访问不同的纹理层。纹理数组的主要优势是可以减少绑定纹理的操作,从而提高性能,尤其是在需要频繁切换纹理的场景中。以下是实现步骤以及完整代码示例,使用和。原创 2025-03-05 07:45:00 · 328 阅读 · 0 评论 -
OpenGL 3D纹理
3D纹理(也称为体积纹理)是纹理映射的扩展,从2D平面扩展到3D空间。与2D纹理不同,3D纹理在三个维度上存储数据(宽度、高度和深度),允许在整个3D空间中采样,而不仅仅是在平面上。这个示例提供了一个坚实的3D纹理基础,可以根据特定需求进一步扩展和优化。例如,可以实现更复杂的体积渲染算法、添加光线行进技术或创建更复杂的程序化3D纹理。原创 2025-03-04 11:21:30 · 927 阅读 · 0 评论 -
C++ OpenGL 表面剔除 (Face Culling)
表面剔除是一种优化技术,可以减少渲染不必要的图元,提高渲染性能。它基于一个简单原则:对于封闭的3D物体,观察者在任何时候最多只能看到一半的面(除非是透明物体)。通过剔除背向观察者的面,可以节省大量的片段着色器计算。:通过顶点的环绕顺序定义面的正面和背面:可以选择剔除正面、背面或两者。原创 2025-03-04 11:08:49 · 785 阅读 · 0 评论 -
C++ OpenGL 帧缓冲(Framebuffer)理论与实现
这个示例仅展示了基本用法,帧缓冲在实际应用中通常会结合更复杂的着色器和多重缓冲技术。在实际开发中需要根据具体的渲染需求调整帧缓冲的配置和附件类型。帧缓冲对象(FBO)是OpenGL中一种允许我们创建自定义渲染目标的对象。原创 2025-03-04 11:05:20 · 911 阅读 · 0 评论 -
OpenGL Blinn-Phong 光照模型原理与基于物理的渲染 (PBR)
Blinn-Phong 光照模型是一种经典的基于物理的光照模型,用于模拟光源与物体表面之间的交互效果。Blinn-Phong 模型是现代图形学的重要基础,尽管已被更复杂的光照模型(如 PBR 的基于物理的渲染)所取代,但它在学习和理解光照的基本原理时仍然非常重要,同时也是许多实时渲染场景的经典选择。是一种更加真实的渲染技术,与传统的 Blinn-Phong 模型相比,它更接近现实中的光照和材质行为。PBR 的核心思想是通过物理规律模拟光与材质之间的交互,从而实现更真实、统一的视觉效果。原创 2025-02-25 09:12:56 · 803 阅读 · 0 评论