Unity Shader学习:简易PBS实现

Unity Shader学习:简易PBS实现

简单根据公式实现了一下基于物理的着色,坑的地方还是有不少,单纯的公式搬过来效果会不正确,这里根据网上资料以及自己调整稍微修改了一下部分计算。高光项:Cook-Torrance,漫反射项:Disney

左边为实现的效果,右边为Unity2017自带Standard
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
shader部分:

Shader "Unlit/BRDF2"
{
   
	Properties
	{
   
		_MainTex ("Texture", 2D) = "white" {
   }
		_Roughness("Roughness",Range(0.0,1.0)) = 0.5
		_F0("F0",range(0.0,10.0)) = 0.5
	}
	SubShader
	{
   
		Tags {
    "RenderType"="Opaque" "LightMode" = "ForwardBase"  }
		LOD 100

		Pass
		{
   
			CGPROGRAM
			#pragma multi_compile_fwdbase
			#pragma vertex vert
			#pragma fragment frag
			
			#include "UnityCG.cginc"
			#include "Lighting.cginc"
			#include "AutoLight.cginc"

			#define pi 3.1415926

			struct appdata
			{
   
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
				float3 normal:NORMAL;
			};

			struct v2f
			{
   
				float2 uv : TEXCOORD0;
				float4 vertex : SV_POSITION;
				float3 worldNormal:TEXCOORD1;
				float3 worldPos:TEXCOORD2;
			};

			sampler2D _MainT
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值