卡通渲染(描边方案)

news/2024/10/23 15:26:06/文章来源:https://www.cnblogs.com/comradexiao/p/18496474

法线外扩

Pass{Name"OutLine"Cull FrontZWrite OnCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float3 normal : NORMAL;};struct v2f{float4 PositionClip : SV_POSITION;};float _EdgeWidth;float4 _EdgeColor;v2f vert (appdata v){v2f o;float3 PositionView= UnityObjectToViewPos(v.vertex);float3 NormalWS=UnityObjectToWorldNormal(v.normal);float3 NormalView =normalize(mul((float3x3)UNITY_MATRIX_V, NormalWS));//相机空间法线PositionView += NormalView * _EdgeWidth*0.001;o.PositionClip=mul(UNITY_MATRIX_P,float4(PositionView,1.0));return o;}half4 frag (v2f i) : SV_Target{return _EdgeColor;}ENDCG}

基于模版测试的法线外扩

//Base Pass中确认模版值
Stencil
{Ref 1Comp AlwaysPass Replace
}
//OutLine Pass
Pass{Stencil{Ref 1Comp NotEqual}CGPROGRAM#pragma vertex vert#pragma fragment fragfloat _EdgeWidth;fixed4 _EdgeColor;struct a2v {float4 vertex : POSITION;float3 normal : NORMAL;}; struct v2f {float4 pos : SV_POSITION;};v2f vert (a2v v) {v2f o;float4 pos = mul(UNITY_MATRIX_MV, v.vertex); float3 normal = mul((float3x3)UNITY_MATRIX_IT_MV, v.normal);  normal.z = -0.5;pos = pos + float4(normalize(normal), 0) * _EdgeWidth*0.01;o.pos = mul(UNITY_MATRIX_P, pos);return o;}float4 frag(v2f i) : SV_Target { return float4(_EdgeColor.rgb, 1);               }ENDCG}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/820673.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

法线贴图

法线贴图 在三维计算机图形学中,法线贴图(英语:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高…

有道精品课视频课件课程下载工具,如何在电脑端下载有道精品课视频课程课件资料到本地?

一. 安装有道精品课课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/youdao_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无…

销冠教你如何转化观望客户

在销售实践中,常会遇到这样的场景:客户对我们的提案表现出极大的兴趣,但在执行阶段却显得迟疑,频繁表示“还需观望,再考虑”。这种态度不仅拖慢了项目进度,甚至可能导致项目完全停滞,从而错失宝贵的发展机遇。面对这一挑战,销售人员该如何有效应对?以下是一则来自销售…

Re:从零开始的pwn学习(栈溢出篇)

ctf栈溢出pwn题入门写在前面:本文旨在帮助刚接触pwn题的小伙伴少走一些弯路,快速上手pwn题,内容较为基础,大佬轻喷。本文默认读者明白最基础的汇编指令的含义,并且已经配置好linux64位环境,明白基础的Linux指令。 栈,栈帧与函数调用 我们知道,在数据结构中,栈是一种先…

ssts-hospital-web-master项目实战记录二:版本管理-git

记录时间:2024-10-23 1.VSCode打开项目 (1)文件→打开文件夹,对应的英文为File→Open Folder(2)打开效果如下 2.VSCode本地项目托管(1)打开终端:Terminal→New Terminal(2)生成仓库:git init 输入 git命令 git init (3)添加到暂存区:git add . 输入 git命令 gi…

Azure语音转文本服务:智能识别,中英文无缝转换

作用:说话的人说的是英文,那么转换成的文本就是英文的,同理,说话的人说的是中文,那么转换成的文本也就是英文的。 完整可跑通的代码很简单: import azure.cognitiveservices.speech as speechsdkdef recognize_from_microphone(filename):# This example requires enviro…

矩阵运算

矩阵与矩阵 加减 只有同型矩阵能相加减矩阵的数乘矩阵的乘法 多矩阵相乘计算从右往左依次计算。如ABC,先算BC,再算A与BC的结果。 矩阵相乘的前提M[mn] mul O[ij]; n必须等于i; 如:M54与O42能相乘。

ssts-hospital-web-master项目实战记录一:创建项目

记录日期:2024-10-23 1.找到存放项目的文件夹,打开cmd命令2.使用官方脚手架Vite创建项目 (1)输入npm命令 npm create vite@latest(2)输入项目名称:ssts-hospital-web-master (3)选择框架:Vue(4)选择变体(使用的编程语言):TypeScript(5)构建完成,提示我们用三…

叉乘

叉积 Cross product叉积与两个初始向量正交。 方向可由左右手定则判断(取决于左/右手坐标系)。 用于构建三维坐标系。满足的性质不满足交换律叉积计算(笛卡尔坐标下)可写成矩阵 叉积在图形学的应用确定在坐标轴的 左/右。 确定在三角形的 内/外。(ABXAP BCXBP CAXCP 叉积结果均…

腾讯课堂视频课件课程下载工具,如何在电脑端下载腾讯课堂视频课程课件资料到本地?

一. 安装腾讯课堂课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/keqq_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止下…

MySQL 回收表碎片实践教程

在 MySQL 数据库中,随着数据的增删改操作,表空间可能会出现碎片化,这不仅会占用额外的存储空间,还可能降低表的扫描效率,特别是一些大表,在进行数据清理后会产生大量的碎片。本篇文章我们一起来学习下如何进行碎片回收以及相关注意点。前言: 在 MySQL 数据库中,随着数据…