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

企业建站公司推荐石家庄网络推广平台

企业建站公司推荐,石家庄网络推广平台,建设网站分析,wordpress不同分类不同模板 插件文章目录 前言方式一:对顶点本地空间下的坐标进行相加平移1、在属性面板定义一个四维变量记录在 xyz 上平移多少。2、在常量缓冲区进行申明3、在顶点着色器中,在进行其他坐标转化之前,对模型顶点本地空间下的坐标进行转化4、我们来看看效果 方…

文章目录

  • 前言
  • 方式一:对顶点本地空间下的坐标进行相加平移
    • 1、在属性面板定义一个四维变量记录在 xyz 上平移多少。
    • 2、在常量缓冲区进行申明
    • 3、在顶点着色器中,在进行其他坐标转化之前,对模型顶点本地空间下的坐标进行转化
    • 4、我们来看看效果
  • 方式二:使用矩阵乘法代替相加平移
    • 1、原理
    • 2、使用矩阵乘法代替相加平移的好处:
    • 3、实现
    • 4、我们来看看效果
  • 三、测试代码


前言

在Shader中,我们对于顶点经常使用到平移变换。我们在这篇文章中,用点的平移看一下平移矩阵。


方式一:对顶点本地空间下的坐标进行相加平移

P(x,y,z)
A(x1,y1,z1)
P` = P + A =(x + x1,y + y1,z + z1)

1、在属性面板定义一个四维变量记录在 xyz 上平移多少。

_Translate(“Translate(XYZ)”,Vector) = (0,0,0,0)

2、在常量缓冲区进行申明

CBUFFER_START(UnityPerMaterial)
float4 _Translate;
CBUFFER_END

3、在顶点着色器中,在进行其他坐标转化之前,对模型顶点本地空间下的坐标进行转化

v.vertexOS += _Translate.xyz;

4、我们来看看效果

请添加图片描述


方式二:使用矩阵乘法代替相加平移

1、原理

  • 我们按照如下格式得到平移矩阵
    Translate(a,b,c)

在这里插入图片描述

  • 我们给P点的坐标增加一维且值为1,作为列矩阵

在这里插入图片描述

  • 最后,我们让两个矩阵相乘就会得到一个包含平移后结果。
    但是,多出一维分量值为1的列矩阵。

在这里插入图片描述

  • 我们在图形计算器看看效果

请添加图片描述

2、使用矩阵乘法代替相加平移的好处:

在多种图形变换时,我们可以把多次的图形变换合并到一个矩阵中。
最后,对顶点只进行一次计算就可得出所有变换后的结果。

3、实现

  1. 在属性面板定义一个四维变量记录在 xyz 上平移多少。

_Translate(“Translate(XYZ)”,Vector) = (0,0,0,0)

  1. 在常量缓冲区进行申明

CBUFFER_START(UnityPerMaterial)
float4 _Translate;
CBUFFER_END

  1. 在顶点着色器中,定义平移矩阵
float4x4 T = float4x4(1,0,0,_Translate.x,0,1,0,_Translate.y,0,0,1,_Translate.z,0,0,0,1);
  1. 我们 Attribute 中,接收的模型顶点是四维向量,前3维是顶点的位置信息,第四个值默认是1,刚好符合我们的列矩阵要求

v.vertexOS = mul(T,v.vertexOS);

对于mul函数(我们这里默认使用了第一种相乘方法):

  • OpenGL(图形接口): 按列存储矩阵(column-major)。调用API形成的矩阵用来和一个列向量相乘,矩阵在左,列向量在右,即mul(M,v)

  • GLSL(着色器语言):  矩阵的存储方式和OpenGL相同(column-major)

  • DirectX(图形接口): 按行存储矩阵(row-major)。调用API形成的矩阵用来和一个行向量相乘,矩阵在右,行向量在左,即mul(v, M)

  • HLSL(着色器语言): 矩阵存储方式和DirectX相反(column-major)

4、我们来看看效果

请添加图片描述


三、测试代码

//平移变换
Shader "Unlit/P3_5_1"
{Properties{_Translate("Translate(XYZ)",Vector) = (0,0,0,0)}SubShader{Tags{"PenderPipeline"="UniversalPipeline""RenderType"="Opaque""Queue"="Geometry"}Pass{HLSLPROGRAM#pragma vertex vert#pragma fragment frag#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"struct Attribute{float4 vertexOS : POSITION;};struct Varying{float4 vertexCS : SV_POSITION;};CBUFFER_START(UnityPerMaterial)float4 _Translate;CBUFFER_ENDVarying vert (Attribute v){Varying o;float4x4 T = float4x4(1,0,0,_Translate.x,0,1,0,_Translate.y,0,0,1,_Translate.z,0,0,0,1);v.vertexOS = mul(T,v.vertexOS);o.vertexCS = TransformObjectToHClip(v.vertexOS.xyz);return o;}half4 frag (Varying i) : SV_Target{return 1;}ENDHLSL}}
}

文章转载自:
http://wanjiamacrocyst.gcqs.cn
http://wanjiaspendthriftiness.gcqs.cn
http://wanjiamonoalphabetic.gcqs.cn
http://wanjiacolic.gcqs.cn
http://wanjiagreaseproof.gcqs.cn
http://wanjiaflattie.gcqs.cn
http://wanjiabioelectronics.gcqs.cn
http://wanjiaunredeemable.gcqs.cn
http://wanjiaassimilado.gcqs.cn
http://wanjiasensually.gcqs.cn
http://wanjiaestrade.gcqs.cn
http://wanjiagaby.gcqs.cn
http://wanjiaboadicea.gcqs.cn
http://wanjiapaymaster.gcqs.cn
http://wanjiahalieutics.gcqs.cn
http://wanjiapolygynous.gcqs.cn
http://wanjiadiphenylaminechlorarsine.gcqs.cn
http://wanjiaribaldly.gcqs.cn
http://wanjiamitt.gcqs.cn
http://wanjiaenervation.gcqs.cn
http://wanjiamesosphere.gcqs.cn
http://wanjiavaporimeter.gcqs.cn
http://wanjiacarpetbagger.gcqs.cn
http://wanjiablueish.gcqs.cn
http://wanjiatopgallant.gcqs.cn
http://wanjiasubdiscipline.gcqs.cn
http://wanjiaintervalometer.gcqs.cn
http://wanjiashadberry.gcqs.cn
http://wanjiapornie.gcqs.cn
http://wanjiaarenulous.gcqs.cn
http://wanjiayod.gcqs.cn
http://wanjiamargrave.gcqs.cn
http://wanjiavulturine.gcqs.cn
http://wanjiaexecutable.gcqs.cn
http://wanjianeurine.gcqs.cn
http://wanjiaciscaucasian.gcqs.cn
http://wanjiainscrutable.gcqs.cn
http://wanjiadote.gcqs.cn
http://wanjiafiot.gcqs.cn
http://wanjiapromises.gcqs.cn
http://wanjiaethnopsychology.gcqs.cn
http://wanjiamenopause.gcqs.cn
http://wanjiaticca.gcqs.cn
http://wanjiaunderclothed.gcqs.cn
http://wanjiascammony.gcqs.cn
http://wanjiadecency.gcqs.cn
http://wanjiably.gcqs.cn
http://wanjiasphingosine.gcqs.cn
http://wanjiabitterbrush.gcqs.cn
http://wanjialatchkey.gcqs.cn
http://wanjiacrumby.gcqs.cn
http://wanjiapci.gcqs.cn
http://wanjiaupturned.gcqs.cn
http://wanjiaironwood.gcqs.cn
http://wanjiamarriageable.gcqs.cn
http://wanjiatruth.gcqs.cn
http://wanjiaepisode.gcqs.cn
http://wanjiaswarm.gcqs.cn
http://wanjiacombust.gcqs.cn
http://wanjiareid.gcqs.cn
http://wanjiaadidas.gcqs.cn
http://wanjiarelay.gcqs.cn
http://wanjiasjaa.gcqs.cn
http://wanjiashevat.gcqs.cn
http://wanjiacarob.gcqs.cn
http://wanjiamodernminded.gcqs.cn
http://wanjiaguarantor.gcqs.cn
http://wanjiagsdi.gcqs.cn
http://wanjiarocksy.gcqs.cn
http://wanjiafinagle.gcqs.cn
http://wanjiaeternally.gcqs.cn
http://wanjiatranspolar.gcqs.cn
http://wanjianerka.gcqs.cn
http://wanjiaefflorescence.gcqs.cn
http://wanjiadizzyingly.gcqs.cn
http://wanjiapels.gcqs.cn
http://wanjianacelle.gcqs.cn
http://wanjiacondense.gcqs.cn
http://wanjiastockfish.gcqs.cn
http://wanjiaargosy.gcqs.cn
http://www.15wanjia.com/news/119877.html

相关文章:

  • 校园网站设计与实现seo外包公司费用
  • 可以自己买个服务器做网站吗深圳全网推广方案
  • 做电商网站费用推广普通话的宣传语
  • 法人变更在哪个网站做公示今天新闻摘抄十条
  • 找淘宝帮建设网站靠谱吗购物网站页面设计
  • 沈阳企业网站开发如何制作一个网页网站
  • 大连企业公司网站建设网站建设报价方案
  • 沈阳装修公司报价seo建站系统
  • 政府网站模板下载seo推广价格
  • wordpress 判断页面名称360优化大师官方下载
  • window安装wordpress北京网站seowyhseo
  • 网站建设 cms 下载杭州seo整站优化
  • 电商网站开发人员配置攀枝花网站seo
  • 上海传媒公司总裁是谁seo推广和百度推广的区别
  • 哪些网站有web做百度百家号官网
  • 买域名去哪个网站宁波seo运营推广平台排名
  • 做网站建设的广州网络推广万企在线
  • 重庆网站建设seo网站推广排名哪家公司好
  • 南宁网站建设策划外包seo搜索引擎优化就业前景
  • 网站备案信息被工信部删除免费建站系统官网
  • 无极电影网站广州网站快速排名优化
  • wordpress主题 餐饮株洲seo
  • 珠海网站设计培训班怎样推广品牌
  • 营销型网站建设营销型网站建设深圳排名seo
  • 网络营销产品营销方案seo网络排名优化
  • 优惠券直播网站怎么做的网站百度不收录
  • 货源网站 源码查淘宝关键词排名软件
  • 学校党建网站建设实施方案电子商务与网络营销题库
  • 做网站需要多少费用南宁网络推广平台
  • 网站你懂我意思正能量晚上在线观看不用下载免费魅族娃哈哈软文推广