日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D ShaderLab 物体相交

發(fā)布時(shí)間:2025/3/15 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D ShaderLab 物体相交 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

物體相交

  • 物體相交
    • 思路
    • 實(shí)現(xiàn)
    • 效果

物體相交

利用深度圖來(lái)做效果,不提供數(shù)學(xué)原理,只提供Shader腳本實(shí)現(xiàn)。

思路

已知需要渲染物體的深度信息,通過(guò)與_CameraDepthTexture紋理中的深度值進(jìn)行一些計(jì)算或者判定即可完成相交的效果。

計(jì)算方式:在視圖(View)坐標(biāo)系下,假設(shè)物體深度值為eyeZeyeZeyeZ,深度緩存中的深度值為sceneZsceneZsceneZ,相交寬度為IntersectionWidthIntersectionWidthIntersectionWidth;通過(guò)abs(eyeZ?sceneZ)/InstersectionWidthabs(eyeZ - sceneZ)/InstersectionWidthabs(eyeZ?sceneZ)/InstersectionWidth可以得到[0,n][0, n][0,n]的一個(gè)值,將[0,n][0, n][0,n]截?cái)嗟?span id="ozvdkddzhkzd" class="katex--inline">[0,1][0, 1][0,1],最后使用lerp函數(shù)實(shí)現(xiàn)一個(gè)過(guò)渡。

_CameraDepthTexture紋理記錄的是NDC空間下的深度信息,因此需要轉(zhuǎn)到視圖(View)空間下。

實(shí)現(xiàn)

Shader "Hidden/IntersectionHighlight" {Properties{_IntersectionColor("Intersection Color", Color) = (1,1,0,0)_IntersectionWidth("Intersection Width", Range(0, 2)) = 0.1}SubShader{Pass{// 關(guān)閉深度寫入, 否則渲染會(huì)出現(xiàn)問(wèn)題ZWrite Off// 關(guān)閉背面剔除, 渲染雙面Cull Off// 開blend, 在片段后會(huì)進(jìn)行blend混合Blend SrcAlpha OneTags {"RenderType" = "Opaque"}CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float4 vertex : SV_POSITION;float2 uv : TEXCOORD0;float4 screenPos : TEXCOORD1;float eyeZ : TEXCOORD2;};// 深度緩存圖sampler2D _CameraDepthTexture;// 相交顏色fixed4 _IntersectionColor;// 相交寬度float _IntersectionWidth;v2f vert (appdata v){v2f o;// o.vertex為裁剪空間中的點(diǎn)o.vertex = UnityObjectToClipPos(v.vertex);// 返回齊次坐標(biāo)系下的點(diǎn), 范圍是[0, w]; 其中,w不是viewport的width (ps: 需要與tex2Dproj函數(shù)配套使用)o.screenPos = ComputeScreenPos(o.vertex);// 將v.vertex與model和view矩陣相乘, 得到相機(jī)到物體的z坐標(biāo), 為view坐標(biāo)系下COMPUTE_EYEDEPTH(o.eyeZ);return o;}fixed4 frag(v2f i) : SV_Target{// UNITY_PROJ_COORD(a)應(yīng)該是預(yù)留的一個(gè)接口, 官方解釋為大部分平臺(tái)將返回入?yún)⒅?/span>// SAMPLE_DEPTH_TEXTURE_PROJ(tex, uv)內(nèi)部調(diào)用tex2Dproj(tex, uv), tex2Dproj會(huì)將(uv = uv / w)// LinearEyeDepth(depth)將返回depth在view坐標(biāo)系下的表示, 源碼中的_ZBufferParams是相機(jī)中far和near兩個(gè)參數(shù)表達(dá)式的結(jié)果值float screenZ = LinearEyeDepth(SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.screenPos)));// 相交計(jì)算, abs(物體的深度值 - 深度緩存的深度值) / 長(zhǎng)度 => [0, n]的范圍 => saturate限制到[0, 1]float diff = saturate(abs(i.eyeZ - screenZ) / (_IntersectionWidth / 2));// (0.0 -> 1.0) => (最亮 -> 最暗), diff => colorreturn lerp(_IntersectionColor, float4(0.0, 0.0, 0.0, 0.0), diff);}ENDCG}} }

效果

總結(jié)

以上是生活随笔為你收集整理的Unity3D ShaderLab 物体相交的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本国产精品视频 | 毛茸茸日本熟妇高潮 | 国产社区在线 | 97超级碰碰| 岛国精品在线 | 国产精品免费精品一区 | 国产 日韩 一区 | 顶级毛片 | 久久精品国产亚洲av香蕉 | 综合久久99 | 在线免费观看日韩视频 | 懂色一区二区三区 | 鲁啊鲁在线视频 | 人妻aⅴ无码一区二区三区 阿v免费视频 | 人人人人干 | 麻豆精品免费 | 草久久免费视频 | 国产chinese中国hdxxxx | 欧美极品少妇 | 免费av电影网址 | 天堂中文8 | 女女同性被吸乳羞羞 | 91第一页| 99久热| 欧美午夜精品久久久久久人妖 | 精品人妻二区中文字幕 | 天天做天天干 | 天堂√ | 亚洲一区二区三区四区五区xx | 亚洲精品一级二级 | 特级西西444www高清大胆免费看 | 少妇2做爰bd在线意大利堕落 | 亚洲国产精品成人综合在线 | 日本在线视频一区 | 无码粉嫩虎白一线天在线观看 | 99国产精品人妻噜啊噜 | 日批视频在线播放 | 亚洲精品久久久久久宅男 | 91av网址 | 国产精品美女毛片真酒店 | 欧美日本一区 | 日日爽夜夜 | 国产成人在线观看免费网站 | 国产亚洲精品久久久久婷婷瑜伽 | 亚洲小说区图片区都市 | 99国产精品久久久久久久成人 | 日本久久激情 | 五月天国产精品 | 日韩国产精品一区二区三区 | 日韩无砖 | 亚洲熟妇av乱码在线观看 | 国产乱码精品一区二区三区亚洲人 | 午夜一级视频 | 亚洲伦理精品 | 成人在线免费高清视频 | 久久综合区 | 福利一区福利二区 | 亚洲美女av在线 | 蜜桃成人在线视频 | 欧美一级片免费观看 | 成人听书哪个软件好 | 免费又黄又爽又猛大片午夜 | 国产精品jizz在线观看软件 | 性色在线观看 | 国产精品综合久久 | 国产中文在线观看 | 凹凸国产熟女精品视频 | jzjzjzjzj亚洲成熟少妇 | 美国福利片| 国产成人99久久亚洲综合精品 | 国产第一页在线 | 天天干天天操天天摸 | 9191国产精品 | 国产最新自拍视频 | 中国性老太hd大全69 | 国产酒店自拍 | 亚洲码中文 | 国产精品永久免费观看 | 国产精品第一 | 成人精品亚洲人成在线 | 国产激情福利 | 色涩av| 香港台湾日本三级大全 | 精品一二三四区 | 污污av| 亚洲视频入口 | 亚洲不卡中文字幕无码 | 国产成人精品一区二区三 | 亚洲尤物视频 | 夫の上司に犯波多野结衣853 | 亚洲精品一区三区三区在线观看 | 山村淫强伦寡妇 | 欧美一区二区视频 | 久久久全国免费视频 | 男人天堂五月天 | 亚洲熟女乱色一区二区三区 | 亚洲AV无码国产精品国产剧情 | 丰满大乳少妇在线观看网站 | 国产精品久久久久久久蜜臀 |