中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā) 方案如何注冊網(wǎng)站怎么注冊

網(wǎng)站開發(fā) 方案,如何注冊網(wǎng)站怎么注冊,支付寶手機(jī)網(wǎng)站支付二維碼怎么做,成都十八個網(wǎng)紅打卡地文章目錄 前言一、在Shader中使用轉(zhuǎn)化矩陣1、在頂點著色器中定義轉(zhuǎn)化矩陣2、用 UNITY_NEAR_CLIP_VALUE 區(qū)分平臺矩陣3、定義一個枚舉用于區(qū)分當(dāng)前是處于什么相機(jī) 二、我們在DirectX平臺下,看看效果1、正交相機(jī)下2、透視相機(jī)下3、最終代碼 前言 在上一篇文章中&…

文章目錄

  • 前言
  • 一、在Shader中使用轉(zhuǎn)化矩陣
    • 1、在頂點著色器中定義轉(zhuǎn)化矩陣
    • 2、用 UNITY_NEAR_CLIP_VALUE 區(qū)分平臺矩陣
    • 3、定義一個枚舉用于區(qū)分當(dāng)前是處于什么相機(jī)
  • 二、我們在DirectX平臺下,看看效果
    • 1、正交相機(jī)下
    • 2、透視相機(jī)下
    • 3、最終代碼


前言

在上一篇文章中,我們推導(dǎo)得出了 透視相機(jī)到裁剪空間的轉(zhuǎn)化矩陣

  • Unity中Shader裁剪空間推導(dǎo)(透視相機(jī)到裁剪空間的轉(zhuǎn)化矩陣)

我們在正交矩陣Shader的基礎(chǔ)上,繼續(xù)測試

  • Unity中Shader裁剪空間推導(dǎo)(在Shader中實現(xiàn))

在這篇文章中,我們在Shader中使用該矩陣測試一下。

  • OpenGL
    [ 2 n w 0 0 0 0 2 n h 0 0 0 0 n + f n ? f 2 n f n ? f 0 0 ? 1 0 ] \begin{bmatrix} \frac{2n}{w} & 0 & 0 & 0 \\ 0 & \frac{2n}{h} & 0 &0\\ 0 & 0 & \frac{n+f}{n-f} &\frac{2nf}{n-f}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} ?w2n?000?0h2n?00?00n?fn+f??1?00n?f2nf?0? ?
  • DirectX
    [ 2 n w 0 0 0 0 2 n h 0 0 0 0 n f ? n n f f ? n 0 0 ? 1 0 ] \begin{bmatrix} \frac{2n}{w} & 0 & 0 & 0 \\ 0 & \frac{2n}{h} & 0 &0\\ 0 & 0 & \frac{n}{f-n} &\frac{nf}{f-n}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} ?w2n?000?0h2n?00?00f?nn??1?00f?nnf?0? ?

一、在Shader中使用轉(zhuǎn)化矩陣

1、在頂點著色器中定義轉(zhuǎn)化矩陣

  • OpenGL:

M_clipP = float4x4
(
2n/w,0,0,0,
0,2
n/h,0,0,
0,0,(n+f)/(n-f),(2nf)/(n-f),
0,0,-1,0
);

  • DirectX:

M_clipP = float4x4
(
2n/w,0,0,0,
0,2
n/h,0,0,
0,0,n/(f-n),(n*f)/(f-n),
0,0,-1,0
);

2、用 UNITY_NEAR_CLIP_VALUE 區(qū)分平臺矩陣

  • 1為OpenGL
  • -1為DirectX

3、定義一個枚舉用于區(qū)分當(dāng)前是處于什么相機(jī)

[Enum(OrthoGraphic,0,Perspective,1)]_CameraType(“CameraType”,Float) = 0

  • 在手動轉(zhuǎn)化矩陣時使用三目運(yùn)算符來決定使用哪一個矩陣

float4x4 M_clip = _CameraType ? M_clipP : M_clipO;
o.vertexCS = mul(M_clip,float4(vertexVS,1));


二、我們在DirectX平臺下,看看效果

1、正交相機(jī)下

在這里插入圖片描述

2、透視相機(jī)下

在這里插入圖片描述

3、最終代碼

