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

基于URP的程序化天空盒

這篇具有很好參考價(jià)值的文章主要介紹了基于URP的程序化天空盒。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

參考來源:?

?天空盒教程第 1 部分 |開爾文·范·霍恩 (kelvinvanhoorn.com)

【程序化天空盒】過程記錄02:云擾動(dòng) 邊緣光 消散效果_九九345的博客-CSDN博客

程序化天空盒實(shí)現(xiàn)晝夜變換 - 知乎 (zhihu.com)

一、太陽(yáng)?

? ? ? ? 目標(biāo):改變光的方向,使天空球旋轉(zhuǎn)(日夜交替);光的正方向:太陽(yáng),光的反方向:月亮;

? ? ? ? 步驟一:計(jì)算天空球上的uv坐標(biāo)與光的方向的距離,越與光的方向重合,越接近0,貼圖越黑。(天空盒uv為xyz三個(gè)方向)

? ? ? ? 步驟二:除以半徑創(chuàng)建圓形,然后反相。

? ? ? ? smoothstep:可以用來生成0到1的平滑過渡值,它也叫平滑階梯函數(shù)。

基于URP的程序化天空盒,unity,游戲引擎基于URP的程序化天空盒,unity,游戲引擎基于URP的程序化天空盒,unity,游戲引擎

代碼:

Shader "URP_Skybox"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _SunRadius ("太陽(yáng)半徑", float) = 1.0
    }
    SubShader
    {
        Tags { "RenderType"="Background" "RenderPipeline"="UniversalPipeline"}
        

        Pass
        {
            HLSLPROGRAM
            #pragma vertex vert
            #pragma fragment frag



            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
            
            CBUFFER_START(UnityPerMaterial)

            float _SunRadius;

            CBUFFER_END

            TEXTURE2D(_MainTex);
            SAMPLER(sampler_MainTex);

            struct appdata
            {
                float4 vertex : POSITION;
                float3 uv : TEXCOORD0;
            };

            struct v2f
            {
                float3 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float4 posWS : TEXCOORD1;
            };

            

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = TransformObjectToHClip(v.vertex);
                o.uv = v.uv;
                o.posWS = mul(unity_ObjectToWorld, v.vertex);
                return o;
            }

            float4 frag (v2f i) : SV_Target
            {
                Light light = GetMainLight(TransformWorldToShadowCoord(i.posWS));
                half sunDist = distance(i.uv.xyz, light.direction);
                //smoothstep:大于等于0.7 為0,小于等于1 為1
                half sunArea = 1-smoothstep(0.7, 1, sunDist * _SunRadius);
                return float4(sunArea,sunArea,sunArea,1);
            }
            ENDHLSL
        }
    }
}

二、月亮

? ? ? ? 目標(biāo):月亮定位、貼圖采樣等 月亮使用cubemap,可以旋轉(zhuǎn)。

? ? ? ? 步驟一:光線追蹤球體信息并從中創(chuàng)建模板(使用sphIntersect),如果沒有相交就創(chuàng)建遮罩。

? ? ? ? 步驟二:計(jì)算照明(NdotL),需要法線(視線方向-月亮頂點(diǎn)方向),光線方向?yàn)樘?yáng)光方向的反向。

基于URP的程序化天空盒,unity,游戲引擎基于URP的程序化天空盒,unity,游戲引擎

