
Unity Shader GUI 扩展一(翻译九)
选中当前材质后,若材质使用的Shader调用了GUI拓展,则会自动读取该Shader的所有属性。通过重实现OnGUI函数后,获取其参数地址就能读取。

选中当前材质后,若材质使用的Shader调用了GUI拓展,则会自动读取该Shader的所有属性。通过重实现OnGUI函数后,获取其参数地址就能读取。

一块完美的镜子是不会发生漫反射,但现在我们自己的Shader包含的光照:环境光、漫反射、高光反射、纹理、阴影,结果看起来蛮好。但是当把Metallic设为1,Smoothness设位0.95,看起来很亮就很不自然了。从下图看尽管颜色是白色但整个表面都是黑色,只有一个很小的高亮点。这个亮点形成1是光源的入射,2朝向观察者的反射。

当一个物体位于光源和另一个物体之间时,它可能会阻止部分或全部光线到达另一个物体。这些光线照亮了第一个物体就不再可能照亮第二个物体。因此,第二个物体有一部不发光,而不发光的区域位于第一个物体的阴影下。我们通常是这样描述:第一个物体投射了一个阴影到第二个物体。

本篇摘要: 扰动法线以模拟凹凸视觉 从高度场计算法线 采样和混合法线贴图 从切线空间转换到世界空间 Bump Map(凹凸贴图): Bump Map Type Describe NormalMap 法线图,映射公式:normal=pixel*2-1,反映射:pixel...

本篇摘要: 使用多个光源渲染 支持多光源类型 使用光照信息 计算顶点光照 了解球谐函数 Include Files 为了给Shader增加支持多个光源,我们需要增加更多Pass通道。但是这些Pass最终包含了几乎完全相似的代码,为了避免代码的重复性,我们可以通过把着色器代码移动到一个CG文件,然后在Shader代码中引用该文件 在文件目录中手动创建一个MyL...

本篇摘要 将法线从对象空间转换为世界空间。 使用方向光。 计算光的漫反射和镜面反射。 调整光的能耗强度。 应用金属工作流程。 学习使用Unity的PBS算法。 法线 Normals 可见光是电磁波谱中人眼可以感知的部分,可见光谱没有精确的范围。我们可以看到电磁波谱的一部分,也就是我们所知的可见光,因为人眼睛可以检测到电磁辐射,而光谱的其余部分对我们来说是不...

本篇摘要: 采样多个纹理 应用细节纹理 处理线性空间中的颜色 使用 splat 地图 纹理合并 贴图在游戏应用广泛,但它们有局限性。无论以何种尺寸显示,它们都有固定数量的像素。如果需要被渲染到很小网格,可以使用mipmap来保持它们的部分细节。但是当渲染到很大的网格上,会变得模糊。我们也不能无中生有地渲染更多额外的细节。本文讨论了一些解决办法。 细节纹理 通常...

本篇摘要信息 顶点变换 Color pixels shader 属性 从顶点传数据至片元函数 查看编译后的shader代码 场景初始化 新建一个默认场景,新建一个圆球。这个默认场景本身进行了大量复杂的渲染,为了更容易的掌握Unity的渲染过程,我们先做一些简化设置,把默认的某些花里胡哨的东西先剥离掉。 剥离天空盒 打开Window-Lighting,查看光...

本篇摘要信息 matrix介绍 matrix推导 模拟transform缩放 旋转 位移功能 可视空间 Unity Shader是怎么知道一个像素该画在哪个位置?下面是先展示一组Cube,一步步分析下去 cube数组 操控...