本文共 884 字,大约阅读时间需要 2 分钟。
本文概述下Shader的相关基本概念,后期会随着自己理解的提升进行持续补充。
三大 Shader 编程语言:
Shader Language:类似C++的高级语言。 1.基于 OpenGL 的 OpenGL Shading Language : GLSL。 2.基于 DirectX 的 High Level Shadnig Lauguage : HLSL。 3.基于 NIVDA 的 C for Graphic : CG。 (CG在GLSL和HLSL的上层,算是"兼容")Shader 坐标空间:
1.模型空间(model space) 建模人员自己设置的坐标,方便建模人员开发。2.世界坐标(world space)
游戏三维世界的坐标,宏观意义上最大的空间。3.观察坐标(view space)
也叫摄像机空间,摄像机内看到的坐标系。(摄像机的正前方是-z轴方向)4.裁剪空间(clip spcae)
也叫齐次裁剪空间,根据视锥体决定,在外部的图元将会被剔除,在内部的就会保留,而在边界相交的就会被裁剪。(正交投影和透视投影)5.屏幕空间(screen space)
把视锥体投影到2D坐标,得到真正的像素位置。透明效果:
实现透明效果,要在渲染模型中控制它的透明通道。 1.透明度测试(Alpha Test) 如果一个片元的透明度低于某个阈值,就会被舍弃。被舍弃的片元就不会再进行任何处理;如果没有被舍弃,就和不透明的物体处理方式一样。2.透明度混合(Alpha Blending)
使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲区中的颜色值进行混合,得到新的颜色,可以得到半透明效果。关闭了深度写入,没有关闭深度测试,需要注意渲染顺序。转载地址:http://bjuhz.baihongyu.com/