首页 > 其他分享 >卡通渲染(描边方案)

卡通渲染(描边方案)

时间:2024-10-23 15:23:21浏览次数:6  
标签:normal 渲染 vertex pos v2f 描边 float4 卡通 float3

法线外扩

Pass
    {
        Name"OutLine"
        Cull Front
        ZWrite On
        CGPROGRAM
        #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 1
    Comp Always
    Pass Replace
}
//OutLine Pass
Pass
    {
        Stencil
        {
            Ref 1
            Comp NotEqual
        }

        CGPROGRAM

        #pragma vertex vert
        #pragma fragment frag

        float _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
    }

标签:normal,渲染,vertex,pos,v2f,描边,float4,卡通,float3
From: https://www.cnblogs.com/comradexiao/p/18496474

相关文章

  • 渲染的基础概念
    所有我们能看到的东西都是需要进行渲染的。比如:天空盒,场景模型,角色模型,特效……颜色空间Gamma空间:移动端,页游,HoloLens,性能比较低的硬件设备。Linear空间:PC端,主机端。渲染模式Opaque(不透明):用于渲染所有不透明的物体,这类物体在场景中是最多的。60%的比例。Transparen......
  • 渲染管线
    应用阶段这一阶段由CPU处理,主要任务是为接下来GPU的渲染操作提供所需要的几何信息,即输出渲染图元(rendingprimitives)以供后续阶段的使用。渲染图元就是由若干个顶点构成的几何形状,点,线,三角形,多边形面都可以是一个图元。数据的准备设置渲染状态渲染状态包括着色器(Shader......
  • 卫浴3d渲染动画怎么做?
    在如今3D渲染技术已成为卫浴行业展示产品和设计的重要工具。通过3D渲染动画,设计师和制造商能够将他们的创意转化为逼真的视觉体验,让消费者在产品上市前就能预览最终效果。这种技术的应用不仅提升了产品的市场吸引力,还极大地提高了设计效率和客户满意度。那么,如何制作一部高质量的......
  • 3D渲染所需的关键组件和技能,及云渲染技术帮助!
    3D渲染的世界中,一个明确定义的过程对于实现令人惊叹的成果至关重要。本节探讨了影响渲染工作流程的关键组成部分,从高分辨率输出所需的时间投入到掌握行业标准软件所需的多样化技能集,为成功项目奠定了基础。一、3D渲染的所需关键工作1、时间投入和工作流程效率实现高质量的渲染......
  • Unity Shader深度图的应用,手把手教你写出可以正确计算并且渲染出二次元角色边缘光的着
    梦开始的地方相信大家看番的时候,都注意到了,很多时候,在角色周围有一圈光晕旧版《魔术快斗》剧照《新蔷薇少女》剧照 我们将这种光晕,称之为边缘光边缘光是描边的一种,动画师之所以加入边缘光,是为了凸现角色轮廓,使得角色区别于背景不少游戏也有着这种边缘光游戏《鸣潮》......
  • 当IT技术总监面试问:描述你如何实现服务端渲染(SSR)以及它对SEO和性能的影响?
    服务端渲染(SSR)是一种在服务器上渲染HTML页面,然后将完成的页面发送给客户端的网页渲染技术。这种方法与客户端渲染(CSR)相对,后者通常是在浏览器中执行JavaScript来动态生成页面内容。如何实现服务端渲染(SSR):1.**选择框架**:  选择支持SSR的框架,如React(Next.js)、Vue(Nuxt.js)、A......
  • 云渲染与3D视觉效果如何影响珠宝行业!
    3D渲染技术在珠宝行业的应用正迅速增长,2023年已带来数亿元收益,预计2024年将继续保持增长态势。珠宝品牌正越来越多地采用3D可视化技术来提升产品展示,以在激烈的市场竞争中占据优势。云渲染技术不仅提升了渲染效率,还降低了成本,同时保持输出质量。这种技术尤其在珠宝设计领域表现出......
  • 用C++编写一个简单的游戏引擎:从游戏循环到物理与渲染的全面解析
    解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界构建一个基础的2D游戏引擎是一项富有挑战性但极具学习价值的任务。本文将通过从零开始的方式,逐步讲解如何使用C++开发一个简单的游戏引擎。内容涵盖了游戏引擎的核心架构设计,包括游戏循环、物理引擎和图形渲染等......
  • JavaWeb基于ssm的校园一卡通密钥管理系统(001)
    获取源码请滑到最底部访问官网项目配套调试视频和相对应的软件安装包1、项目描述具体请看视频演示2、项目开发工具开发工具:Idea或Eclipse数据库:MysqlJar包仓库:Maven前端框架:Vue2后端框架:SSM3、项目图片4、演示视频JavaWeb基于ssm的校园一卡通密钥管理系统(001)......
  • Redshift渲染的四个小技巧,实现照片级效果!
    在进行3D项目工作时,有时需要提供逼真的渲染结果。有许多渲染器可以简单地实现这一点,但像Redshift这样的渲染器并非如此。你需要关注更多的设置,本文将介绍如何在Redshift中获得逼真的渲染效果,以及如何通过云渲染技术进一步提高渲染效率和质量。一、Redshift中获得逼真渲染效果的......