| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> UnityShder兰伯特光照 -> 正文阅读 |
|
[游戏开发]UnityShder兰伯特光照 |
公式概念 漫反射=方向光color*漫反射纹理color*强度 点乘的公式=|a|.|b|.cos(弧度),当a和b模=1,求出来的就是cos 强度=法线和光线向量的夹角的cos决定,cos的值是-1-1,max(0,法线.光线) 给限制在0-1的范围 着色器渲染流程 在顶点着色器计算该顶点的光照color值, 顶点着色器将color,在几何阶段的三角形遍历阶段,将该Color的进行线性插值, 然后传给片源着色器 函数介绍 _LightColor0.rgb? ? ? 方向光默认Color,需要引入??#include "Lighting.cginc"?? ? ? ? ? ? ? ? UNITY_LIGHTMODEL_AMBIENT.xyz? ? ?环境光Color,UnityShder内置 _LightColor0.rgb? ? ? ? ? ? ? ? ? 方向光Color,UnityShder内置
着色器渲染 顶点着色器将法线线性查之后传给片源着色器,从片源着色器进行计算 从片源着色器计算的计算量肯定是很大程度大于顶点着色器计算的 好处是效果好于顶点着色器 纹理采样 概念 美术通过uv展开技术,将顶点与纹理进行绑定。 获取顶点着色器获取顶点对应的uv位置,传给片源着色器后进行插值,得到每个片元的对应的uv位置 通过uv采样对应的纹理 纹理采样代码
这两句代码意思的相同的,每一个Texture都对应一个 xy表示的是缩放所以要相乘,zw表示的是偏移所有要相加
片源着色器的到正确的uv后,直接进行采样即可
半兰伯特?
将强度控制再0.5-1的范围 ?效果示例 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/17 6:04:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |