自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 OpenGL shader文件 include

需求:写glsl shader文件写多了,有一些公共的函数要在不同shader文件重复写一遍,相当烦!因此想include一个公共的shader文件,这个文件存一些公共函数。实现这个功能有两个思路:要么在编译shader文件时处理宏定义include,同时要有自己一套的文件系统,shader文件里面include哪个文件,就去搜索自己的valid路径下是否存在这个文件,如果存在,读这个文件成字符...

2019-11-24 22:36:00 2799

转载 PBR 第一章 介绍

1. 渲染的方法2. 真实感渲染 和 光线追踪算法2.1 相机 Camera2.2 光线和物体的求交 ray-object intersection2.3 光的分布 light distribution2.4 可见性 Visibility2.5 表面散射 surface scattering2.6 间接光传播 Indirect light transport2.7 光的传播...

2018-08-21 10:50:29 381

转载 HDR

1. HDR1.1 浮点帧缓冲1.2 色调映射 Tone mapping1.3 HDR扩展1. HDR默认情况下,亮度和颜色值在存储到帧缓冲区时会被限制在0.0和1.0之间。这句看起来没什么错误的语句会使我们一直将亮度与颜色的值设置在这个范围内,试图使它们适合场景。这样的限制,也能给出还不错的效果。但是如果我们在这么一个特定的区域中,有多个光源使得最终颜色值的...

2018-08-20 20:18:02 1394

转载 高级GLSL

1. 高级GLSL1.1 GLSL的内建变量1.1.1 顶点着色器 内建变量1.1.1.1 gl_PointSize1.1.1.2 gl_VertexID1.1.2 片段着色器 内建变量1.1.2.1 gl_FragCoord1.1.2.2 gl_FrontFacing1.1.2.3 gl_FragDepth1.2 接口块 Interface block1....

2018-08-20 20:16:39 1836

转载 高级光照-Blinn-Phong光照模型

1. Blinn-Phong光照模型1.1 实现代码1.2 总结1. Blinn-Phong光照模型在基础光照教程中,简单的介绍了Phong光照模型(Phong lighting model),它给我们的场景带来基本的现实感。Phong模型看起来还不错,但本章我们把重点放在一些细微差别上。注意这里的前提是使用的是点光源。Phong光照很棒,而且性能较高,但是...

2018-08-19 00:19:36 4461

转载 基础光照-Phong 光照模型

1. Phong 光照模型1.1 环境光照 Ambient Lighting1.1.1 实现代码1.2 漫反射光照 Diffuse Lighting1.2.1 法向量 及实现代码1.2.2 计算漫反射光照1.2.3 法向量 注意事项1.3 镜面光照 Specular Lighting2. 总结1. Phong 光照模型现实世界的光照是极其复杂...

2018-08-18 16:48:38 21758 3

转载 投光物(光源类型)

1. 投光物 Light Caster1.1 平行光 Directional Light1.1.1 实现代码1.2 点光源 Point Light1.2.1 衰减 attenuation1.2.2 选择正确的值1.2.3 实现衰减1.2.4 实现代码1.3 聚光灯 Spotlight1.3.1 手电筒1.3.2 平滑/软化边缘 smooth/soft edg...

2018-08-18 16:46:55 653

转载 材质 & 材质贴图

1. 材质 Material1.1 设置材质1.2 光的属性1.3 不同的光源颜色1.4 总结2. 材质贴图2.1 漫反射贴图 Diffuse Map2.2 镜面光贴图 Specular Map2.2.1 对镜面光贴图进行采样2.3 总结1. 材质 Material在现实世界里,每个物体对光会产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶...

2018-08-18 16:44:49 2525

转载 OpenGL图形渲染管线

1. OpenGL图形渲染管线1. OpenGL图形渲染管线在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过...

2018-08-18 16:42:17 512

转载 顶点对象 VAO VBO EBO

1. 顶点对象1.1 顶点缓冲对象 Vertex Buffer Object, VBO1.1.1 VBO的使用1.1.2 链接顶点属性1.2 顶点数组对象 Vertex Array Object,VAO1.2.1 VAO的使用1.3 索引缓冲对象 Element Buffer Object, EBO1.3.1 EBO的使用1.4 小总结1. ...

2018-08-18 16:41:32 390 1

转载 帧缓存对象 Frame Buffer Object

