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

凡科建站源码苏州百度快照优化排名

凡科建站源码,苏州百度快照优化排名,阿里巴巴黄页网1688,合肥做网站一般多少钱文章目录 前言一、直接相乘缩放1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放2、在常量缓存区申明该变量3、在顶点着色器对其进行相乘,来缩放变换4、我们来看看效果 二、使用矩阵乘法代替直接相乘缩放的原理1、我们按如下格式得到缩放矩阵…

文章目录

  • 前言
  • 一、直接相乘缩放
    • 1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放
    • 2、在常量缓存区申明该变量
    • 3、在顶点着色器对其进行相乘,来缩放变换
    • 4、我们来看看效果
  • 二、使用矩阵乘法代替直接相乘缩放的原理
    • 1、我们按如下格式得到缩放矩阵
    • 2、把我们需要平移的点变为列矩阵
    • 3、M~scale~* P 得到缩放变换后的结果
    • 4、我们在图形计算器中看看效果
  • 三、在URP Shader中实现
    • 1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放
    • 2、在常量缓存区申明该变量
    • 3、在顶点着色器中得到缩放矩阵
    • 4、因为Attribute接收顶点格式为(x,y,z,1)且mul相乘规则的原因。所以,我们的列矩阵就是 vertexOS
    • 5、相乘得到结果
    • 6、我们来看看效果
  • 四、测试代码


前言

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


一、直接相乘缩放

P1 = P*S
P1 = (Px * Sx,Py * Sy,Pz * Sz)

请添加图片描述

1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放

_Scale(“Scale(XYZ)”,Vector)= (1,1,1,1)

2、在常量缓存区申明该变量

CBUFFER_START(UnityPerMaterial)
float4 _Scale;
CBUFFER_END

3、在顶点着色器对其进行相乘,来缩放变换

v.vertexOS *= _Scale;

4、我们来看看效果

请添加图片描述


二、使用矩阵乘法代替直接相乘缩放的原理

1、我们按如下格式得到缩放矩阵

扩维到四维的原因:因为平移矩阵是4维的,使缩放矩阵变成同一维度,在之后可以合并变换矩阵

  • Scale(a,b,c)
    在这里插入图片描述

2、把我们需要平移的点变为列矩阵

  • P(x,y,z)
    在这里插入图片描述

3、Mscale* P 得到缩放变换后的结果

在这里插入图片描述

4、我们在图形计算器中看看效果

请添加图片描述


三、在URP Shader中实现

1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放

_Scale(“Scale(XYZ)”,Vector)= (1,1,1,1)

2、在常量缓存区申明该变量

CBUFFER_START(UnityPerMaterial)
float4 _Scale;
CBUFFER_END

3、在顶点着色器中得到缩放矩阵

float4x4 M_Scale = float4x4
(
_Scale.x,0,0,0,
0,_Scale.y,0,0,
0,0,_Scale.z,0,
0,0,0,1
);

4、因为Attribute接收顶点格式为(x,y,z,1)且mul相乘规则的原因。所以,我们的列矩阵就是 vertexOS

5、相乘得到结果

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

6、我们来看看效果

请添加图片描述


四、测试代码

//平移变换
Shader "MyShader/URP/P3_5_3"
{Properties{_Translate("Translate(XYZ)",Vector) = (0,0,0,0)_Scale("Scale(XYZ)",Vector)= (1,1,1,1)}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;float4 _Scale;CBUFFER_ENDVarying vert (Attribute v){Varying o;//平移变换float4x4 M_Translate = float4x4(1,0,0,_Translate.x,0,1,0,_Translate.y,0,0,1,_Translate.z,0,0,0,1);v.vertexOS = mul(M_Translate,v.vertexOS);//缩放交换float4x4 M_Scale = float4x4(_Scale.x,0,0,0,0,_Scale.y,0,0,0,0,_Scale.z,0,0,0,0,1);v.vertexOS = mul(M_Scale,v.vertexOS);o.vertexCS = TransformObjectToHClip(v.vertexOS.xyz);return o;}half4 frag (Varying i) : SV_Target{return 1;}ENDHLSL}}
}
http://www.khdw.cn/news/30142.html

相关文章:

  • vue做的小网站百度收录批量提交入口
  • 做门户网站源码新手如何自己做网站
  • wordpress 流量数据库如何网页优化
  • wordpress文体旋转seo网络推广是干嘛的
  • 文化馆网站建设的意义霸屏seo服务
  • 网站建设付款方式百度竞价推广方案
  • 代做淘宝客网站千锋教育课程
  • 做经营性网站需要哪些东西注册网站流程
  • 做热点图现在用什么网站友链交易网
  • 嘉兴做网站的外贸网站建设
  • 什么都不懂做网站长春网络优化哪个公司在做
  • 如何做网站赚全网营销型网站
  • 举报网站制度建设方面山东服务好的seo公司
  • 阿里巴巴怎么做自己的免费网站品牌营销策略研究
  • 自己做的网站怎么置顶百度地址如何设置门店地址
  • 我国禁毒工作的治本之策是什么seo点击
  • 网络策略seo运营是做什么的
  • 怎么看网站后台什么语言做的西安百度推广竞价托管
  • 文本文档做网站短链接生成器
  • 如何创建网站 优帮云百度推广开户代理商
  • 北京赛车网站开发多少钱如何做网络销售产品
  • 广州市人民政府新闻办公室发布会seo的基本步骤顺序正确的是
  • 建设厅科技中心网站首页优化设计
  • 做网站一般是什么工作网络广告策划方案范文
  • 顺德做网站shundeit今日大新闻
  • 荆州市做网站的农业推广
  • 恐怖小说网站怎么做seo搜索排名优化是什么意思
  • 上海松江做网站的公司关键词优化排名软件s
  • 网站建设如何创建框架页面广东疫情动态人民日报
  • 微信网站开发多少钱青岛seo排名扣费