COS_头发渲染shader

好久没更了。苦战一周,总算捅咕出点能看的了,赶紧总结,免得以后忘了~~代码还是有点乱套,关于最主要的饿地方,切线空间还是有点蒙圈,得抓紧补基础渲染,底层的东西,要不真的让人头大,废话少说,入正题:

这次是参考unity官网的铁匠的头发shader的高光反射部分,和unity的软化边缘的部分。因为是Gama渲染,好多参数都是用If判断的,小白~看不懂。。。只能一个一个试,看看运行的是哪部分,提取出来,修改,和自己的代码融合。

小爆一下弊端,关于接受阴影的部分还没编写,(有点写不下去了,以后来补坑吧)。

 

 

^ 夸张颜色之后的为了更好体现三层高光,X控制主要高光颜色强度和范围,Y控制次高光,Z控制高光贴图的强度。

用flowmap打乱了一下,在加上法线本身的打乱,在加上OCC贴图,再加上高光贴图本身就是断断续续的,模拟出头发一丝一丝 的高光反射。

^软化边缘的效果,因为透明的渲染深度写入的问题。。一共用了3个Pass,来实现这种软化边缘的效果

第一个pass:开启深度写入的透明通道剔除

第二个pass:加阴影

第三个pass:透明的渲染,不过用的是clip(-(col.a-cutoff)),用来和第一个pass打配合~

(前面说过了,代码并不“完整”,有待狠狠的改善,这里没有base和add部分,还有很多浪费的资源)

 

原谅还不太会复用拆分,并且。。脑子有点反应不过来,全堆一页里面啦,(哈哈,坑慢慢填,以后再说吧)

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "ABigDeal/softHair"
{

		Properties{
			_Color("Texture 1 Color", Color) = (1, 1, 1, 1)
			_Cutoff("Base Alpha cutoff", Range(0,.9)) = .5
		//	_Blend("Blend", Range(0, 1)) = 0

			_Texture1("Texture 1", 2D) = ""
			//_ColorA("Texture 1 Color", Color) = (1, 1, 1, 1)

		//	_Texture2("Texture 2", 2D) = ""
			//_ColorB("Texture 2 Color", Color) = (1, 1, 1, 1)

			_Normal("Normal Map", 2D) = "bump" {}
			_NormalScale("Normal Scale", Float) = 1.0

			_SpecGlossMap("Specular", 2D) = "white" {}
			_Specular("Specular",Color)=(1,1,1,1)
			_Gloss("Gloss",Range(0,1))=20
				
			_OcclusionMap("OcclusionMap", 2D) = "white" {}

		

       KK           //
		_KKFlowMap("FlowMap", 2D) = "white" {}
		//反射平滑
		_KKSmoot("Reflective Smoothness", Range(0.0, 1.0)) = 0.5
		//反射最大值
		_KKScale("Reflective Gray Scale", Range(0.0, 48.0)) = 5.0
		//主高光颜色
		_KKColorA("Primary Specular Color", Color) = (1.0, 1.0, 1.0)	
		//主高光指数(程度)
		_KKScaleA("Primary Exponent", Range(1.0, 192.0)) = 64.0
		//主根位置
		_KKShiftA("Primary Root Shift", Range(-20.0, 20.0)) = 0.275
		//次高光颜色
		_KKColorB("Secondary Specular Color", Color) = (1.0, 1.0, 1.0)	
		//次高光指数
		_KKScaleB("Secondary Exponent", Range(1.
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值