1. 概述2. 创建FBO3. 创建 帧缓存附加图像 (framebuffer-attachable image)3.1. 创建 纹理图像 (texture images)3.2. 创建 Renderbuffer图像 (Renderbuffer images)4. 绘制到纹理(Render to texture)5. 使用后处理效果(postprocessing)...

2018-08-18 16:39:08 3514

翻译 纹理 Texture

[Toc] 1. 纹理的理论纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。因为我们可以在一张图片上插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。为了能够把纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部...

2018-08-18 16:35:49 881

翻译 深度测试 & 模板测试

1. 深度测试 Depth testing1.1 深度测试函数 Depth test function1.2 深度值精度 Depth value precision1.3 深度缓冲的可视化1.4 深度冲突1.4.1 防止深度冲突2. 模板测试 Stencil testing2.1 模板函数 Stencil function2.1.1 函数 glStencilFunc...

2018-08-18 16:33:26 11781 5

翻译 面剔除 Face culling

1. 面剔除 Face culling1.1 环绕顺序 Winding Order1.2 面剔除 Face culling1. 面剔除 Face culling尝试在脑子中想象一个3D立方体,数数你从任意方向最多能同时看到几个面。如果你的想象力不是过于丰富了,你应该能得出最大的面数是3。你可以从任意位置和任意方向看向这个球体,但你永远不能看到3个以上的面。所以...

2018-08-18 16:29:38 1311

翻译 立方体贴图 Cubemap

1. 立方体贴图 Cubemaps1.1 创建立方体贴图2. 天空盒 Skybox2.1 加载天空盒2.2 显示天空盒2.3 优化2.4 整体代码3. 环境映射 Environment mapping3.1 反射 reflection3.2 折射 refraction4. 动态环境贴图 Dynamic environment maps1....

2018-08-18 16:27:18 4580

原创 解决glfw的帧率固定的问题

1. 遇到的问题2. 解决方法1. 遇到的问题 在使用glfw时,需要显示FPS等性能数据时,渲染后帧率一直保持在60fps,即使渲染一个简单的正方形,其帧率仍保持在60fps左右2. 解决方法在google后发现是垂直同步(V-Sync) 的问题,垂直同步的作用是让显卡的运算和显示器刷新率一致以稳定输出的画面质量,就是说显示器能够支持的刷新率...

2018-08-09 22:23:26 4214 1

翻译 Gamma校正

1. Gamma 值2. Gamma校正2.1 使用OpenGL内建的sRGB帧缓存2.2 在片元着色器中自己应用gamma校正3. sRGB纹理3.1 使用 与 实验结果4. 衰减 Attenuation1. Gamma 值当我们计算出场景中所有像素的最终颜色以后,我们需要把它们显示在监视器上。过去,大多数监视器是阴极射线管显示器(CRT)。这些监视器...

2018-08-08 11:37:12 7245 1

翻译 视差贴图

1. 视差贴图 Parallax Mapping1.1 视差贴图 理论介绍1.1.1 位移贴图 — Displacement Mapping1.1.2 法线贴图 – Normal Mapping1.1.3 视差贴图 — Parallax Mapping1.2 视差贴图 代码实现1.3 示例代码1.4 存在的问题2. 浮雕贴图 Relief Mapping2.1 浮...

2018-08-08 11:31:39 2591

转载 凹凸贴图

1. 凹凸贴图与其改进1.1 凹凸贴图 Bump Mapping1.2 移位贴图 Displacement Mapping1.3 法线贴图 Normal Mapping1.4 视差贴图 Parallax Mapping1.5 浮雕贴图 Relief Mapping1. 凹凸贴图与其改进凹凸贴图(Bump Mapping) 思想最早是由图形学届大牛中的大牛Jim ...

2018-08-08 11:23:36 3559

翻译 法线贴图

1. 法线贴图1.1 切线空间 – Tangent space1.1.1 手动计算切线向量和双切线向量1.2 着色器中的法线贴图1.2.1 使用TBN矩阵将向量从切线空间变换到世界空间1.2.2 使用TBN矩阵的逆将向量从世界空间变换到切线空间1.3 提升效果的技巧 — 切空间平滑1.4 小总结2. 法线贴图的制作3. 示例代码为了提高模型的表现...

2018-08-08 11:19:58 1941

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除