? ? ? ? ?步驟三:添加曝光度控制月亮的亮度,采樣月亮cubemap紋理,并使用矩陣在月亮變換的時(shí)候自旋轉(zhuǎn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-555272.html

Shader "URP_Skybox"
{
    Properties
    {
        [Header(Moon)]
            [NoScaleOffset] _MoonCubeMap ("月亮貼圖", Cube) = "_Skybox" {}
            _MoonRadius ("月亮半徑", Range(0, 1)) = 0.05
            _MoonMaskRadius("月亮遮罩半徑", range(1, 25)) = 10
            _MoonSmooth("月亮邊緣平滑度", Range(0, 1)) = 0.7
            _MoonExposure("月亮曝光度", range(0, 1)) = 1
        [Header(Sun)]    
            _SunRadius 

到了這里,關(guān)于基于URP的程序化天空盒的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 虛幻引擎程序化資源生成框架PCG 之 UPCGBlueprintElement源碼筆記(二)數(shù)據(jù)流

    虛幻引擎程序化資源生成框架PCG 之 UPCGBlueprintElement源碼筆記(二)數(shù)據(jù)流

    PCG節(jié)點(diǎn)處理的是數(shù)據(jù)流,也就是點(diǎn)云,點(diǎn)云到底是啥?籠統(tǒng)地說就是一個(gè)個(gè)攜帶著信息的點(diǎn)組成的集合。但是在具體是使用過程中,我們還得了解這些”攜帶著信息的點(diǎn)“是如何被層層包裝起來的。本文中老王就和大家一邊拆解源代碼一邊做實(shí)驗(yàn),嘗試著深入理解一下PCG中的

    2024年02月13日
    瀏覽(71)
  • Unity 使用柏林噪聲程序化生成地形

    Unity 使用柏林噪聲程序化生成地形

    參考教程鏈接 項(xiàng)目鏈接 ??對(duì)噪聲和柏林噪聲不了解的可以看下面這個(gè)講解。 柏林函數(shù)簡(jiǎn)介 ??簡(jiǎn)單來說柏林噪聲是一種連續(xù)的、漸變的噪聲,不理解原理也無所謂,unity自帶有Mathf.PerlinNoise(X-coordinate,Y-coordinate);我們可以根據(jù)這個(gè)來制作更有層次性的柏林噪聲。你可以把這個(gè)

    2024年02月15日
    瀏覽(28)
  • 虛幻引擎程序化資源生成框架PCG(Procedural Content Generation Framework) 之 PCG基礎(chǔ)

    虛幻引擎程序化資源生成框架PCG(Procedural Content Generation Framework) 之 PCG基礎(chǔ)

    可以和Houdini說拜拜了 Unreal Engine 5.2全新推出了程序化資源生成框架即Procedural Content Generation Framework下文簡(jiǎn)稱PCG, 開發(fā)者可以通過PCG程序快速生成宏大且復(fù)雜的游戲場(chǎng)景。以往這種程序化資源(場(chǎng)景)的生成需要借助Houdini來實(shí)現(xiàn),有了PCG,真的可以和Houdini說拜拜了! 優(yōu)點(diǎn):

    2024年02月11日
    瀏覽(19)
  • 【畢業(yè)設(shè)計(jì)】基于程序化生成和音頻檢測(cè)的生態(tài)仿真與3D內(nèi)容生成系統(tǒng)----程序化生成地形算法設(shè)計(jì)

    【畢業(yè)設(shè)計(jì)】基于程序化生成和音頻檢測(cè)的生態(tài)仿真與3D內(nèi)容生成系統(tǒng)----程序化生成地形算法設(shè)計(jì)

    Input: Output: 程序化生成地形算法是一種在計(jì)算機(jī)中生成地形的方法,通常用于游戲開發(fā)和虛擬現(xiàn)實(shí)應(yīng)用。下面是幾種常見的程序化生成地形算法: Diamond-Square Algorithm(鉆石-正方形算法) 該算法通過隨機(jī)值填充網(wǎng)格的四個(gè)角落,然后計(jì)算中間點(diǎn)的高度值,不斷重復(fù)直到整個(gè)網(wǎng)

    2024年02月01日
    瀏覽(28)
  • 什么是程序化交易

    什么是程序化交易

    大到量化、程序化、高頻交易、套利交易、主觀投資這些基本的概念,小到網(wǎng)格交易、條件單、T+0、ETF套利、期現(xiàn)套利、算法拆單交易、打板策略等具體的投資方式。如果沒有接觸過這些,很容易混淆。 程序化交易: 指通過既定程序或特定軟件,自動(dòng)生成或執(zhí)行交易指令的

    2024年02月06日
    瀏覽(25)
  • 分享股票量化交易程序化模型的設(shè)計(jì)思路

    一個(gè)股票量化交易程序化模型的入市設(shè)計(jì)往往伴隨著設(shè)計(jì)者的偏好和交易時(shí)間框架等。主要分為震蕩交易、套利交易以及趨勢(shì)跟蹤等。當(dāng)然在近些年的發(fā)展中,也出現(xiàn)了類似遺傳算法、人工智能神經(jīng)網(wǎng)絡(luò)等許多種類的系統(tǒng)模型。 但是對(duì)于大多數(shù)投資者來說,趨勢(shì)跟蹤系統(tǒng)可以

    2024年02月03日
    瀏覽(45)
  • 程序化交易接口策略過濾器–九宮格

    不同的程序化交易接口策略適用于不同的市場(chǎng)情況,有些交易策略使用于均值回歸,有些則試用于方向明顯的時(shí)候,有些試用于方向不明顯的時(shí)候,因此,我們需要根據(jù)不同的市場(chǎng)情況,綜合考慮方向和波動(dòng)率,市場(chǎng)成交量來選擇合適的交易策略。 本文介紹了一種選擇程序化

    2023年04月09日
    瀏覽(46)
  • Three.js程序化3D城市建?!綩penStreetMap】

    Three.js程序化3D城市建?!綩penStreetMap】

    對(duì)于我在 Howest 的研究項(xiàng)目,我決定構(gòu)建一個(gè) 3D 版本的 Lucas Bebber 的“交互式講故事的動(dòng)畫地圖路徑”項(xiàng)目。 我將使用 OSM 中的矢量輪廓來擠出建筑物的形狀并將它們添加到 3js 場(chǎng)景中,隨后我將對(duì)其進(jìn)行動(dòng)畫處理 推薦:用 NSDT編輯器 快速搭建可編程3D場(chǎng)景 為了使用 Node 和

    2024年02月11日
    瀏覽(25)
  • 用java去實(shí)現(xiàn)程序化廣告應(yīng)該有哪些步驟?

    1. 需求分析和規(guī)劃 在這一階段,我們需要詳細(xì)分析和理解項(xiàng)目需求,并制定相應(yīng)的規(guī)劃和計(jì)劃。這包括以下幾個(gè)步驟: 項(xiàng)目背景和目標(biāo): 理解項(xiàng)目的背景和目標(biāo),確定開發(fā)的目的和意義。 功能需求分析: 分析用戶需求,明確項(xiàng)目需要實(shí)現(xiàn)的功能和特性。 技術(shù)可行性評(píng)估:

    2024年04月10日
    瀏覽(32)
  • “小程序化”成OA數(shù)字化升級(jí)突破口

    “小程序化”成OA數(shù)字化升級(jí)突破口

    如果說新冠疫情引發(fā)了在線辦公需求的激增,那么企業(yè)對(duì)數(shù)字化轉(zhuǎn)型的渴望,則是數(shù)字化辦公賽道持續(xù)火熱的根本原因。 2020年新冠疫情爆發(fā),遠(yuǎn)程辦公成為了大部分企業(yè)無奈又必然的選擇,三年以來,隨著疫情的持續(xù)蔓延和常態(tài)化管控,在線辦公逐漸成為剛需,企業(yè)對(duì)于在

    2024年02月08日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包