记一次Rider手写UnityShader_非图解基本的光照模型,包含ViewDir_NdotL高光和漫反射等等计算
不错的工具,如下图:
要Rider 2021之后,最新的编辑器,旧版本2020还不行编写Shader
如有更好的编写的工具,请留言(会补上)
一个光照模型(phong)基于下面这个图:
光看公式,可能很难理解 R . V
其实:R . V== (R点乘法V)==RdotV== 反射点乘视线方向
也等于:== Reflect dot ViewDir
其实只要结合上图Specular部分,再根据日常常识判断,反射光最强的地方和视线重合的地方必然产生一个亮点,也就是Specular
所以 Specular == NdotV (Specular 最亮的点,也就是NdotV 值最接近1的点;因为NdotV就是要计算N和V,这2个法线重合率;对于NdotV的计算值: 1是重合,0是90度,-1是反方向)
ViewDir的计算
viewDir = 观察摄像机的位置 - 顶点在世界坐标的位置
half3 view_dir = normalize(_WorldSpaceCameraPos.xyz - i.pos_world);
RdotV
half3 reflect_dir = reflect(-light_dir,normal_dir);
half NdotV = dot(reflect_dir,view_dir);
这里稍微岔开说说:第二种计算高光反射的方法
//2.高光反射half3 H = normalize(lightDir + viewDir);half NdotH = dot(normalDir, H);//1.float3 reflect_dir = reflect(-lightDir, normalDir);half NdotH = dot(reflect_dir, viewDir);
到底哪种比较好呢(1.就是上面的示意图方法)
记一次Rider手写UnityShader_非图解基本的光照模型,包含ViewDir_NdotL高光和漫反射等等计算相关推荐
- Java数据结构之链表、树、堆、图手写双向非循环链表
数据结构.手写双向非循环链表 文章目录 数据结构.手写双向非循环链表 链表 1.链表的分类 2.链表的特点 二.手写双向非循环链表 2.1方法总结 2.2 环境搭建 2.3 add 添加结点 2.3. ...
- 进制转换(二进制,八进制,十进制,十六进制)涵盖整数与小数部分,内容的图片全为手写【详细图解】
各种进制之间的相互转换 1. 各进制表示数 1.1 数码 1.2 基数 1.3 位权 2. 十进制转换为其他进制 2.1 整数部分 2.2 小数部分 3. 其他进制转换为十进制 4. 二进制转换为八进 ...
- 现在论文用手写还是用计算机写,调查显示近半人基本全用电脑写字 八成受访者提笔忘字...
电脑已经成为大多数人的写字工具.(资料图片) 大部分现代人,只有在签名的时候才会拿起笔.(资料图片) "罄竹难书"."鳞次栉比"."沆瀣一气" ...
- 我的Go+语言初体验——Go+语言构建神经网络实战手写数字识别
"我的Go+语言初体验" | 征文活动进行中- 我的Go+语言初体验--Go+语言构建神经网络实战手写数字识别 0. 前言 1. 神经网络相关概念 2. 构建神经网络实战手写数字识 ...
- 利用Tensorflow实现手写数字识别(附python代码)
手写识别的应用场景有很多,智能手机.掌上电脑的信息工具的普及,手写文字输入,机器识别感应输出:还可以用来识别银行支票,如果准确率不够高,可能会引起严重的后果.当然,手写识别也是机器学习领域的一个Hel ...
- 神经网络学习(二)Tensorflow-简单神经网络(全连接层神经网络)实现手写字体识别
神经网络学习(二)神经网络-手写字体识别 框架:Tensorflow 1.10.0 数据集:mnist数据集 策略:交叉熵损失 优化:梯度下降 五个模块:拿数据.搭网络.求损失.优化损失.算准确率 一 ...
- mnist手写数字识别python_Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】...
本文实例讲述了Python tensorflow实现mnist手写数字识别.分享给大家供大家参考,具体如下: 非卷积实现 import tensorflow as tf from tensorflow ...
- 计算机网络手写笔记图片,一键收藏!清华学子这样记笔记!
原标题:一键收藏!清华学子这样记笔记! 还记得前段时间 朋友圈刷屏的清华学子笔记吗 整齐的排版. 清晰的思路无不令人赞叹 那么这些笔记是如何产生的呢? 相信看完下面这段视频 你会有更直观的了解 笔记教 ...
- notability整理归档_ipad记手写笔记软件 Notability的使用方法图解教程
我一直向所有打算用ipad记手写笔记的同学强烈安利notability这款软件,现在就来向大家一一介绍他的功能和用法. 笔记归类 打开notability后先点击右上角建立一个新的笔记,当你创立了几个 ...
最新文章
- R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色、基于显著性阈值进行点的颜色美化、为选定基因添加标签
- Netty时间轮调度原理分析,再不了解你就out啦
- Linux 下, npm i 老是被killed 已杀死
- java ocsp请求_java – 客户端证书上的OCSP吊销
- Vue最全知识点,面试必备(基础到进阶,覆盖vue3.0,持续更新整理,欢迎补充讨论)
- NYOJ-子串和(dp)
- JAVA四行代码制作简单的翻译软件(傻瓜式教程)
- 期刊会议的论文,sci,ieee,ccf ,acm等等他们之间的关系,以及如何能看到这些高质量文章
- 思科模拟器连通服务器网页,思科模拟器主机访问服务器
- markdown删除代码空白行
- “华为”云桌面终端CT3200+显示器、键盘和鼠标
- 雷锋科普:联发科MT6577,国产平民双核手机的芯
- 半导体随机存储器(random access memory)
- win10密码忘了怎么办_笔记本密码忘了怎么办
- Unity 实现回血效果
- 搜索已配对蓝牙 java,java-查找和配对蓝牙设备
- chrome 浏览器的快捷键设置
- 软件压缩卡与硬件压缩卡的比较
- Mybatis 批量操作8种实现总结
- WebSocket区分不同客户端方法
热门文章
- spring实战学习(六)事务管理
- 多链跨链、高可用、高安全性的区块链应用如何落地? 金链盟大赛10强揭晓
- 设计模式学习笔记--享元(Flyweight)模式
- matlab线性回归程序,MATLAB 线性回归
- MFC界面开发进入BCGControlBar v30.5时代,Gauge控件全新升级
- 11月微博博客日均覆盖数TOP10:网易博客升至第七
- android sdl 插件,在Eclipse中配置SDL2.0 for Android
- LENOVO ERAZER Z51 安装固态指南
- 机器学习——霍夫丁不等式【转】
- linux筑基之常用命令