国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity Shader從內置渲染管線遷移到URP

這篇具有很好參考價值的文章主要介紹了Unity Shader從內置渲染管線遷移到URP。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Unity 在URP中將shader更新為了HLSL語言,使用build-in shader 無法直接在URP中使用
這里講一下關于shader的更新方法

參考 From Built-in to URP

更新步驟

  1. Tags 添加
    "RenderPipeline" = "UniversalPipeline"

  2. CGPROGRAM ENDCG 改變?yōu)?HLSLPROGRAM ENDHLSL

  3. #include "UnityCG.cginc"
    更改為 #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"

  4. fixed4 類型更改為 half4

  5. 函數(shù)替換對照

Build-in RP URP
UnityObjectToClipPos(v.vertex); TransformObjectToHClip(v.vertex.xyz);
mul(unity_ObjectToWorld,v.vertex).xyz TransformObjectToWorld(v.vertex.xyz)
mul(float4(v.normal, 0.0),unity_WorldToObject).xyz /UnityObjectToWorldNormal(v.normal) TransformObjectToWorldNormal(v.normal)

代碼

上代碼 一個簡單的uv流動shader
內置渲染管線

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'

Shader "Custom/liuguang"
{
    Properties
    {
        _FlowTex("Texture", 2D) = "white" {}
        _FlowTilling("Flow Tilling",Vector) = (1,1,0,0)
        _FlowSpeed("Flow Speed",Vector) = (1,1,0,0)

    }
    SubShader
    {
        Tags { "Queue" = "Transparent" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
        // make fog work


            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
                float3 normal : NORMAL;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 pos : SV_POSITION;
                float3 pos_world : TEXCOORD1;
                float3 normal_world : TEXCOORD2;
                float3 pivot_world : TEXCOORD3;
            };


            sampler2D _FlowTex;
            float4 _FlowTilling;
            float4 _FlowSpeed;
    

            v2f vert(appdata v)
            {
                v2f o;
                o.pos = UnityObjectToClipPos(v.vertex);
                float3 normal_world = mul(float4(v.normal, 0.0),unity_WorldToObject).xyz;
                o.normal_world = normalize(normal_world);
                o.pos_world = mul(unity_ObjectToWorld,v.vertex).xyz;
                o.pivot_world = mul(unity_ObjectToWorld, float4(0, 0, 0, 1)).xyz;
                o.uv = v.texcoord;
                return o;
            }

            fixed4 frag(v2f i) : SV_Target
            {
                half2 uv_flow = (i.pos_world.xy - i.pivot_world.xy) * _FlowTilling.xy;
                uv_flow = uv_flow + _Time.y * _FlowSpeed.xy;
                float4 flow_rgba = tex2D(_FlowTex, uv_flow);
                return flow_rgba;
            }
            ENDCG
        }
    }
}

URP

Shader "Custom/flowlight"
{
    Properties
    {
        _FlowTex("Texture", 2D) = "white" {}
        _FlowTilling("Flow Tilling",Vector) = (1,1,0,0)
        _FlowSpeed("Flow Speed",Vector) = (1,1,0,0)

    }
    SubShader
    {
        Tags { "RenderType" = "Opaque"  "RenderPipeline" = "UniversalPipeline" }
        LOD 100

        Pass
        {
            HLSLPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
                float3 normal : NORMAL;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 pos : SV_POSITION;
                float3 pos_world : TEXCOORD1;
                float3 normal_world : TEXCOORD2;
                float3 pivot_world : TEXCOORD3;
            };


            sampler2D _FlowTex;
            float4 _FlowTilling;
            float4 _FlowSpeed;


            v2f vert(appdata v)
            {
                v2f o;
                o.pos = TransformObjectToHClip(v.vertex.xyz);
                float3 normal_world = TransformObjectToWorldNormal(v.normal);
                o.normal_world = normalize(normal_world);
                o.pos_world = TransformObjectToWorld(v.vertex.xyz);
                o.pivot_world = TransformObjectToWorld(float3(0,0,0));
                o.uv = v.texcoord;
                return o;
            }

            half4  frag(v2f i) : SV_Target
            {
                half2 uv_flow = (i.pos_world.xy - i.pivot_world.xy) * _FlowTilling.xy;
                uv_flow = uv_flow + _Time.y * _FlowSpeed.xy;
                float4 flow_rgba = tex2D(_FlowTex, uv_flow);
                return flow_rgba;
            }
            ENDHLSL
        }
    }
}

多pass的情況

對于跟光照相關的shader ,遷移到urp可能會只執(zhí)行第一個pass
需要通過lightmode 鎖定到pass上
urp最多支持三個pass ,按如下的順序為pass 添加tag即可
Tags{"LightMode" = "SRPDefaultUnlit"}
Tags{"LightMode" = "UniversalForward"}
Tags{"LightMode" = "LightweightForward"}文章來源地址http://www.zghlxwxcb.cn/news/detail-451440.html

