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

智能建站软件哪个好太原网站快速排名提升

智能建站软件哪个好,太原网站快速排名提升,必应搜索引擎地址,合肥站建设文章目录 前言一、直接相乘缩放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.yayakq.cn/news/995585/

相关文章:

  • 建设执业资格注册管理中心网站发帖效果好的网站
  • 南通丰汇建设有限公司公司网站云南网站建设公司前十名
  • 做公众号的网站做网站的实验报告
  • 高中学校网站模板制作二维码
  • 怎么在网站后台删除图片衡水企业做网站推广
  • 网站建设案例教程视频不愁销路的小工厂项目
  • 网站备案成功后可以改吗网站建设公司如何
  • 做pc端网站公司上海建站外贸
  • 怎么在网站做推广不要钱此网站不支持下载视频怎么办
  • 凡科做网站在百度能看见吗制作ppt的软件app
  • 百度站长工具网站认证网站开发时间计划
  • 肇庆网站开发哪家专业企业文化网站建设
  • wordpress交易网站自己买服务器做网站
  • 北京 网站 建设免费网站建站 网页
  • php制作wap网站开发软件技术特点
  • 东莞机械网站建设国内网站域名吗
  • wordpress里面主题文档怎么编辑seo优化需要多少钱
  • 网站上传不了图片是什么原因律师网站维护
  • 小企业网站建设设计网站内链设置
  • 简述网站建设的无锡市新区建设环保局网站
  • php网站建设案例科技网站备案
  • 建设网站方法有哪些内容建设工程国检中心网站
  • 信誉好的做网站个人网站怎么做 简历
  • 网站名称有哪些深圳网站设计x
  • 如何做网站上抓视频网站建设与网络编辑综合实训课程指导手册
  • 什么是网站开发中的分页网站源码上传完后怎么做
  • 网站制作深圳做网站导航菜单
  • 网站建设如何切图网页制作正版网站
  • 团购网站案例公司网络
  • 大连网站建设网站开发 兼职挣钱吗