![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏开发
文章平均质量分 87
客户端,引擎,图形
森龙安
引擎 || 图形 || 客户端等 个人学习笔记,游戏开发爱好者,个人能力有限,如有不足还望指正
展开
-
OpenGL3.3_C++_Windows(29)
Demoexposure = 0.1fexposure = 5.0fHDR色调映射问题:有多个亮光源使这些数值总和超过了1.0,颜色值会被约束在1.0,从而导致场景混成一片,难以分辨: 色调映射:用更大范围的颜色值渲染从而获取大范围的黑暗与明亮的场景细节,最后将所有HDR(High Dynamic Range, 高动态范围)值转换成在[0.0, 1.0]范围的LDR(Low Dynamic Range,低动态范围)。 帧缓冲使用了(像GL_RGB)为其颜色缓冲的内部格式,OpenGL原创 2024-07-10 21:59:05 · 156 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(28)
Demo演示demo视差贴图视差/高度/位移贴图(黑--白):和法线贴图一样视差贴图能够极大提升表面细节,使之具有深度感。 第一种思路(置换顶点):对于一个quad ,分成约1000个顶点,根据储存在深度贴图中的几何信息对平面特定区域的顶点的高度进行位移或偏移。但计算量太大了 视差贴图:修改纹理坐标使一个fragment的表面看起来比实际的更高或者更低,所有这些仅根据观察方向和高度贴图,不需要额外的顶点数据(例如quad只需6个顶点), 模拟:假设,根据高度贴图模拟了真正的高度,我们视线原创 2024-07-08 23:32:39 · 260 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(27)
格拉姆-施密特。原创 2024-07-03 22:57:19 · 865 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(26)
Demo演示有Shadow无Shadow渲染点光源阴影点光源算法和定向阴影映射差不多,但不同的是,不能用平行光使用的单一视角定向阴影映射生成阴影贴图,应计算每个方向的深度贴图 需要从一个点光源的所有方向渲染场景,普通2D深度贴图不能工作;如果我们使用立方体贴图会怎样?整个场景渲染到立方体贴图的每个面上,把它们当作点光源四周的深度值来采样。过程: 立方体贴图: 正常流程: 从光周围渲染场景6次(需要6个不同的视图矩阵,)for(){} 每次启用立方体贴图的原创 2024-07-01 20:33:33 · 564 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(25)
阴影失真:阴影的不真实感条纹样式:首先理解采样原理:同光的视角下,渲染一张深度图,每个像素,存储同一射线下的深度值(不断更新深度缓冲的结果),即最近片段的深度。 接着,每个片段,T变换到光的视角下,从对应的深度贴图采样,比较自身的深度值,和深度贴图的深度值,、这便是阴影计算的过程 但是,深度贴图受限于分辨率,在距离光源比较远的情况下,多个片段可能从深度贴图的同一个值中去采样, 由于每个像素的深度值,为映射到同一像素范围内片段的中心点,那么映射到同一像素范围内的,某些Fragment.z &g原创 2024-06-30 14:11:36 · 1143 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(24)
如果使用一个所有光线都平行的定向光,使用正交投影矩阵,否则点光源和聚光灯,使用透视投影矩阵(因为投影矩阵实质,是决定可见的范围,以及范围的形状,光空间的范围,即光线的散射组成的范围,被光覆盖的范围)LookAt()计算光(位置+看的方向)的view矩阵(实质,将物体坐标变换到相机坐标的视角下),原创 2024-06-30 14:05:40 · 706 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(23)
【代码】OpenGL3.3_C++_Windows(23)原创 2024-06-28 15:18:44 · 1186 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(21)
遇到模型边缘有锯齿:光栅器将顶点数据转化为片段的方式有关。原创 2024-06-27 15:36:35 · 575 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(20)
【代码】OpenGL3.3_C++_Windows(20)原创 2024-06-27 09:10:09 · 766 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(19)
向量是一个抽象的概念,涉及一系列简单 /复杂的 公式定义。原创 2024-06-25 19:19:32 · 931 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(18)
接口块:glsl彼此传输数据,通过in / out,当更多的变量,涉及数组和结构体 接口块(Interface Block)类似struct,in / out +块名{……}实例名Uniform缓冲对象:首先理解uniform Object: 负责向glsl传入变量/ 数组 / 结构体……,类似于const,这个不能在glsl内部被修改 glsl在GPU上运行,uniform在着色器程序内部是全局的const,意味着不必通过顶点着色器作为中介 Uniform Buffer Object原创 2024-06-23 22:14:51 · 706 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(17)
【代码】OpenGL3.3_C++_Windows(17)原创 2024-06-23 22:09:42 · 827 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(16)
【代码】OpenGL3.3_C++_Windows(16)原创 2024-06-22 17:40:33 · 504 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(15)
定义在glad,c中,extern在glad.h中,按照下面的转化,这样我们就可以在代码中才可以用 gl开头 的函数了。typedef本质定义新的类型,否则仅定义函数指针,新类型 + pfun;函数指针定义:返回类型(*函数名pfun)(参数表) ,函数指针指向函数在内存中的首地址。如何调用:*解引用获取实际的函数,为函数传实参,fun(x);typedef 定义别名,pfun类型为void(*)(void)如何赋值:定义普通函数,为pfun赋值,因此指向了函数的地址,、原创 2024-06-22 17:40:29 · 1170 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(14)
【代码】OpenGL3.3_C++_Windows(14)原创 2024-06-20 07:47:00 · 734 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(13)
dataNULL,原创 2024-06-20 07:39:02 · 608 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(12)
ref。原创 2024-06-17 21:32:22 · 683 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(11)
【代码】OpenGL3.3_C++_Windows(11)原创 2024-06-17 21:29:08 · 1245 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(10)
。原创 2024-06-15 10:25:00 · 833 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(9)
【代码】OpenGL3.3_C++_Windows(9)原创 2024-06-15 10:06:50 · 426 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(8)
【代码】OpenGL3.3_C++_Windows(8)原创 2024-06-13 17:42:38 · 1033 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(7)
缩放是均匀的,法线的方向将保持不变,长度会受影响,但很容易通过单位化修复,原创 2024-06-13 00:04:22 · 1065 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(6)
【代码】OpenGL3.3_C++_Windows(6)原创 2024-06-11 21:05:05 · 558 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(5)
【代码】OpenGL3.3_C++_Windows(5)原创 2024-06-10 18:50:03 · 747 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(4)
st、原创 2024-06-10 11:31:08 · 905 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(3)
下载premake-5.0.0-beta2-windows.zip,必须也拷贝LICENSE.txt许可证才行 premake:编写简单的Lua脚本来描述项目的配置和构建等选项。Premake.exe Tokens:根据不同的平台和配置自动调整自身,和vs中的属性配置差不多,是一个意思。wks工作区,prj项目,cfg项目配置,比如%{cfg.buildcfg}(当前的构建名称(debug||release……)..返回上级目录,"cfg.buildtarget" (dll)or "cfg.linkta原创 2024-06-09 17:21:47 · 851 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(2)
VAO顶点数组(顶点数据和属性配置:当绘制物体绑定相应的VAO,绘制完成解绑):glGenVertexArrays 创建VAO,glBindVertexArray(VAO):到glBindVertexArray(0);索引缓冲EBO:glGenBuffers :glBindBuffer,glBufferData矩形只有4个而不是6个顶点,为了减少开销,存储绘制哪些顶点的索引,和vao一样也在draw前取出glBindBuffer。对于绘制不同的图元,关键是,绑定什么shader,VAO,drawAPI。原创 2024-06-08 15:42:46 · 999 阅读 · 0 评论 -
OpenGL3.3_C++_Windows(1)
OpenGL本身由Khronos维护的规范(Specification),而OpenGL库作为图形API,开发者自行实现(Implement)固定渲染管线(转为2d图形的过程):立即渲染,开发者无法控制OpenGL如何进行计算。3.3后核心模式:提供了更多的灵活性,更高的效率对扩展(Extension)的支持。本质状态机(State Machine),根据OpenGL上下文(Context)状态去执行相应的渲染。原创 2024-06-07 15:53:06 · 612 阅读 · 0 评论 -
c++ ->vscode && unity->vscode
一·配置:MIVC—》vscode下载vs:vs下载项 命令行——编译——运行: MIVC(vs下载)—》vscode-》cl 编译命令 ;MinGW (MINGW下载)-》GNU编译器 -》g++编译命令 ; MIVC环境变量配置分为3部分 编译:cl /EHsc demo.cpp。如果生成 .exe则成功 编译错误:可以将这些添加到cpp根目录中 运行:demo.exe vscode——编译——运行 使用dcp输入code(配置了path)打开vscode 配置插原创 2024-02-26 23:48:51 · 324 阅读 · 0 评论 -
unity 实习记录——包含众多天坑bug(随便写写无排版)
Screen.width,Screen.height - 指的是使用该值的窗口的宽高,比如:在Scene窗口使用指的就是Scene窗口的宽高,在Game窗口使用,即运行编辑器时使用,指的就是Game窗口的宽高,在自定义的Window使用指的就是自定义的Window的宽高。OnPointerEnter触发,或者事件触发,必须在第一层,考虑(画布overlay和ui的顺序(在前面放,越先绘制,越在后面)),前面的才能被检测,这。画布中的anchors描点:物体对齐的位置,分辨率下物体以哪里为基准。原创 2024-03-25 23:39:54 · 779 阅读 · 0 评论