最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

URP | Shader實(shí)現(xiàn)彎曲效果

2022-06-17 22:12 作者:那個人真狗  | 我要投稿


目的

  • 實(shí)現(xiàn)場景彎曲球體效果

  • 增加宏控制是否開啟彎曲。

  • 自定義函數(shù)庫,調(diào)用函數(shù)庫

  • 學(xué)習(xí)腳本控制材質(zhì)屬性

思路

  • 獲取模型的世界空間位置信息,頂點(diǎn)世界位置信息和攝像機(jī)位置相減,計(jì)算出一個XYZ的3維向量。

  • 根據(jù)這個XYZ的方向乘偏移系數(shù)。計(jì)算出的結(jié)果偏移 Y軸,

  • 目前計(jì)算都是在世界空間下完成,我們需要轉(zhuǎn)換到模型空間對頂點(diǎn)位置進(jìn)行修改。

彎曲實(shí)現(xiàn)

  • 我們需要獲取那些熟悉信息

    • 頂點(diǎn)世界空間的位置信息

    • 攝像機(jī)的位置信息

準(zhǔn)備數(shù)據(jù)

  • 頂點(diǎn)2個變量控制X還Z的彎曲數(shù)值。

  • 在頂點(diǎn)著色器階段 獲取頂點(diǎn)世界位置信息和攝像機(jī)位置

注意:這里只是示例Shader 沒有輸出到片元著色器階段,如果需要可以輸出到片元著色器階段。

  • 增加彎曲系數(shù)

這里是倆個 方向,一個是X方向, 一個是Z方向。

  • 創(chuàng)建一個三維向量,修改這個三維向量的Y軸。

這里世界頂點(diǎn)位置加我們剛剛計(jì)算出的結(jié)果。

  • 現(xiàn)在是在世界空間,我們需要轉(zhuǎn)換到模型空間

  • 傳入頂點(diǎn)位置信息,輸出到渲染屏幕

效果

  • 頂點(diǎn)效果就出現(xiàn)了

設(shè)置關(guān)鍵字

目前效果實(shí)現(xiàn)了,我們需要一個開關(guān),控制是否開啟。

定義紋理

  • 增加關(guān)鍵字

  • 頂點(diǎn)結(jié)構(gòu)體 增加判斷

這里一個是默認(rèn)的頂點(diǎn)轉(zhuǎn)換到屏幕空間。 ?一個是頂點(diǎn)動畫計(jì)算完在轉(zhuǎn)換到屏幕空間。

  • 效果

  • 全代碼

函數(shù)庫的使用方法

  • 創(chuàng)建一個文件,改成hlsl文件格式。

  • 在文件里增加庫語法

  • 定義一個函數(shù),我們原來的頂點(diǎn)計(jì)算放到函數(shù)里

  • TransformWorldToHClip ? ?這里我們看到計(jì)算需要輸入頂點(diǎn)位置信息,以及控制彎曲的X,Z的數(shù)值。

注意:這里輸出的是float4類型。

  • 在回到Shader里,導(dǎo)入剛剛定義的庫。

  • 使用函數(shù)替換 原來的代碼

注意:下面這個就是我們剛剛自定義的函數(shù)。

源代碼

  • hlsl文件



  • Shader



C# 腳本控制Shader屬性

  • 這里使用動畫曲線控制切換的屬性,一開是是一個平面變成帶有弧度的半球體

創(chuàng)建一個C# 腳本,AnimationCurveTest

創(chuàng)建 幾個變量,外部控制,使用Update函數(shù) 設(shè)置材質(zhì)屬性。

  • 效果

擴(kuò)展 在C#中怎么獲取Shader里的材質(zhì)屬性?

第一種獲取材質(zhì)球?qū)傩?/h1>
  • 最簡單的一種獲取材質(zhì)的方法

  • 效果

這樣就需要把材質(zhì)拖到腳本里,這有一個缺點(diǎn),每次都需要拖入。

第二種獲取材質(zhì)球方法

  • 變量不暴露出去,

擴(kuò)展 還可以獲取多個材質(zhì)?

Material[] m_arr_material = GetComponent<Renderer>().materials;

調(diào)整曲線實(shí)現(xiàn)切換效果

  • 設(shè)置好曲線數(shù)值,效果

總結(jié)

  • 根據(jù)攝像機(jī)計(jì)算模型頂點(diǎn)動畫,

  • 使用關(guān)鍵字控制開啟關(guān)閉彎曲變形。

  • C#腳本控制材質(zhì)屬性的方法

  • 使用函數(shù)庫的方法定義函數(shù),這樣干凈簡單,后期好維護(hù)。


URP | Shader實(shí)現(xiàn)彎曲效果的評論 (共 條)

分享到微博請遵守國家法律
准格尔旗| 德惠市| 横峰县| 黄大仙区| 勃利县| 涟源市| 平江县| 扬中市| 玛沁县| 宁阳县| 赤峰市| 革吉县| 怀远县| 白山市| 周至县| 政和县| 张家港市| 郴州市| 大方县| 通城县| 南汇区| 镇巴县| 高唐县| 新巴尔虎右旗| 安多县| 二连浩特市| 西和县| 铜山县| 晋宁县| 桦甸市| 土默特左旗| 梧州市| 大埔区| 江源县| 乌海市| 柏乡县| 四平市| 安国市| 巴林左旗| 温泉县| 柏乡县|