搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
凡人多烦事01
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
国产系统软件网站_国产app网站
2
安装docker时,遇到Loaded plugins...怎么办
3
解决Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: ‘f:\program files\p
4
Docker本地部署Drupal内容管理框架并实现公网远程访问_本地管理框架
5
OSI与TCP/IP各层的结构与功能及协议_tcp/ip和osi分层模型每层对应的协议
6
SpringBoot全局异常处理 | Java
7
产品经理之Axure的元件库使用&详细案例_axure 移动端元件库
8
【干货分享】前端面试知识点锦集01(HTML篇)——附答案_从下列选中中选出不同的一个?a
b
9
Python自动操作 GUI 神器——PyAutoGUI_python判断鼠标在主屏还是副屏
10
行人重识别(4)——行人重识别(基于视频)综述
当前位置:
article
> 正文
给物体边缘加高光轮廓的办法_高光画在边缘上
作者:凡人多烦事01 | 2024-02-18 19:51:22
赞
踩
高光画在边缘上
1.边缘光方法(Rim Light):
Unity官方教程里有例子,其中核心是这两句代码:
half rim = 1.0 - saturate(dot (normalize(IN.viewDir), IN.worldNormal));
o.Emission = _RimColor.rgb * pow (rim, _RimPower);
IN.viewDir是当前视角向量,IN.worldNormal是物体的法线。dot是计算视角和法线的点积,等于视角和法线夹角的cos值,如下图:
Cos的值域是1-0,1-cos就成了0-1,在夹角90度时达到最大值,正好用来模拟侧光的强度(与视角成90度的部分光线最强,就是边缘光了)
把这个值的变化率用一个pow函数(rim的_rimPower次方)进行放大,就能强化边缘发亮的效果。比较一下:
没有经过Pow放大变化率的边缘光,cos函数的变化是比较平缓的,造成大片区域被染色。
经过Pow函数放大变化率,就有了边缘发亮的效果。这个图大致体现了放大前后变化率的曲线:
这种边缘光在复杂几何形体的时候效果还是不错的。
但是在平直的物体上,边缘光就不见了
到了方形物体,几乎很难看见了
很好理解,正方形每个面法线都是一个方向的,没法体现出变化和轮廓了。
另外这种方法在描绘凹的几何体时,凹的部分(包括法线贴图造成的凹凸)的边缘也都会被画出来,并不是真正意义上的边缘轮廓,就是一种侧光效果。
该方法的好处是简单,只要把官方的shader改写,加上计算边缘光的几句,就能实现。要显示的时候动态切换shader就可以。基本不需要代码干预,效率高。
2.单个物体轮廓渲染方法
这个方法实现比较复杂,只能介绍大致思路:
1.把要渲染轮廓的物体放在一个单独的层里
2.在层里设置一个disable的摄像机,culling mask是渲染物体所在层。
3.主摄像机保持culling mask是everything
4.生成1个renderTexture
5.把那个disable的辅助摄像机用RenderWithShader方法,指定一个单色渲染的shader(只需要轮廓,不需要光照计算)渲染物体的轮廓到一个renderTexture
6.继续用单色Shader,用Unity自带Blur类似的方法,把物体轮廓图上下左右移动几个像素,叠加在一起,得到一个比原来轮廓大,边缘模糊的轮廓图,存到一个临时renderTexture
7.把大的轮廓图和原始轮廓图叠加,把中间清晰轮廓部分消除掉,就能得到一个完整带透明度的轮廓图。
8.在主摄像机的OnRenderImage里,把这个透明轮廓图和主摄像机渲染的图像进行alpha混合,就能产生一个完整并且不被遮挡的轮廓效果了。
效果如图:
明显效果比侧光好多了。不过这种方法开销比较大,而且需要很多代码的支持。
附上一个小Demo,包含了上述两种方法。
鼠标可以控制镜头平移、旋转、缩放。鼠标划过物体显示侧光效果,点击物体显示清晰轮廓效果,再次点击效果消除。
可以设置边缘颜色 和宽度 模糊度
目标按照材质进行分组以方便处理
变换成细线 绿色
---------------------------------------------------------------------------------------------------------------------
优化了代码,减少了一组RenderTexture,这个东西还是很耗资源的,减少了计算的次数。
另外增加了一组模糊、裁剪一次完成的shader,资源上更节省,不过边缘较模糊。
两种算法效果比较:
多次模糊再裁剪的算法,边缘光滑,模型的锯齿在边缘线被光滑了,开销略大
一次同时模糊、裁剪算法,边缘较模糊,锯齿也被等比放大,但开销较省。
根据需要使用。
总体上因为是全屏效果,与被渲染物体数量无关,所以基本上显示轮廓物体的多少不会影响效率。
附件里包含两种方法的代码和shader。RimLight方法一个shader就能对应一种材质效果,不需要代码支持。后一种方法需要代码加shader,类似官方的Image Effect效果。
outline.unitypackage
(3648 K)
(来自:http://game.ceeger.com/forum/read.php?tid=3592)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/凡人多烦事01/article/detail/110155
推荐阅读
article
carla
安装之
clang
版本问题_
alternative
path
/usr/lib/
llvm
-8...
carla
要求的是
clang
8.0,我最一开始没有关注到这个。使用的方法是sudo apt-get install ll...
赞
踩
article
ubuntu
下如何
查看
显卡
及
显卡
驱动
...
该版本号并不是你已经安装了该版本的 CUDA 的意思,而是说此
显卡
最大支持的CUDA版本号。nvidia-driver-...
赞
踩
article
CRM
和
ERP
的区别与联系_
erp
和
crm
...
ERP
是企业资源计划的英文缩写(Ent
erp
rise Resource Planning)
CRM
是客户关系管理的英文缩写...
赞
踩
article
2
万常用
英语单词
词频
统计
...
常用
2
万
英语单词
中,各种长度英文单词数量
统计
单词长度 单词数量18 -
2
16 -
2
15 - 514 - 3313 ...
赞
踩
article
[
shader
]
边缘
自定角度
高光
,
描边
,闪烁
_
unity
边缘
高光
描边
...
Unity
边缘
高光
跟随摄像机旋转+
描边
透明的
shader
。
_
unity
边缘
高光
描边
unity
边缘
高光
描边
...
赞
踩
article
OpenAI
的
Sora
技术
对于
主题
展馆设计的影响...
然而,在享受
技术
带来的便利和创新的同时,我们也需要关注其带来的挑战和问题,并采取相应的措施加以解决。其中,
OpenAI
的...
赞
踩
article
元素
嵌套
_什么是
元素
嵌套
...
元素
嵌套
1. 行级
元素
可以套行级
元素
2. 块级
元素
可以套任何
元素
3. a标签不套a标签注意:p标签里不能套块级
元素
(会被...
赞
踩
article
html5
表单验证_
setcustomvalidity
pattern
...
h5新增的表单验证都存在了ValidityState对象中,该对象是通过validity 属性获取的,该对象有11个属性...
赞
踩
article
线性代数
第二章
矩阵
及其
运算
详解_
线性代数
矩阵
运算
...
线性代数
第二章
矩阵
及其
运算
详解_
线性代数
矩阵
运算
线性代数
矩阵
运算
一.线性方程组和
矩阵
1.概念...
赞
踩
article
PS
的
常用
快捷方式
有哪些?...
这只是一些
常用
的
Photoshop
快捷方式
示例,Photoshop 中有大量
的
功能和工具,每个工具和功能都可能有自己...
赞
踩
article
使用
Ruoyi
的方法(
数据库
的创建、YML
文件
的修改、
前端
的导入和启动、云
服务器
简介、
NGINX
配置...
本次课程
部署
采用云
服务器
,如果是想观看
部署
在本机,以前的视频讲过。找找我的主页即可。
部署
在云
服务器
和
部署
在本地虚拟机没有...
赞
踩
article
前端学习笔记之——
嵌入
元素
_
获取
html
内嵌
元素
...
嵌入
元素
1、
嵌入
图片img
元素
允许我们在 HTML 文档中
嵌入
图像。
元素
img
元素
类型短语
元素
允许具备的父
元素
任何可能...
赞
踩
article
高校
数据
可视化
(智慧校园)
_
学校
可视化
...
教育
数据
可视化
大屏能够展示和分析很多
数据
,比如:在校生
数据
分析、招生
数据
分析、就业
数据
分析、教职工
数据
分析,科研
数据
分析...
赞
踩
article
词频
统计
排序
的
几种方法(手写
pandas
NLTK
)_
词频
排序
...
#在list中
词频
统计
小程序分析'''利用dict将list中
的
词频
统计
一kv
的
形式展现出来'''ls = ["综合",...
赞
踩
article
100
天
,
3
个
版本
,
他们让
营销
AIGC
起来了...
“18权益加磅
,
省的不止一点点!”打开京东金融APP
,
一则热闹的
营销
头图跃入眼帘
,
你可能意识不到
,
这则堪比设计师水准的物...
赞
踩
article
selenium
处理
获取
input
标签中
的
value
值_
selenium
获取
input
的
value
值...
imput是html中
的
一个标签,该标签有很多属性,在处理自动化时,通常我们需要校验这个
value
值,那么如果按平时
的
i...
赞
踩
article
Ubuntu18.04
安装
教程
(
小白必备
,
非常全面)...
Ubuntu18.04
详细
安装
教程
以及网卡配置
,
小白试用_ubuntu18.04
安装
教程
ubuntu18.04
安装
教程
...
赞
踩
article
vscode
1.86
无法
远程连接
waiting
the server
log
_
vscode
在2024...
vscode
升级到最新的
1.86
版本
后,
无法
远程连接服务器Remote SSH,在
log
中提示如下:glibc的
版本
好像...
赞
踩
article
SVN
清理失败 (
cleanup
) 的解决方法_
svn
cleanup
pristine
text
...
在版本控制下,如果对一个文件过多的操作,就有可能使
SVN
的
cleanup
功能失效,从而报如下错误:Previous op...
赞
踩
article
表单
H5
验证
_h5
表单
验证
...
h5
表单
正则_h5
表单
验证
h5
表单
验证
## 2 正则表达式 ### 2.1 通配符 | **...
赞
踩
相关标签
ubuntu
gpu
nvidia-smi
显卡查看
CRM
ERP
Unity
Shader
人工智能
大数据
媒体
物联网
旅游
html5
photoshop
数据库
sql
html
信息可视化
数据分析
高校数据可视化
教育数据可视化
AIGC