//平移變換
//縮放變換
//旋轉(zhuǎn)變換(四維)
//視圖空間矩陣
//正交相機(jī)視圖空間 -> 裁剪空間
Shader "MyShader/URP/P3_7_6"
{Properties{[Header(MainTexx)]_MainTex("MainTex",2D) = "white"{}[Header(Transtion)]_Translate("Translate(XYZ)",Vector) = (0,0,0,0)_Scale("Scale(XYZ)",Vector)= (1,1,1,1)_Rotation("Rotation(XYZ)",Vector) = (0,0,0,0)[Header(View)]_ViewPos("View Pos",vector) = (0,0,0,0)_ViewTarget("View Target",vector) = (0,0,0,0)[Header(Camera)]_CameraParams("Size(X),Near(Y),Far(Z) Ratio(W)",Vector) = (0,0,0,1.777)[Enum(OrthoGraphic,0,Perspective,1)]_CameraType("CameraType",Float) = 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;float2 uv : TEXCOORD0;};struct Varying{float4 vertexCS : SV_POSITION;float2 uv : TEXCOORD0;};CBUFFER_START(UnityPerMaterial)float4 _Translate;float4 _Scale;float4 _Rotation;float4 _ViewPos;float4 _ViewTarget;float4 _CameraParams;float _CameraType;CBUFFER_ENDTEXTURE2D(_MainTex);SAMPLER(sampler_MainTex);Varying vert (Attribute v){Varying o;o.uv = v.uv;//平移變換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);//旋轉(zhuǎn)變換float4x4 M_rotateX = float4x4(1,0,0,0,0,cos(_Rotation.x),sin(_Rotation.x),0,0,-sin(_Rotation.x),cos(_Rotation.x),0,0,0,0,1);float4x4 M_rotateY = float4x4(cos(_Rotation.y),0,sin(_Rotation.y),0,0,1,0,0,-sin(_Rotation.y),0,cos(_Rotation.y),0,0,0,0,1);float4x4 M_rotateZ = float4x4(cos(_Rotation.z),sin(_Rotation.z),0,0,-sin(_Rotation.z),cos(_Rotation.z),0,0,0,0,1,0,0,0,0,1);v.vertexOS = mul(M_rotateX,v.vertexOS);v.vertexOS = mul(M_rotateY,v.vertexOS);v.vertexOS = mul(M_rotateZ,v.vertexOS);//觀察空間矩陣推導(dǎo)//P_view = [W_view] * P_world//P_view = [V_world]^-1 * P_world//P_view = [V_world]^T * P_worldfloat3 ViewZ = normalize(_ViewPos.xyz - _ViewTarget.xyz);float3 ViewY = float3(0,1,0);float3 ViewX = cross(ViewZ,ViewY);ViewY = cross(ViewX,ViewZ);float4x4 M_viewTemp = float4x4(ViewX.x,ViewX.y,ViewX.z,0,ViewY.x,ViewY.y,ViewY.z,0,ViewZ.x,ViewZ.y,ViewZ.z,0,0,0,0,1);float4x4 M_viewTranslate = float4x4(1,0,0,-_ViewPos.x,0,1,0,-_ViewPos.y,0,0,1,-_ViewPos.z,0,0,0,1);float4x4 M_view = mul(M_viewTemp,M_viewTranslate);float3 vertexWS = TransformObjectToWorld(v.vertexOS.xyz);//世界空間轉(zhuǎn)化到觀察空間float3 vertexVS = mul(M_view,float4(vertexWS,1)).xyz;//相機(jī)參數(shù)float h = _CameraParams.x * 2;float w = h * _CameraParams.w;float n = _CameraParams.y;float f = _CameraParams.z;//正交相機(jī)投影矩陣//P_Clip = [M_Clip] * P_viewfloat4x4 M_clipO;if(UNITY_NEAR_CLIP_VALUE==-1){//OpenGLM_clipO = float4x4(2/w,0,0,0,0,2/h,0,0,0,0,2/(n - f),(n + f) / (n - f),0,0,0,1);}if(UNITY_NEAR_CLIP_VALUE==1){//DirectXM_clipO = float4x4(2/w,0,0,0,0,2/h,0,0,0,0,1/(f-n),f/(f-n),0,0,0,1);}//透視相機(jī)投影矩陣float4x4 M_clipP;if(UNITY_NEAR_CLIP_VALUE==-1){//OpenGLM_clipP = float4x4(2*n/w,0,0,0,0,2*n/h,0,0,0,0,(n+f)/(n-f),(2*n*f)/(n-f),0,0,-1,0);}if(UNITY_NEAR_CLIP_VALUE==1){//DirectXM_clipP = float4x4(2*n/w,0,0,0,0,2*n/h,0,0,0,0,n/(f-n),(n*f)/(f-n),0,0,-1,0);}//手動將觀察空間下的坐標(biāo)轉(zhuǎn)換到裁剪空間下float4x4 M_clip = _CameraType ? M_clipP : M_clipO;o.vertexCS = mul(M_clip,float4(vertexVS,1));//觀察空間 轉(zhuǎn)化到 齊次裁剪空間//o.vertexCS = TransformWViewToHClip(vertexVS);//o.vertexCS = TransformObjectToHClip(v.vertexOS.xyz);return o;}half4 frag (Varying i) : SV_Target{float4 mainTex = SAMPLE_TEXTURE2D(_MainTex,sampler_MainTex,i.uv);return mainTex;}ENDHLSL}}
}
http://www.risenshineclean.com/news/51181.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)所需硬件參數(shù)哪個平臺推廣效果最好
  • 企業(yè)級網(wǎng)絡(luò)管理長沙seo網(wǎng)絡(luò)公司
  • 在網(wǎng)上做翻譯的網(wǎng)站市場營銷策劃方案3000字
  • 一級a做爰片免費網(wǎng)站孕交視頻愛戰(zhàn)網(wǎng)關(guān)鍵詞挖掘查詢工具
  • 做網(wǎng)站學(xué)哪個語言最好網(wǎng)絡(luò)推廣人員
  • 只做美食類目產(chǎn)品的網(wǎng)站谷歌play商店
  • 購物網(wǎng)站修改注冊信息模塊的分析唐老鴨微信營銷軟件
  • 北京網(wǎng)站開發(fā)培訓(xùn)網(wǎng)絡(luò)廣告策劃與制作
  • 網(wǎng)站首頁的重要性seo霸屏
  • wordpress 隱藏跳轉(zhuǎn)贛州網(wǎng)站seo
  • 手機(jī)自己制作表白網(wǎng)站app產(chǎn)品營銷方案
  • 凡科 預(yù)約網(wǎng)站企業(yè)seo排名哪家好
  • 織夢網(wǎng)站欄目不顯示不出來如何優(yōu)化百度seo排名
  • 山東建設(shè)管理局官方網(wǎng)站互聯(lián)網(wǎng)營銷的特點
  • 老網(wǎng)站權(quán)重低的原因排名檢測
  • 電子商務(wù)自助建網(wǎng)站2023年6月份疫情嚴(yán)重嗎
  • frontpage官方下載南寧seo推廣外包
  • php怎么做p2p網(wǎng)站深圳網(wǎng)站推廣公司
  • 烏克蘭vps國外服務(wù)器網(wǎng)絡(luò)優(yōu)化需要哪些知識
  • 南昌信息推廣平臺搜索引擎優(yōu)化哪些方面
  • wordpress內(nèi)嵌網(wǎng)頁福州排名seo公司
  • 用meteor框架做的微博網(wǎng)站淘寶指數(shù)官網(wǎng)入口
  • 自適應(yīng)網(wǎng)站如何做mip網(wǎng)頁免費拓客軟件哪個好用
  • 一站式企業(yè)服務(wù)平臺是什么搜索熱度和搜索人氣
  • 軟件開發(fā)工具屬于哪種類型的軟件提升seo排名
  • 開一家做網(wǎng)站的公司圖片seo優(yōu)化是什么意思
  • 網(wǎng)站做銷售是斤么工作google開戶
  • 住房和城鄉(xiāng)建設(shè)部網(wǎng)站建筑合同網(wǎng)站模板搭建
  • 網(wǎng)站建設(shè)公司官方網(wǎng)站怎么做品牌推廣和宣傳
  • 鑫三科技網(wǎng)站設(shè)計百度關(guān)鍵詞推廣費用