2,PBR相关网站 http://blog.selfshadow.com/publications/
http://blog.sina.com.cn/s/blog_89d90b7c0102vox7.html(示意图表达原理)
3,插件的网站 http://brdflab.sourceforge.net/
4,关于HDR的像素取颜色网址 http://gl.ict.usc.edu/Data/HighResProbes/
5,很详细的HDR教程网址 http://marcinignac.com/blog/pragmatic-pbr-hdr/
6,很详细的环境效果的网站 https://learnopengl.com/#!Advanced-OpenGL/Cubemaps
7,一个BRDF例子 https://github.com/SaschaWillems/Vulkan/blob/master/data/shaders/pbrbasic/pbr.frag
8,重要!!!这个是一个完整的BRDF例子!!!https://github.com/SaschaWillems/Vulkan/blob/master/data/shaders/pbrbasic/pbr.frag
9,直接显示和可修改的网页shader https://www.shadertoy.com/
10,渲染流程很详细的网页 http://blog.csdn.net/cjneo/article/details/50538033
11,GLSL内置属性的介绍网页 http://blog.csdn.net/zhuyingqingfen/article/details/18313265
12,关于阴影旧版OpenGL的详细教程 http://www.zwqxin.com/archives/opengl/shadow-map-2.html
13,查找OpenGL相关内置属性的文档 https://khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.20.pdf
14,查找OpenGL版本相关函数和属性的网页 https://www.khronos.org/registry/OpenGL-Refpages/gl4/
15,查找OpenGL各种内置属性大全网页 https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/
16,阴影相关基础知识和实现的超级详细的网页 http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-16-shadow-mapping/
17,OpenGL教程 http://wiki.jikexueyuan.com/project/modern-opengl-tutorial/tutorial27.html
18,OpenGL教程2 https://learnopengl-cn.readthedocs.io/zh/latest/04%20Advanced%20OpenGL/05%20Framebuf
///
19, unity模型溶解到飘散的效果(很好很强大的效果!!!) http://blog.csdn.net/puppet_master/article/details/72455945
20,关于游戏的GPU优化(底层) http://gad.qq.com/article/detail/6109
21,关于调试shader用的软件 RenderDoc v0.33
22,杨乐乐博客中关于阴影柔和的网站 http://blog.csdn.net/candycat1992/article/details/8981370
23,很详细的阴影相关理论 http://www.cnblogs.com/liangliangh/p/4131103.html 两个 http://blog.csdn.net/zjull/article/details/11740505
24,githut中Vulkan源码 https://github.com/SaschaWillems/Vulkan/blob/master/data/shaders/pbrbasic/pbr.frag
25,包含外部shader的做法 #pragma include pbrLight.inc.frag
26,关于gl_FragCoord,gl_FragDepth的详细介绍,包括Depth Buffer是怎么计算出来的 http://blog.csdn.net/cremesino/article/details/4132088
gl_FragCoord.z的值是【0.0,1.0】,是表示深度值,gl_FragCoord.z/gl_FragCoord.w 得到当前像素点距离camera的距离,
gl_FragCoord.xy是像素在屏幕上的位置,除以 屏幕的 像素大小 能得到像素点屏幕uv值。
27,关于modelNormalView的计算 mat4 normalMatrix = transpose(inverse(modelView)); 逆矩阵的转置矩阵
28,关于阴影的更多的解释:
在shadowmap里面,其实存的是深度比较之后得到的数据,这个深度比较的公式是在DepthTest的设置里面设置的,然后在计算当前像素的阴影是,用算出的在灯光摄像机下的位置值(vec4并且
保证在【0,1】shadowCoord,用来计算贴图时记得除以shadowCoord/shadowCoord.w)获取深度的比较值,如果当前在texture(shadowMap,shadowCoord.xy).z < shadowCoord.z,则已经超过比较值,就
在阴影里。
相关:http://www.cnblogs.com/aokman/p/3492294.html
相关:http://ogldev.atspace.co.uk/www/tutorial42/tutorial42.html
核心代码:
VS:
const mat4 shadowMatrix = mat4(0.5,0.0,0.0,0.0,
`` 0.0,0.5,0.0,0.0,
`` 0.0,0.0,0.5,0.0,
0.5,0.5,0.5,1.0);
vec4 shadowCoord = shadowMatrix * lightProjectViewMatrix * modelMatrix * vec4(vertexPosition,1.0);
PS:
float shadowDepth = textureProj(shadowMap,shadowCoord);
(或者是 float shadowDepth = texture(shadowMap, shadowCoord.xyz))
(如果是要做模糊操作可以直接取 shadowCoord.xy = shadowCoord.xy + vec2(offset.x,offset.y), float shadowDepth = textureProj(shadowMap,shadowCoord))
29,关于切线空间 切线空间是把对应传进参数的空间坐标转换为纹理空间坐标
一般来说切线空间计算用到三个数据 N,P, UV ,这三个数据可以转换在各种坐标系中(比如常用的世界坐标系或者是ViewMatrix),计算出来的切线空间运用也会不一样
法线贴图存储的颜色值是相对一切线空间的,因为这样的话,一张法线贴图就可以给不同的模型使用 http://www.cnblogs.com/cxrs/archive/2009/10/25/1589515.html
30,关于HDR
HDR简介
HDR的全称是High-DynamicRange(高动态范围)。在此,我们先解释一下什么是DynamicRange(动态范围),动态范围是指图像中所包含的从“最亮”至“最暗”的比值,也就是图像从“最亮”到“最
暗”之间灰度划分的等级数;动态范围越大,所能表示的层次越丰富,所包含的色彩空间也越广。那高动态范围(HDR)顾名思义就是从“最亮”到“最暗”可以达到非常高的比值。
Fresnel菲涅耳方程返回得到的光的比率反射
vec3 fresnelSchlick(float cosTheta, vec3 F0)
{
return F0 + (1.0 - F0) * pow(1.0 - cosTheta, 5.0);
}
例子
vec3 F0 = vec3(0.04);
F0 = mix(F0, albedo, metallic);
vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0);
31,关于shader里面的内联关系 #prahma include pbrLight.inc.frag
在shader中也是可以用#define #ifdef..#endif 做不同部分的区分
///40,关于小技巧:保存喜欢的网页为PDF,直接右键或者ctrl+p,进入打印界面,选择目标打印机-》更改-》另存为PDF,保存为PDF格式
41,屏幕的水波纹效果 :http://blog.csdn.net/puppet_master/article/details/52975666
42,Frame Debugger相关官方简介 : https://blogs.unity3d.com/cn/2014/07/29/frame-debugger-in-unity-5-0/
43,RT相关解释 :http://www.gad.qq.com/article/detail/28180
44,全息投影shader:https://zhuanlan.zhihu.com/p/25725870
45,光照浅墨大神的初级教材 http://www.element3ds.com/thread-128780-1-1.html
46,浅墨大神资料合集:http://blog.csdn.net/zhmxy555/article/list/1
47,次表面散射:http://blog.csdn.net/wolf96/article/details/45618327
48,逆向分析游戏例子:https://zhuanlan.zhihu.com/p/27696865
49,无限草的效果例子,很厉害!:http://gad.qq.com/article/detail/33694
50,关于tex2D用到导数的解释 :http://blog.csdn.net/liu_lin_xm/article/details/4810266
51,关于挺全的OpenGL内置函数 : http://developer.download.nvidia.com/cg/tex2D.html
52,MRT http://blog.csdn.net/ylbs110/article/details/53457576
53,shaderToy 一个学习shader的好地方 http://blog.csdn.net/candycat1992/article/details/44039077
https://www.shadertoy.com
54,关于比较好的资源ShadowGunSample的一些技术的简介,值得学习:https://zhuanlan.zhihu.com/p/27966138
55,经典角色的渲染 dota2角色例子 ,很值得学习:https://zhuanlan.zhihu.com/p/27254617
56,Ubershader的视频教程:http://v.youku.com/v_show/id_XNTY0MTMwMzQ0.html
57,kajiya头发 : http://blog.csdn.net/noahzuo/article/details/51162472
58,地形纹理重复的解决办法 : http://www.iquilezles.org/www/articles/texturerepetition/texturerepetition.htm
59,超级无敌厉害的老外的shader教程:https://www.patreon.com/brackeys
60,图形学相关干货网站:https://www.zhihu.com/collection/112074488
61,大佬的超级有用的shader实例教程(gs):https://zhuanlan.zhihu.com/p/31342156