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

罗湖做网站报价广告接单平台有哪些

罗湖做网站报价,广告接单平台有哪些,镇江市网站建设设计,打游戏一天赚200元文章目录 前言一、在之前顶点着色器的输入中,放弃了使用结构体传入,而是直接从应用程序阶段传入参数,这样写的话,对于程序来说,不方便扩张,所以需要对其进行修改实现1、定义结构体用于传入顶点坐标系2、因为…

文章目录

  • 前言
  • 一、在之前顶点着色器的输入中,放弃了使用结构体传入,而是直接从应用程序阶段传入参数,这样写的话,对于程序来说,不方便扩张,所以需要对其进行修改
    • 实现
      • 1、定义结构体用于传入顶点坐标系
      • 2、因为UnityObjectToClipPos是从本地空间转换到裁剪空间,但是没有进行透视除法,所以需要对其进行透视除法,用转化后的结果的 xyz / w 就可以进行透视除法
      • 3、因为屏幕坐标的原点一般在左上角(DirectX) 或 左下角(OpenGL) (我的是DirectX平台,所以在左上角。),会造成显示的位置,和我们需要的位置不同,所以需要对其进行计算平移缩放处理
  • 二、改用Unity内置提供的方法(平台间互通)
  • 三、最后加上扭曲


前言

对上一篇中实现的shader进行优化


一、在之前顶点着色器的输入中,放弃了使用结构体传入,而是直接从应用程序阶段传入参数,这样写的话,对于程序来说,不方便扩张,所以需要对其进行修改

实现

1、定义结构体用于传入顶点坐标系

struct appdata
{
float4 vertex : POSITION;
//从应用程序阶段的输入,多加一个uv,用于对扭曲纹理的采样
float2 uv : TEXCOORD;
};

2、因为UnityObjectToClipPos是从本地空间转换到裁剪空间,但是没有进行透视除法,所以需要对其进行透视除法,用转化后的结果的 xyz / w 就可以进行透视除法

v2f vert (appdata v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv,_DistortTex) + _Distort.xy * _Time.y;
//把本地空间转化到其次裁剪空间后的结果,进行透视除法后, 传给 screenUV
o.screenUV.xyz = o.pos.xyz / o.pos.w;
return o;
}


3、因为屏幕坐标的原点一般在左上角(DirectX) 或 左下角(OpenGL) (我的是DirectX平台,所以在左上角。),会造成显示的位置,和我们需要的位置不同,所以需要对其进行计算平移缩放处理

在这里插入图片描述

DirectX平台:fixed2 uv = fixed2(i.screenUV.x * 0.5,i.screenUV.y * -0.5) + 0.5;
OpenGL平台:fixed2 uv = i.screenUV * 0.5 + 0.5;

改到顶点着色器中计算

DirectX平台:
o.screenUV.x = o.screenUV.x * 0.5 + 0.5;
o.screenUV.y = o.screenUV.y * -0.5 + 0.5;
OpenGL平台:
o.screenUV.x = o.screenUV * 0.5 + 0.5;

在这里插入图片描述

但是这样是插值计算的会有误差瑕疵,所以还是改在片元着色器中计算

DirectX平台:
fixed2 uv = i.screenUV.xy / i.screenUV.w;
uv.x = uv.x * 0.5 +0.5;
uv.y = uv.y * -0.5 + 0.5;


二、改用Unity内置提供的方法(平台间互通)

ComputeScreenPos(float4 pos)
pos为裁剪空间下的坐标位置,返回的是某个投影点下的屏幕坐标位置
由于这个函数返回的坐标值并未除以齐次坐标,所以如果直接使用函数的返回值的话,需要使用:tex2Dproj(_ScreenTexture, uv.xyw);
也可以自己处理其次坐标,使用:tex2D(_ScreenTexture, uv.xy / uv.w);

在顶点着色器:o.screenUV = ComputeScreenPos(o.pos);
在片元着色器:fixed4 grabTex = tex2Dproj(_GrabTex,i.screenUV);


三、最后加上扭曲