到了這里,關于Unity Shader從內置渲染管線遷移到URP的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • unity 2019 內置渲染管線 光照與Lighting面板 參數(shù)詳解

    unity 2019 內置渲染管線 光照與Lighting面板 參數(shù)詳解

    本文僅討論內置渲染管線,高清渲染管線和通用渲染管線不在討論范圍之內 內置渲染管線就是最普通的工程自帶的渲染管線 本文使用的Unity版本為2019.4 ,。如果你的版本不同,參數(shù)和參數(shù)的功能可能不同。 由于作者并非專業(yè)技美,只是一個苦逼的碼農(nóng),難免有錯誤,請大佬

    2024年02月17日
    瀏覽(18)
  • Unity Shader 學習筆記(4)URP渲染管線帶陰影PBR-Shader模板 -- 新增可自定義陰影顏色

    Unity Shader 學習筆記(4)URP渲染管線帶陰影PBR-Shader模板 -- 新增可自定義陰影顏色

    材質面板截圖 功能實現(xiàn)(URP渲染管線下): 1、進一步優(yōu)化Shader結構和算法; 2、包含PBR材質; 3、投射和接收陰影,并升級 支持自定義陰影顏色 ; 4、支持點光源照射(但不支持點光源陰影)。 通用渲染截圖 自定義陰影顏色截圖 完整代碼: 寫在最后: 1、在我的上一篇文

    2024年02月12日
    瀏覽(27)
  • 【Unity Shader Graph URP渲染管線下的自定義半透明效果_半透明案例分享】

    【Unity Shader Graph URP渲染管線下的自定義半透明效果_半透明案例分享】

    URP的渲染管線下 在項目設置里找到“Graphic” 找到URP Asset文件 索引到Renderer List文件——“ForwardRenderer” 在這個“ForwardRenderer”文件里找到“Add Renderer Feature” 添加一個渲染對象,類似下圖:Render Object (Experimental) 如圖設置,將“Event”設置成 AfterRenderingSkybox ,然后“Layer M

    2024年02月09日
    瀏覽(32)
  • Unity學習 渲染管線介紹

    Unity學習 渲染管線介紹

    SRP: (Scriptable Render Pipeline,可編程渲染管線/腳本化渲染管線),可以在Unity通過C#腳本調用API配置或執(zhí)行渲染命令的方式來實現(xiàn)渲染流程,SRP將這些命令傳遞給Unity底層圖形體系結構(low-level graphics architecture),然后再將指令發(fā)送給圖形API(Graphics API),最終由GPU進行處理

    2024年02月04日
    瀏覽(22)
  • 第二十章 Unity 渲染管線

    第二十章 Unity 渲染管線

    渲染管線是計算機圖形中最基礎最核心的部分,它是將3D場景顯示到2D平面的技術過程。在DirectX課程中,我們就介紹了渲染管線,分為固定渲染管線和可編程渲染管線(Shader)。但是在DirectX 10版本之后統(tǒng)一了渲染架構,就是將頂點著色器和像素著色器被合二為一,成為流處理

    2024年02月07日
    瀏覽(19)
  • Unity升級到URP渲染管線,

    Unity升級到URP渲染管線,

    首先 需要安裝URP的包 安裝后 然后打開ProjectSettings 替換 上一步創(chuàng)建 URP的配置文件 這個時候有些材質就會變成洋紅色 選擇RenderPipelineConverter 等待轉換完成即可,

    2024年02月15日
    瀏覽(35)
  • Unity | HDRP高清渲染管線學習筆記:Volume

    Unity | HDRP高清渲染管線學習筆記:Volume

    目錄 一、Volume框架 二、Volume Profile 三、Volume重載 1.Visual Environment(環(huán)境設置) 1.1 Sky type 1.2 Ambient Mode 2.Sky 2.1 HDRI Sky(HDRI天空) 2.2 Gradient Sky(漸變天空) 2.3?Physically Based Sky(基于物理的天空) 3.Exposure(屏幕曝光) 3.1 Mode 3.2 Metering Mode(測光模式) 3.3 Limit Min和Limit Max 3.

    2024年02月11日
    瀏覽(27)
  • Unity | HDRP高清渲染管線學習筆記:示例場景解析

    Unity | HDRP高清渲染管線學習筆記:示例場景解析

    目錄 一、HDRP入門 1.HDRP設置 ?1.1 HDRP配置文件中的全部設置項 ????????1.1.1?Rendering下的Lit Shader Mode ????????1.1.2 Lighting 下的Volumetrics(體積光)和Screen Space Reflection(屏幕空間反射) 2.離線渲染VS實時渲染 3.Volume組件 3.1Sky and Fog Volume 天空霧效 4.光照貼圖烘焙 5.HDRP材質和

    2024年02月08日
    瀏覽(22)
  • Unity | HDRP高清渲染管線學習筆記:基本操作

    Unity | HDRP高清渲染管線學習筆記:基本操作

    目錄 一、場景整體環(huán)境光強度 1.HDRI Sky 2.Shadows 二、屏幕后處理效果(Post Processing) 1.Exposure 2.Post-processing/Tonemapping 三、抗鋸齒 四、添加光源 1.Light Explorer窗口 2.光照探針組 3.反射探針 4.烘焙光照貼圖 本文主要是了解HDRP基本操作: 如何為一個已經(jīng)擺放好模型的場景添加環(huán)境光等

    2024年02月16日
    瀏覽(21)
  • Unity-3DRPG游戲 學習筆記(1)--使用URP渲染管線

    Unity-3DRPG游戲 學習筆記(1)--使用URP渲染管線

    教程地址: Unity2020 3DRPG游戲開發(fā)教程|Core核心功能01:Create Project 創(chuàng)建項目導入素材|Unity中文課堂_嗶哩嗶哩_bilibili 創(chuàng)建URP通用渲染管線(2021版本) 1. 打開:Windows--Package Manager--左上角下拉選擇Unity Registry--搜索Universal RP--Install 2.?Project窗口--Assets--右鍵Create--Rendering--URP Asstes

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包