首页 > 其他分享 >通过半兰伯特实现颜色渐变Shader

通过半兰伯特实现颜色渐变Shader

时间:2023-02-18 20:24:27浏览次数:43  
标签:1.0 兰伯特 0.0 渐变 Shader v2f float4 position ControlDegree

 

代码:

Shader "Unlit/P_Gradient" {     Properties{         _BasicColor("基础颜色",Color)=(1.0,1.0,1.0,1.0)         _ControlDegree("控制强度",Color)=(1.0,0.0,0.0,0.0)     }     SubShader     {         Pass         {             CGPROGRAM             #pragma vertex vert             #pragma fragment frag             #include "UnityCG.cginc"             float4 _BasicColor;             float4 _ControlDegree;             struct a2v{                 float4 position :position;                 float3 normal :normal;             };             struct v2f{                 float4 sv_position :sv_position;                 float3 texcoord :texcoord0;             };             v2f vert(a2v a){                 v2f v;                 v.sv_position=UnityObjectToClipPos(a.position);                 v.texcoord=UnityObjectToWorldNormal(a.normal);                 return v;             }             float4 frag(v2f v) :SV_Target{                 float3 IDir=_WorldSpaceLightPos0.xyz;                 float4 GradientDegree=_ControlDegree*(0.5+0.5*dot(v.texcoord,IDir));                 float4 FinalColor=_BasicColor*(float4(1.0,1.0,1.0,1.0)-_ControlDegree)+GradientDegree;                 return FinalColor;             }             ENDCG         }     } }

标签:1.0,兰伯特,0.0,渐变,Shader,v2f,float4,position,ControlDegree
From: https://www.cnblogs.com/vusblog/p/17133469.html

相关文章

  • 原生 js 渐变图例
    https://codepen.io/hihust-knighterrant/pen/YzOPLgB渐变色图例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"c......
  • Unity shader算法收集之缩放uv
    缩放uv算法代码如下:1half2ScaleUVsByCenter(half2uv,floatscale)2{3float2center=float2(0.5,0.5);4return(uv-center)/scale+center;5......
  • [Unity URP]原神 Shader渲染还原 Part1 面部阴影
    声明本文章的代码仅作为学习交流使用//面部阴影half3faceShadow;#ifFACESHADOW_ONfloat3Front=mul(unity_O......
  • echarts渐变色可点击半圆图
      如上所示,用饼图改一个半圆图,同时半圆每个item设置不同的颜色。  首先需要搞出来一个echarts的容器,如下图所示,这玩意和echarts的官网搞个Div效果是一样的,只不过封装......
  • Unity Shader 后处理(1):景深效果
    景深的产生原因:摄像机成像时,通过棱镜聚焦,光线通过棱镜打在传感器平面上。不同物距的成像结果也会不一样,只有焦平面上的物体上的任意一点,通过过棱镜后会在传感器平面上聚焦......
  • Unity Shader 风格化水体渲染
    风格化渲染(stylizedrendering)的具体定义我没能找到,但是在一些文章中,风格化渲染就是指那些非写实的(NonPhotorealisticRendering)渲染。其中卡通风格的渲染(ToonShad......
  • Unity Shader 真实感水体渲染
    这两周用UnityShader做了点简单的水体渲染,有真实感的也有非真实感的,打算这几天总结整理一下贴出来。毛星云大牛有一篇详细的真实感水体渲染介绍:https://zhuanlan.zhihu.c......
  • threejs 第二十用 shaderMaterial
    自己写shader就得用这个材质需要vertexfragment先<scriptid="vertex-Shader"type="x-shader/x-vertex">varyingvec2vUv;voidmain(){gl_P......
  • Shader入门精要笔记 - CH10_物体表面照出周围环境
     要点1)漫反射和高光发射都是光照到物体表面,然后光反射到人眼2)环境反射是周边环境的画面照到物体表面, 然后环境的画面反射到人眼 贴图漫反射(MainTex)+ 高光......
  • Shader入门精要笔记 - CH9_阴影投射,接收阴影
     要点1)阴影投射一般直接引用unity自带的,比如:FallBack"VertexLit"FallBack"Transparent/Cutout/VertexLit"//针对半透明物体的情况里面都包含名叫ShadowCaster......