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

做网站口碑比较好的大公司广告宣传语

做网站口碑比较好的大公司,广告宣传语,云浮各类免费建站,郑州网站建设tpywlkj文章目录 前言一、在片元着色器中使用如下公式计算最终的颜色 lerp(雾效颜色,物体颜色,雾效混合因子)1、获取雾效颜色2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定&am…

文章目录

  • 前言
  • 一、在片元着色器中使用如下公式计算
    • `最终的颜色 = lerp(雾效颜色,物体颜色,雾效混合因子)`
    • 1、获取雾效颜色
    • 2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试
    • 3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定)
  • 二、在顶点着色器中,计算不同类型的雾效混合因子(在顶点着色器计算节省性能)
    • Unity预定义好方便我们计算的四维变量 unity_FogParams
    • 1、计算线性雾的雾效混合因子
    • 2、计算指数雾1 的雾效混合因子
    • 3、计算指数雾2 的雾效混合因子
  • 三、最终测试代码


前言

Unity中Shader雾效的实现方法一,按照之前的公式, 我们自己来实现一下

  • Unity中Shader雾效的原理

基于上一篇文章继续:

  • Unity中Shader的雾效

一、在片元着色器中使用如下公式计算

最终的颜色 = lerp(雾效颜色,物体颜色,雾效混合因子)

不管是什么类型的雾,这个雾效的公式都是统一的

1、获取雾效颜色

unity_FogColor

2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试

3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定)

雾效混合因子是由,之前的三个雾效衰减公式计算得到的

  • Unity中Shader雾效的原理

因为在片元着色器中计算雾效需要使用该因子
所以在 v2f 中定义一个 TEXCOORD 类型的 float 变量 fogFactor

float fogFactor : TEXCOORD1;


二、在顶点着色器中,计算不同类型的雾效混合因子(在顶点着色器计算节省性能)

Unity预定义好方便我们计算的四维变量 unity_FogParams

在这里插入图片描述

1、计算线性雾的雾效混合因子

在这里插入图片描述

  • 获取 z :这个z是摄像机到物体的距离
    z = (用摄像机的世界坐标 - 顶点的世界坐标)的 模长
    计算需要准备:
    摄像机的世界坐标:_WorldSpaceCameraPos
    顶点的世界坐标:mul(unity_ObjectToWorld,v.vertex)

float z = length(_WorldSpaceCameraPos - worldPos);

  • 获取 start 和 end
    上面的公式可以等价为:
    fogFactor
    = (end - z) / (end - start)
    = (end / (end - start)) + z * (-1 / (end - start))
    使用Unity预定义的公式后:
    = unity_FogParams.w + z * unity_FogParams.z ;

//(end - z) / (end - start)= (end / (end - start)) + z * (-1 / (end - start))
o.fogFactor = z * unity_FogParams.z + unity_FogParams.w;

效果:
请添加图片描述

2、计算指数雾1 的雾效混合因子

在这里插入图片描述

fogFactor
= exp2(-density * z)
使用Unity预定义的公式后:
= exp2(-unity_FogParams.y * z)

//exp2(-density * z)
o.fogFactor = exp2(-unity_FogParams.y * z);

效果:
请添加图片描述

3、计算指数雾2 的雾效混合因子

在这里插入图片描述
fogFactor
= exp2(-(density * z)^2)
使用Unity预定义的公式后:
= exp2(-(unity_FogParams.x * z)^2)

//exp2(-(density * z)^2)
float density = unity_FogParams.x * z;
o.fogFactor = exp2(-density * density);

效果:
请添加图片描述


三、最终测试代码

//unity的雾效
//雾效的实现方法一
Shader "MyShader/P1_9_3"
{SubShader{Tags { "RenderType"="Opaque" }Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fog#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;};struct v2f{float4 vertex : SV_POSITION;float fogFactor : TEXCOORD1;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);float4 worldPos = mul(unity_ObjectToWorld,v.vertex);float z = length(_WorldSpaceCameraPos - worldPos);#if defined(FOG_LINEAR)//(end - z) / (end - start)= (end / (end - start)) + z * (-1 / (end - start))o.fogFactor = z * unity_FogParams.z + unity_FogParams.w;#elif defined(FOG_EXP)//exp2(-density * z)o.fogFactor = exp2(-unity_FogParams.y * z);#elif defined(FOG_EXP2)//exp2(-(density * z)^2)float density = unity_FogParams.x * z;o.fogFactor = exp2(-density * density);#endifreturn o;}fixed4 frag (v2f i) : SV_Target{fixed4 c = 0;#if defined(FOG_LINEAR) || defined(FOG_EXP) || defined(FOG_EXP2)c = lerp(unity_FogColor,c,i.fogFactor);#endifreturn c;}ENDCG}}
}
http://www.hkea.cn/news/591455/

相关文章:

  • 高端网站建设系统百度网盘登录入口官网
  • ps做网站顶部江苏网络推广公司
  • 源码做网站手机网站百度关键词排名
  • 网站关键词分隔网站链接提交
  • 福永营销型网站多少钱中国最新消息今天
  • 做网站4000-262-263网站排名优化软件有哪些
  • 网站双链接怎么做网络舆情监测平台
  • 企业网站建设制作百度网盘下载app
  • asp做一个简单网站网络营销就是seo正确吗
  • 移动wap站点公司网站设计图
  • 网站策划建设seo搜索排名影响因素主要有
  • 大型商业广场网站建设互联网推广方案怎么写
  • p2vr做的网站上传网络广告策划书范文
  • 2022年大连黄页优化搜索引擎营销
  • 宁波有几个区昭通网站seo
  • 建设企业网站方案网站优化软件哪个好
  • 郑州做网站要搜索引擎最新排名
  • wordpress建好站了打不开首页成都关键词优化排名
  • 京东网站开发需求如何做谷歌优化
  • 微信app开发诊断网站seo现状的方法
  • 做旅行网站网站seo优化多少钱
  • 上海专业网站建设咨询网络销售怎么样
  • 奶茶网页设计图片湖南seo网站多少钱
  • 家里电脑做网站服务器如何建立网址
  • 临西做网站哪里便宜seo专业培训课程
  • 高端网站设计报价表个人网上卖货的平台
  • 广州网站优化推广公司网站优化排名资源
  • 济南网站建设大标网络企业seo服务
  • net域名大网站东莞关键词自动排名
  • 做企业平台的网站怎样进行网络营销吸引顾客