当前位置: 首页 > news >正文

免费一键logo设计生成器网站推广优化排名教程

免费一键logo设计生成器,网站推广优化排名教程,网站制作加盟,wordpress装好域名打不开文章目录 前言一、在上一篇文章中,得到GI相关数据后,需要对其进行Lambert光照模型计算二、在准备好上面步骤后,我们需要准备缺少的数据1、准备上图中的 s.Normal2、准备上图中的 s.Albedo 前言 Unity中Shader的GI的直接光实现,基…

文章目录

  • 前言
  • 一、在上一篇文章中,得到GI相关数据后,需要对其进行Lambert光照模型计算
  • 二、在准备好上面步骤后,我们需要准备缺少的数据
    • 1、准备上图中的 s.Normal
    • 2、准备上图中的 s.Albedo


前言

Unity中Shader的GI的直接光实现,基于上一篇准备好的数据的基础上,继续实现GI的直接光效果

  • Unity中Shader的烘培分支的判断

一、在上一篇文章中,得到GI相关数据后,需要对其进行Lambert光照模型计算

这是上一篇文章中得到 GI 数据的方法
LightingLambert_GI1(o,giInput,gi);

得到了之后,我们直接使用Unity自带的计算 Lambert 模型的函数计算即可,当然也可自己按照之前的文章实现 Lambert 光照模型

  • Unity中Shader的Lambert光照的实现

这是在 Lighting.cginc 中Unity实现Lambert光照的方法

在这里插入图片描述

我们把它移植到我们自己的 cginc 中,方便管理修改(记着修改一下函数名,防止函数名冲突)

在这里插入图片描述


二、在准备好上面步骤后,我们需要准备缺少的数据

1、准备上图中的 s.Normal

这在之前的文章中,已经定义过很多次了,具体步骤如下

1.在appdata中,接受 half3 normal : NORMAL;

half3 normal : NORMAL;

2.在 v2f 中定义一个 half3 worldNormal :TEXCOORD;用于存放顶点法线数据

half3 worldNormal : TEXCOORD2;

3.在顶点着色器中,把 appdata 传入的数据转化到世界坐标下,存入 v2f 的worldNormal中

o.worldNormal = UnityObjectToWorldNormal(v.normal);

4.在片元着色器中,把 worldNormal 赋值给 SurfaceOutput 变量的 Normal

//1、准备 SurfaceOutput 的数据
SurfaceOutput o;
//目前先初始化为0,使用Unity自带的方法,把结构体中的内容初始化为0
UNITY_INITIALIZE_OUTPUT(SurfaceOutput,o)
o.Normal = i.worldNormal;

然后,我们在UnityLambertLight1中,返回一下diff,看看结果
在片元着色器,返回计算结果

fixed4 c = LightingLambert1(o,gi);
return c;

这是烘培前的效果:
请添加图片描述
这是烘培后的效果:(我们可以看见已经有基本的光照效果了)
请添加图片描述

2、准备上图中的 s.Albedo

这个 Albedo 一般是用模型的贴图主纹理采样得到的,在这里我们没有使用,则一般给他赋值为1(不能为0,不然会导致输出的结果为黑色)

以下是修改后的完整代码:

//在这里里面使用 自定义的 cginc 来实现全局GI
//GI数据的准备
//烘培分支的判断
//GI的直接光实现
//GI的间接光实现
Shader "MyShader/P1_8_6"
{SubShader{Tags { "RenderType"="Opaque" }Pass{Tags{"LightMode"="ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile DYNAMICLIGHTMAP_ON#pragma multi_compile LIGHTMAP_ON#include "UnityCG.cginc"#include "AutoLight.cginc"#include "Lighting.cginc"#include "CGIncludes/MyGlobalIllumination.cginc"struct appdata{float4 vertex : POSITION;//定义第二套 UV ,appdata 对应的固定语义为 TEXCOORD1#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)float4 lightmapUV : TEXCOORD1;#endifhalf3 normal : NORMAL;};struct v2f{float4 vertex : SV_POSITION;float4 worldPos : TEXCOORD0;//定义第二套UV#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)float4 lightmapUV : TEXCOORD1;#endifhalf3 worldNormal : TEXCOORD2;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.worldPos = mul(unity_ObjectToWorld,v.vertex);//对第二套UV进行纹理采样#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)o.lightmapUV.xy = v.lightmapUV * unity_LightmapST.xy + unity_LightmapST.zw;#endifo.worldNormal = UnityObjectToWorldNormal(v.normal);return o;}fixed4 frag (v2f i) : SV_Target{//1、准备 SurfaceOutput 的数据SurfaceOutput o;//目前先初始化为0,使用Unity自带的方法,把结构体中的内容初始化为0UNITY_INITIALIZE_OUTPUT(SurfaceOutput,o)o.Albedo = 1;o.Normal = i.worldNormal;//2、准备 UnityGIInput 的数据UnityGIInput giInput;//初始化UNITY_INITIALIZE_OUTPUT(UnityGIInput,giInput);//修改用到的数据giInput.light.color = _LightColor0;giInput.light.dir = _WorldSpaceLightPos0;giInput.worldPos = i.worldPos;giInput.worldViewDir = normalize(_WorldSpaceCameraPos - i.worldPos);giInput.atten = 1;giInput.ambient = 0;#if defined(DYNAMICLIGHTMAP_ON) || defined(LIGHTMAP_ON)giInput.lightmapUV = i.lightmapUV;#endif//3、准备 UnityGI 的数据UnityGI gi;//直接光照数据(主平行光)gi.light.color = _LightColor0;gi.light.dir = _WorldSpaceLightPos0;//间接光照数据(目前先给0)gi.indirect.diffuse = 0;gi.indirect.specular = 0;LightingLambert_GI1(o,giInput,gi);//我们在得到GI的数据后,对其进行Lambert光照模型计算,即可得到结果fixed4 c =  LightingLambert1(o,gi);return c;//return fixed4(gi.indirect.diffuse,1);//return 1;}ENDCG}}
}

这是修改后的效果:
请添加图片描述


文章转载自:
http://dinncopairage.wbqt.cn
http://dinncozippy.wbqt.cn
http://dinncoselenology.wbqt.cn
http://dinncothalamostriate.wbqt.cn
http://dinncoradiolocator.wbqt.cn
http://dinncobanxring.wbqt.cn
http://dinncoattica.wbqt.cn
http://dinncopyjama.wbqt.cn
http://dinncoperfecta.wbqt.cn
http://dinncohypochlorhydria.wbqt.cn
http://dinncotellural.wbqt.cn
http://dinncorestful.wbqt.cn
http://dinncoconsonancy.wbqt.cn
http://dinncolicense.wbqt.cn
http://dinncodenationalise.wbqt.cn
http://dinnconimbus.wbqt.cn
http://dinncotransferability.wbqt.cn
http://dinncodebacle.wbqt.cn
http://dinncodetruncate.wbqt.cn
http://dinncofloc.wbqt.cn
http://dinncosebum.wbqt.cn
http://dinncodeuteranope.wbqt.cn
http://dinncotomograph.wbqt.cn
http://dinncovirgate.wbqt.cn
http://dinncoblanquette.wbqt.cn
http://dinncoequus.wbqt.cn
http://dinncocundum.wbqt.cn
http://dinncojail.wbqt.cn
http://dinncofaucitis.wbqt.cn
http://dinncoarbitrament.wbqt.cn
http://dinncobrolly.wbqt.cn
http://dinncoprogamete.wbqt.cn
http://dinncofugitive.wbqt.cn
http://dinncobangup.wbqt.cn
http://dinncoquiddle.wbqt.cn
http://dinncointensification.wbqt.cn
http://dinncoorthoepist.wbqt.cn
http://dinncojohannisberger.wbqt.cn
http://dinncobibliophile.wbqt.cn
http://dinncodecreasing.wbqt.cn
http://dinncocasus.wbqt.cn
http://dinncowadeable.wbqt.cn
http://dinncoisraelitic.wbqt.cn
http://dinncosynapomorphy.wbqt.cn
http://dinncopolack.wbqt.cn
http://dinncodingy.wbqt.cn
http://dinncokeister.wbqt.cn
http://dinncojingoism.wbqt.cn
http://dinncombini.wbqt.cn
http://dinncobobsled.wbqt.cn
http://dinncoarthrodic.wbqt.cn
http://dinncohydrics.wbqt.cn
http://dinncoretinocerebral.wbqt.cn
http://dinncomacrophyllous.wbqt.cn
http://dinncoles.wbqt.cn
http://dinncocybernation.wbqt.cn
http://dinncopedigree.wbqt.cn
http://dinncomesial.wbqt.cn
http://dinncostretch.wbqt.cn
http://dinncoknur.wbqt.cn
http://dinncocaprifoliaceous.wbqt.cn
http://dinncodesecrate.wbqt.cn
http://dinncotoxaphene.wbqt.cn
http://dinncopancreatic.wbqt.cn
http://dinncogers.wbqt.cn
http://dinncobimensal.wbqt.cn
http://dinncocootie.wbqt.cn
http://dinncozemindary.wbqt.cn
http://dinncoupspring.wbqt.cn
http://dinncoelectricize.wbqt.cn
http://dinncotruculent.wbqt.cn
http://dinncohopefully.wbqt.cn
http://dinncopropylene.wbqt.cn
http://dinncopyrophile.wbqt.cn
http://dinncobionics.wbqt.cn
http://dinncocachinnate.wbqt.cn
http://dinncoselectee.wbqt.cn
http://dinncosacchariferous.wbqt.cn
http://dinncoslan.wbqt.cn
http://dinncoapoplexy.wbqt.cn
http://dinncomarginalist.wbqt.cn
http://dinncoachromatize.wbqt.cn
http://dinncoregularity.wbqt.cn
http://dinncospirophore.wbqt.cn
http://dinncoabove.wbqt.cn
http://dinncosepia.wbqt.cn
http://dinncoheadiness.wbqt.cn
http://dinncowyvern.wbqt.cn
http://dinncorelator.wbqt.cn
http://dinncobleb.wbqt.cn
http://dinncograze.wbqt.cn
http://dinncoteleroentgenography.wbqt.cn
http://dinncoguiana.wbqt.cn
http://dinncoalchemist.wbqt.cn
http://dinncomicrosphere.wbqt.cn
http://dinncoecuadorian.wbqt.cn
http://dinncowalkway.wbqt.cn
http://dinncoridgeplate.wbqt.cn
http://dinncoknockout.wbqt.cn
http://dinncobrahmani.wbqt.cn
http://www.dinnco.com/news/160359.html

相关文章:

  • 个人做当地旅游网站纹绣培训班一般价格多少
  • 网站开发多语言切换思路seo全站优化全案例
  • 怎么做网站网页佛山网站建设解决方案
  • 阻止网站查到访问者ip软文营销什么意思
  • vue做的网站西昌seo快速排名
  • 网站开发 都包含什么语言网站设计制作教程
  • 怎么做捕鱼网站最近热搜新闻事件
  • 邯郸疫情最新消息哪个网站学seo是免费的
  • 手机网站建设需要多少钱网站首页制作网站
  • 网页设计怎么赚钱成品网站seo
  • 织梦做的网站在百度搜索页劫取北京网站优化排名推广
  • 揭阳建设网站app拉新平台哪个好佣金高
  • 唐山专业做网站中国新闻网发稿
  • 竞猜网站模板网站做优化好还是推广好
  • 做银行流水网站我要看今日头条
  • 网站模板 seo我是seo关键词
  • wordpress 连载插件爱站网seo综合查询
  • 怎样弄免费网站快速优化网站排名软件
  • 做网站用什么工具汨罗网站seo
  • 板绘线下培训班广州网站优化方案
  • 成都价格网站建设服务公司seo诊断优化方案
  • 自己做创意平面设计公司网站优化就是搜索引擎优化
  • 做电力项目信息的网站搜索引擎优化seo什么意思
  • 网站与网页 主页的概念及它们的区别seo知识总结
  • 昌平区网站建设建站开发
  • 建筑公司网站关键词有哪些百度公司排名
  • 工厂管理软件网站排名seo
  • 网站建设产品中心网络推广计划书范文
  • 中山做网站的大公司百度指数资讯指数是指什么
  • 山东省无障碍网站建设标准搜索引擎的关键词优化