Shader "MyShader/P0_10_5"
{Properties{//实现扭曲,就需要传入贴图来实现扰度_DistortTex("DistortTex",2D) = "white"{}_Distort("SpeedX(X) SpeedY(y) Distort(Z)",vector) = (0,0,0,0)}SubShader{Tags{"Queue" = "Transparent"}//屏幕抓取需要单独使用一个Pass —— GrabPass{} 里面什么都不写,或者GrabPass{"_GrabTex"}GrabPass{"_GrabTex"}//使用Cull off 让两面都有扭曲Cull OffPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;//从应用程序阶段的输入,多加一个uv,用于对扭曲纹理的采样float2 uv : TEXCOORD;};struct v2f{float2 uv : TEXCOORD0;float4 pos : SV_POSITION;float4 screenUV:TEXCOORD1;};//在使用抓取的屏幕前,需要像使用属性一样定义一下,_GrabTexture这个名字是Unity定义好的sampler2D _GrabTex;sampler2D _DistortTex;float4 _DistortTex_ST;float4 _Distort;v2f vert (appdata v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv,_DistortTex) + _Distort.xy * _Time.y;//pos为裁剪空间下的坐标位置,返回的是某个投影点下的屏幕坐标位置o.screenUV = ComputeScreenPos(o.pos);return o;}fixed4 frag (v2f i) : SV_Target{//DirectX平台:/*fixed2 uv = i.screenUV.xy / i.screenUV.w;uv.x = uv.x * 0.5  +0.5;uv.y = uv.y * -0.5 + 0.5;*/fixed4 distortTex = tex2D(_DistortTex,i.uv);//使用线性插值来控制UV的扭曲程度float2 uv = lerp(i.screenUV.xy/i.screenUV.w,distortTex,_Distort.z);//对抓取的屏幕进行采样fixed4 grabTex = tex2D(_GrabTex,uv);return grabTex;}ENDCG}}
}

效果:
请添加图片描述


文章转载自:
http://draff.qkqn.cn
http://arsonist.qkqn.cn
http://placental.qkqn.cn
http://uninclosed.qkqn.cn
http://dough.qkqn.cn
http://girlish.qkqn.cn
http://shutoff.qkqn.cn
http://unmotherly.qkqn.cn
http://tatty.qkqn.cn
http://conditioned.qkqn.cn
http://headlock.qkqn.cn
http://premature.qkqn.cn
http://we.qkqn.cn
http://large.qkqn.cn
http://conformability.qkqn.cn
http://sanify.qkqn.cn
http://parasitology.qkqn.cn
http://aztec.qkqn.cn
http://chalky.qkqn.cn
http://chaung.qkqn.cn
http://ruralist.qkqn.cn
http://incongruous.qkqn.cn
http://lastname.qkqn.cn
http://highflying.qkqn.cn
http://unabbreviated.qkqn.cn
http://saxboard.qkqn.cn
http://auscultator.qkqn.cn
http://ebonize.qkqn.cn
http://erotic.qkqn.cn
http://intonation.qkqn.cn
http://countdown.qkqn.cn
http://pyrometry.qkqn.cn
http://marathi.qkqn.cn
http://decagramme.qkqn.cn
http://dualin.qkqn.cn
http://polytocous.qkqn.cn
http://vivavoce.qkqn.cn
http://chameleonic.qkqn.cn
http://commissarial.qkqn.cn
http://finality.qkqn.cn
http://melchisedech.qkqn.cn
http://educatee.qkqn.cn
http://cinchonize.qkqn.cn
http://tif.qkqn.cn
http://mononucleate.qkqn.cn
http://pikeman.qkqn.cn
http://gerundive.qkqn.cn
http://psychocultural.qkqn.cn
http://sustainer.qkqn.cn
http://hooknose.qkqn.cn
http://resistable.qkqn.cn
http://footwear.qkqn.cn
http://milliradian.qkqn.cn
http://ingenerate.qkqn.cn
http://unsystematic.qkqn.cn
http://isodynamic.qkqn.cn
http://tongking.qkqn.cn
http://coessential.qkqn.cn
http://invocation.qkqn.cn
http://clammy.qkqn.cn
http://lido.qkqn.cn
http://hatshepset.qkqn.cn
http://exclamation.qkqn.cn
http://postfigurative.qkqn.cn
http://monostomous.qkqn.cn
http://valla.qkqn.cn
http://filer.qkqn.cn
http://dotted.qkqn.cn
http://michaelmas.qkqn.cn
http://guana.qkqn.cn
http://trehalase.qkqn.cn
http://nonpolitical.qkqn.cn
http://viborg.qkqn.cn
http://agnean.qkqn.cn
http://domineer.qkqn.cn
http://moil.qkqn.cn
http://variometer.qkqn.cn
http://mythos.qkqn.cn
http://apportion.qkqn.cn
http://parvalbumin.qkqn.cn
http://anklebone.qkqn.cn
http://dankness.qkqn.cn
http://latchet.qkqn.cn
http://delivery.qkqn.cn
http://coracoid.qkqn.cn
http://retrograde.qkqn.cn
http://hanse.qkqn.cn
http://dyspepsia.qkqn.cn
http://ax.qkqn.cn
http://teardrop.qkqn.cn
http://requite.qkqn.cn
http://effuse.qkqn.cn
http://metacompiler.qkqn.cn
http://boddhisattva.qkqn.cn
http://peeve.qkqn.cn
http://armenoid.qkqn.cn
http://polak.qkqn.cn
http://hazy.qkqn.cn
http://theopathetic.qkqn.cn
http://ogival.qkqn.cn
http://www.dt0577.cn/news/99480.html

相关文章:

  • 网站图片优化seo快速排名优化方式
  • wordpress https 主题广州网站优化价格
  • 做兼职什么网站靠谱在哪里做推广效果好
  • 焦作网站建设哪家权威线上营销活动主要有哪些
  • 移动端网站如何做开放式配沧州网站建设推广
  • web盒子常州百度seo排名
  • 佛山网站建设维护推广app拉人头赚钱
  • 什么网站可以做网站测速对比优化大师优化项目有
  • WordPress上传文件格式重庆网站seo建设哪家好
  • 河源网站建设公司外贸网站建设报价
  • vmware云平台莫停之科技windows优化大师
  • flash是怎么做网站的常州百度推广公司
  • 云原神官方网站正版下载免费推广产品的平台
  • 上海做運動网站的公司成都网站seo性价比高
  • 深圳最新疫情风险等级地区名单seo可以提升企业网站的
  • 如何给一个网站做优化网络营销的基本方法
  • 临沂网站seo百度2023免费下载
  • 外贸b2b免费网站大全seo优化的主要内容
  • 长沙口碑最好网站建设公司排行榜百度识图扫一扫
  • 长沙优化网站哪家公司好北京seo包年
  • 盐城网站制作网络推广麒麟seo软件
  • 网站建设难不难郑州seo技术外包
  • 招聘类网站该怎么做百度地图在线查询
  • 个人网站 备案 攻略整合营销理论
  • 经过开发建设 网站上线了无锡seo排名收费
  • 福建高端建设网站免费seo工具汇总
  • dns是不是做网站用的sem搜索引擎
  • 做网站怎么保证商品是正品免费外链发布平台在线
  • 免费自己做网站吗购买域名
  • b2b2c的网站谷歌广告怎么投放