自由學習記錄(68)

🧠 blender為什么不用 M 或 T?

鍵位含義為什么沒選
MMove?其實被用作「Move to Collection」等功能不符合歷史定義,而且功能太多了
TTransform? 但 transform 是一個總稱(含移動、旋轉、縮放)T 被用來打開工具欄(Tool Shelf)

Blender 設計理念是 直接映射操作行為 而非語義縮寫,所以:

"我抓住物體(Grab)→ 然后移動" 這個動作 = G

重啟blender刪除0的使用數據

動,這是特效

不是拿骨骼k的,特效拿骨骼去k---大材小用

絲襪的網格就不能是邊緣清晰了

Alpha Cutout(又稱 Alpha Test)

這些都是適合使用 Alpha Cutout 的典型場景:

  1. 鏤空金屬:例如鐵絲網、鐵門,alpha map 控制哪部分鏤空。

  2. 裙擺邊緣:卡通風格中經常用來表現輕飄飄的剪裁邊。

  3. 特定風格下的頭發:如二次元發卡、劉海尖等,邊緣清晰,直接裁切。

  4. 樹葉:一整片葉子貼圖中,有 alpha 圖表現葉子形狀,用裁切來剔除空白區域。

  5. 卡通渲染特效:比如一些光環、魔法陣邊緣清晰的效果。

  • 邊緣效果太實

    • 沒有平滑漸變的邊緣,會像“鋸齒狀”。

    • 在一些軟材質(如羽毛、煙霧)上不適合,看起來太硬。

  • 移動端性能較差

    • 因為 clip()discard 會造成分支跳轉,GPU 不能批量并行執行,會增加性能壓力(尤其 tile-based mobile GPU)。

  • Alpha Blend(左):使用 alpha blend,像素不直接裁掉,而是混合透明度,邊緣更自然,但排序問題嚴重。

  • Alpha Test / Cutout(右):邊緣硬,樹葉清晰,沒有疊加透明問題,適合植物類。

攝像機可以設置rendertype,改看到的物體材質的rendertype

當做形式,但特效相關

ab,如果是?Blend One OneMinusSrcAlpha ?

如果改成?Blend SrcAlpha OneMinusSrcAlpha

結果上預先再乘以一個alpha,所以會顯得忘里面再吃一點,更加暗一點

?視頻里更明顯??

名稱意義
Zero(0,0,0,0),相當于完全不參與混合
One(1,1,1,1),完全參與
SrcAlpha當前像素的 Alpha 值,用于控制透明度
OneMinusSrcAlpha1 - Alpha,常用于背景保留比例
DstColor目標顏色參與混合
OneMinusDstColor背景顏色的反向
SrcAlphaSaturatemin(alpha, 1-alpha),用于特殊自遮擋
名稱含義
Add默認,Src + Dst
SubtractSrc - Dst
ReverseSubtractDst - Src
Min / Max分別取顏色的最小值/最大值
Multiply乘法混合,變暗
Screen濾色,提亮
Overlay疊加,亮中有暗、暗中有亮
ColorDodge / ColorBurn高光/暗化模式
HardLight / SoftLight硬光/柔光(Photoshop同名混合模式)
Difference / Exclusion差值、排除,主要用于特效或濾鏡
HSLHue/Saturation/...高級 HSL 模式,需要擴展 OpenGL 支持

// 標準透明混合
Blend SrcAlpha OneMinusSrcAlpha

// 累加發光效果
Blend One One

// 全部替代原始顏色
Blend One Zero

右邊要用到c#里面的知識

最終顏色=Src?DstColor+Dst?(1?DstColor)

每個通道是 逐個分量(component-wise)參與混合的,四個值完全獨立。

Unity 和 OpenGL 中顏色混合不是單值計算,而是對 RGBA 每個分量 獨立混合DstColor 代表的是 (Rd, Gd, Bd, Ad),參與逐分量乘法。

Shader 變量是否占用內存?:會占用,但很少
就像普通編程語言(如 C/C++)一樣,Shader 中局部變量在函數作用域內會占據寄存器或臨時存儲空間,但函數執行結束后這些空間就被釋放。它不會疊加占用內存,只會復用。

🧪 Blend 配置選擇建議

使用場景Blend 設置說明
? 沒有預乘Blend SrcAlpha OneMinusSrcAlphaUnity 默認
? 預乘了 alphaBlend One OneMinusSrcAlpha更干凈,無邊緣污染

實際在做特效的時候很多圖都是預乘的

特效是,是拽特效庫里面的圖,里面的圖有帶alpha,有不帶alpha的

所以需要根據這種復雜的情況做不同的shader

顏色預乘(Premultiplied Alpha)不是為了讓顏色“變”,而是為了讓混合公式更簡潔、更正確。

RGB = 原始RGB × Alpha

這確實讓顏色變得“看起來更淺”,但這不是為了視覺效果,而是為了更安全和高效的混合

預乘的真實目的

目的說明
? 避免邊緣污染沒預乘時,Alpha 為 0 的區域 RGB 仍保留原始顏色,可能在邊緣混出錯誤色(常見于羽化、貼圖壓縮)
? 簡化混合公式使用 Blend One OneMinusSrcAlpha,跳過 shader 中手動 rgb * alpha 的步驟,提高效率
? 提高性能在某些 GPU 中預乘圖像可以加速合成處理,尤其是在后期特效、大量粒子系統中
  • 貼圖一個羽毛的邊緣處,Alpha 為 0,但 RGB 仍是藍色。

    • ? 未預乘:這時候羽毛周圍是透明藍 → 混合會出現藍邊。

    • ? 預乘:這時候羽毛周圍 RGB = 0 → 混合干凈無色。

即使 alpha 是 0,那些 RGB 信息仍然參與混合計算,只是最后你“看不到”而已,但它們影響了結果

假設羽毛邊緣處貼圖顏色如下:

RGB = (0.0, 0.0, 1.0) // 藍色  
A = 0.0 // 完全透明outColor.rgb = Src.rgb * Src.a + Dst.rgb * (1 - Src.a)= (0.0, 0.0, 1.0) * 0.0 + Dst.rgb * 1.0= Dst.rgb

看起來沒事對吧?但是如果:

  • 貼圖有壓縮(如 DXT、BCn),藍邊可能“泄露”到 Alpha 不為 0 的區域

  • MSAA、模糊、濾波、顏色拉伸等,RGB 會被周圍像素采樣

  • 這時候這個“透明藍”的 RGB 值就污染進來了

👉 所以雖然當前像素是 A=0,但它的 RGB 會影響附近的混合區域。

PR(Pull Request) 是什么?

Pull Request(簡稱 PR) 是 GitHub(以及其他 Git 托管平臺)中用于提議更改代碼的機制。

你可以理解為:

“我 fork 或 checkout 了項目,在某個分支上修改了代碼,現在我想合并回主項目,請大家審核我的代碼。”

在 PR 頁面上你可以看到:

  • 哪些 PR 是 Open(未合并)

  • 哪些是 Merged(已合并)

  • PR 的內容改了哪些文件、增加/刪除了哪些代碼

?設置里的general?

Branch Format(自動創建分支的命名模板)

當你讓 Codex 幫你在 GitHub 上做代碼修改、創建 Pull Request 時,它可能會自動為你創建分支(branch)。

這個設置決定它用什么格式來命名這些分支。

ta-fix/{feature}-{date}
就能生成 ta-fix/alpha-blend-fix-2025-07-08 這樣的分支名。

?設置里的environment

當你讓 Codex 執行代碼(比如測試腳本、自動安裝依賴、運行構建任務等)時,它在什么系統環境下運行、如何準備運行環境、是否聯網等。

Container image(容器鏡像)

這是你代碼執行時用的基礎系統環境,類似虛擬機的“操作系統”。

  • 你選擇的是 universal,它是基于 Ubuntu 24.04 的通用鏡像,已經預裝了很多常見工具(如 Python、Node.js、Git、curl、pip 等)。

  • 點旁邊的 Preinstalled packages 可以查看這個環境自帶了哪些依賴。

💡 **理解類比:**你可以把它當成“你租給 Codex 用的一臺電腦”,這就是裝的系統。

Environment variables(環境變量)

這里可以設置運行代碼時注入的環境變量,常用于:

  • 設置路徑(如 PATH=/custom/bin

  • 提供構建標志(如 BUILD_ENV=debug

  • 控制行為(如 USE_GPU=false

🚫 默認不需要設置,除非你知道項目某些部分依賴這些變量。

Secrets(機密變量)

  • 這里可以添加一些不應該暴露在代碼里的敏感信息,如:

    • API token(比如 GitHub Token)

    • 密碼、私鑰路徑

  • Codex 會在運行環境中注入這些 secret,但不會在輸出中顯示出來(防泄漏)

📌 適合你之后部署 Web 項目或要訪問私有資源時使用。

“Network access is always enabled for this step.”
意思是 這一段 setup 腳本始終可以聯網執行,哪怕你在其他地方關閉了 Codex 的聯網權限。

所以你需要確保 setup 腳本不會拉取惡意代碼或安裝危險依賴,尤其是在使用第三方倉庫或插件時。

這里的Test和Createpr是干什么的?

這整個過程

步驟意義
? Codex 生成了腳本寫入了 SimpleLogger.cs
? 自動跑了 git status檢查是否準備好納入提交
? 輸出干凈說明文件被正確追蹤,沒有遺漏
? 可以點擊 “Create PR”正式發起 Pull Request,推送到 GitHub 上

Create PR 按鈕 —— 是 創建 GitHub Pull Request 的快捷入口

你點這個按鈕,就是:

將 Codex 生成的更改(在右側 Diff 面板中可見)作為一次 Pull Request(合并請求)提交到你的 GitHub 倉庫

也就是:你允許 Codex 把這次代碼更改作為“一個功能或補丁”正式提交,并進入 GitHub 的協作工作流。

現在嘗試Createpr

跳轉到view視圖里面

xxxxx

我的建議還是去好好玩幾遍 https://?編輯learngitbranching.js.org/?locale=zh_CN git 游戲, 理解一下 git 的底層邏輯, 不然以后你碰到 git 問題真的挺惡心的. 如果你真的把版本控制弄的一團糟, https://ohshitgit.com/ 是你的解藥.

----

結論是codex速度太慢,稍微又熟悉了一下github

xxxxx

浮點精度問題,噪聲圖和maintex相互交錯,所以需要frac

UV 被擾動后超出了 [0,1] 范圍

uv += noise; ?// noise 可能是 [-1, 1],擾動后 uv > 1

精度,超出的部分沒東西采樣,就透明

frac(x) 會保留 x 的小數部分,相當于將 UV 強制 wrap 到 [0,1) 區間

  • frac(0.25)0.25

  • frac(1.001)0.001

  • frac(-0.3)0.7(因為 floor(-0.3) = -1, 所以 -0.3 - (-1) = 0.7)

mod(x, 1.0) 的區別?

  • frac(x)mod(x, 1.0) 類似,但 frac 更快,且語義專為 [0,1) wrap 設計

  • 注意:對于負數時,frac 總是返回正數,而 mod 會根據語言/平臺返回正負不定(GLSL 的 mod 和 HLSL 的 mod 表現不同)

系統時間留到非常非常久了

如果在多個 DCC 軟件中只做簡單建模(正方體、雕刻等),導出的 FBX 是否可以完全統一
又是哪些額外因素會導致 FBX 不再一致

? 骨骼、權重、動畫等內容 —— 不能保證完全通用

功能項FBX 是否支持不同 DCC 軟件是否能一致解析原因說明
? 網格結構?? 完全支持?? 一致(標準幾何體)頂點、面、UV、法線都定義明確
? 法線切線?? 支持?? 有時自動重算或丟失依賴導出選項與導入默認設置
? 骨骼結構?? 支持? 節點坐標系/綁定姿態不同rest pose / joint orientation 差異
? 綁定權重?? 支持? 權重精度/歸一化方式差異有時需要重刷或重新綁定
? 動畫軌跡?? 支持? 曲線解碼方式不同有些軟件用自定義控制器
? Blendshape?? 支持? 命名方式、存儲策略不一Maya vs Blender 表達方式不同

只包含模型構建(Mesh)本身的 FBX 文件,是可以做到幾乎完全通用的,即:

  • 幾何體(頂點、邊、面)

  • UV 坐標

  • 頂點法線(如正確導出)

  • 基本貼圖路徑(漫反射貼圖)

這些內容在主流 DCC 軟件(如 Blender、Maya、3ds Max、ZBrush、Unity、Unreal)之間是可交換、可解析、可正確導入的

xxxx

lerp(a, b, t) 中的 t 超出 [0, 1] 時,結果仍然會被正常計算,且可能為負數。不會自動 clamp。

如果你想確保 t 限制在 0 ~ 1 范圍內,需要手動加 saturate(t)

lerp(a, b, saturate(t)); // 只在 0~1 內插值

噪聲圖單通道,扭曲圖是三維的

兩個通道控制uv的扭曲方向,blue通道保存噪聲圖

remap是希望可以往正負兩個方向去偏移,所以

圖存0~1,然后需要變成正負方向remap,-0.5,再乘2

變成-1~1

noise圖里面的數字的含義是,對需要影響的圖的影響權重,獨立則不會產生任何意義

噪聲圖的值 ≠ 意義,而是意義來源于你如何使用它

舉例:

用法場景噪聲值代表的意義
UV擾動(flow map)像素值代表擾動的方向或偏移量
溶解遮罩(dissolve)像素值作為某一閾值的比較,控制顯示區域
光照擾動(Fresnel mask)像素值作為 Fresnel 效果疊加因子
透明度擾動(你現在的 GhostWarp)像素值參與透明度計算,改變渲染效果
隨機顏色混合、分布、特效參數控制像素值控制混合比、顏色選擇或變化速率等

half noise = lerp(1.0, var_WarpTex.b * 2.0, _NoiseInt);
opacity = baseAlpha * noise;
此時:

var_WarpTex.b 是噪聲圖中的每個像素值

它的作用是:“讓 opacity 按不同像素位置產生擾動”

如果你注釋掉這句,用常量 1.0 代替 noise,那噪聲圖再存在也毫無意義

return float4(-1.0, 0.5, 2.0, 1.0);
在不同平臺中你會看到:

條件最終顯示顏色
普通 8bit 屏幕輸出(LDR)黑+中綠+純白 → 實際為 (0.0, 0.5, 1.0)
使用 HDR Camera + Bloom 后處理可能看到泛光或亮度異常
自定義 RenderTexture 輸出保留完整 float,結果依賴后續處理

你看到的結果是混合誤用的副作用,不是設計內的“反色效果”

它并不穩定,也不跨平臺,在移動端、低配機或 Vulkan/Metal 下可能直接變黑或完全透明。

總結:藍色 → 變橙黃 是合理的,原因如下:

步驟解釋
藍色 × -1得到負藍(0, 0, -1)
作為 Src.rgb 參與混合變成 +1.0 + 背景*2(超亮 + 沖突)
背景疊加高亮藍Gamma 曲線 + Bloom 推向橙黃方向
顯示器 clamp & tonemap導致白泛、橙斑、顏色錯覺

之后的課程加上背景扭曲

對于一個像素來說,當 UV 被放大(乘以大于 1 的數),會導致其在紋理空間中“移動得更快”,從而在屏幕空間中采樣到更密集、更細小、更重復的圖案;而“差別變小”,是因為單位屏幕距離內采樣的紋理跨度更小、變化頻率更高,導致整體趨于細節壓縮。

官方建議把uv拿float去存儲

對啊,這些都是變量啊,為什么一定要按照標準來,這里也只是介紹了方法去使用uv

這個Ghost的邏輯寫的,導致wrap強度調整還會移位MainTex

xxxxx

這種就簡單做個河流,做個小池塘

xxxx

直接使用offset里面的值去改變流動

UnityObjectToClipPos (v.vertex) is required because every vertex shader must output the vertex position in clip-space (the value carrying the semantic SV_POSITION). If the GPU doesn’t receive that clip-space position for each vertex, it cannot:

  1. Clip triangles against the view frustum.

  2. Homogeneously divide the coordinates to produce normalized device coordinates (NDC).

  3. Rasterize the triangles into fragments and interpolate any other varyings you send (UVs, colors, normals, etc.).

Is the generated o.pos value “used”?

  • By the GPU pipeline: absolutely—rasterization depends on it.

  • By your own code: you rarely sample it directly in the fragment shader, but any macro that needs screen position, depth, or fog will consume it (e.g. COMPUTE_SCREEN_POS, TRANSFER_SHADOW in Unity shaders).

  • If you omit or write an incorrect SV_POSITION, the mesh won’t appear or will be clipped incorrectly, even if all other varyings are perfect.

觀察空間 VS(View Space):float4

  • 定義:以相機為原點的坐標空間。(ps:觀察空間與屏幕空間不一樣,觀察空間是一個三維空間,屏幕空間是二維空間)。

https://zhuanlan.zhihu.com/p/505030222

Unity 渲染流水線變換矩陣詳細講解_嗶哩嗶哩_bilibili

【教程】技術美術入門:渲染管線概述_嗶哩嗶哩_bilibili

近大遠小的效果,根據near和far壓扁模型,展現正常圖片 效果

只是把模型進行了一個變形的處理

灰色部分都是硬件去處理的,不能控制

視椎體剔除,是針對一整個 模型的

  • 投影矩陣本身不能“刪除”物體,它只負責把視野內的空間投影成 Clip 空間值。

  • 真正進行“剔除”的是 GPU 固定功能管線,對 Clip 空間做裁剪規則判斷。

控制是否參與“裁剪空間剔除”(GPU自動)

這是 GPU 光柵化階段默認的行為,但你間接可控

控制方式控制對象舉例與說明
? 修改 Projection Matrix控制裁剪區域范圍例如:加大FOV、拉遠近平面,Clip空間容納更多
? 改變傳入頂點位置你自己修改了 vertex shader 輸出的 SV_POSITION比如“假裝”物體在視野內,讓它不被裁剪
?? 不推薦:強行輸出視野外點可以讓視野外物體被“拉回屏幕”但這會造成視覺錯位或崩潰,不常見

總結:你無法關掉裁剪機制本身(除非你完全重寫渲染流程),但你可以通過“改變投影矩陣”或“修改傳入坐標”間接繞過。

SRP 不能取消的:

固定流程階段是否可控原因說明
Clip Space 裁剪(裁剪坐標超出 -w~w)? 不可控這是 GPU 固定的光柵化前流程,無法在 SRP 級別關閉
Homogeneous divide(齊次除法)? 不可控這是 GPU 自動做的投影機制
深度測試、Z-buffer 寫入(除非你禁用)部分可控你可以關掉 ZTest,但不能移除整個深度機制本身

透視除法之后,轉(標準化設備坐標)?NDC在通過順逆時針剔除了背面的三角面之后

就要進入屏幕空間(轉換成屏幕的1920x1080)這樣的形式

這個過程里只拿xy坐標,z坐標后面有更重要的事

TRANSFORM_TEX 是 Unity Shader 中一個非常常用的宏函數,主要用于對 紋理坐標(UV)進行縮放和平移變換

#define TRANSFORM_TEX(tex, name) (tex.xy * name##_ST.xy + name##_ST.zw)

- frac(_Time.x * _ScreenTex_ST.zw)

減法是移動的標配

screenUV *= originDist 的行為不總是視覺合理

  • 它是用物體離相機距離 Z 來縮放屏幕 UV

  • 但這個“鎖大小”是假設物體平行于攝像機投影面

?? 如果模型不是正對相機(比如有角度),這個縮放會導致視覺失真紋理漂移

tex2D(_ScreenTex, i.screenUV) 里的 screenUV 可以大于 [0, 1] 嗎?如果超出范圍會發生什么?

答案是:


? 可以大于 0~1,關鍵取決于紋理的 Wrap Mode(環繞模式)

默認行為(Unity中多數紋理默認是 Repeat):

i.screenUV 范圍tex2D 的采樣行為說明
0 ~ 1紋理正常采樣落在貼圖內部
>1 或 <0取決于貼圖導入設置中的 Wrap Mode會發生重復、拉伸、或邊緣值釘死等現象

貼圖方向完全取決于模型的 UV 展開方式,與世界空間的 XZ 無直接對應關系,而與模型局部坐標系中頂點的 UV 映射有關。

也就是說平面的uv是有問題的,不要信

可以信的,只要你可以位移,和你可以放縮整體

tiling很大,超出了0到1的范圍,但此時的offset是相對于原uv0到1的移動手段,而移動是是整體,所以offset獨立于tiling的密鋪

return uv.r

也就是說左邊的uv為1,和物體的坐標系相反,這個plane的uv是這樣映射的

直接整個都是反的,靠

posVS.z

  • 是當前 頂點位置 v.vertex 轉換到 View Space 后的 Z 值

  • 即:這個點 相對于攝像機的前后距離

  • 注意:在 Unity 中,Z 軸朝向是負的,所以:

  • posVS.z < 0 → 在攝像機前面(正常可見)

  • posVS.z > 0 → 在攝像機后面(看不到)

originDist

  • 模型原點 (0, 0, 0) 轉換到 View Space 后的 Z 值

  • 也就是:整個物體中心(模型局部坐標系原點)離攝像機的 Z 距離

這通常作為一個“基準深度”或“單位深度參考”。

o.screenUV = posVS.xy / posVS.z;


👉 這是在 View Space 里直接除以 Z,沒有轉換成 Clip Space。
這樣也可以嗎?為什么?

可以,但只是近似模擬透視投影效果,不是完整的標準投影流

這個寫法是 一種“自定義構造屏幕投影UV”的簡便方式,在不使用完整 MVP(Model-View-Projection)變換的情況下,模擬投影縮放效果,常見于早期或者低開銷 Shader。

但注意:這種方式是“非線性近似”的

項目posVS.xy / posVS.z正規 clipPos.xy / clipPos.w
精度低,不能精準對應屏幕像素高,嚴格按照投影矩陣壓縮
投影適配性固定 FOV + 固定 NearFar 才能穩定使用任意 FOV、透視矩陣都支持
視覺表現可用于模擬投影、屏幕UV、雷達圖、波紋等準確用于屏幕UV、GrabPass、遮罩、溶解等

你現在這種寫法是合法的,特別適用于:

  • 沒有 GrabPass,但想要制作“貼屏特效”

  • 只需要視覺感受類似透視縮放,不追求像素精確投影

  • 效果貼在 Plane、Quad 上,或者用在擾動類 FX 中(水波、能量、雷達)

階段名稱作用
View Space相機視角下的真實空間,仍是“物理單位”(米)有透視錐體結構,Z 越大越遠
Clip Space被投影矩陣拉伸成四維“正方錐”進行裁剪、透視除法前的空間
NDC Space經過除法后壓成了長方體([-1, 1]^3)屏幕映射前的標準單位坐標

除以了view space下的z

解決了一個問題,不會畸變了,但帶來 了一個問題,就是現在不會隨著遠近而變化這張 貼圖了

接著就解決近大遠小的效果

不要用頂點的距離,因為這里除一下再乘一下還是回去之前的效果--依然畸變

在 Unity 內置渲染管線 中可以這樣GrabPass (雖然不推薦大規模使用)

在 URP / HDRP 中,GrabPass 被棄用,但提供了更高效更明確的替代方案

  • URP: _CameraOpaqueTexture(你要在管線設置中開啟)

  • 手動 Blit + 設置 RenderTexture 給 Shader

  • 使用 CommandBuffer.Blit 將屏幕渲染緩存下來

Blend 是“當前像素緩沖區中的顏色”

  • 它只能訪問:當前正在寫入的目標像素點的顏色

  • 這通常是:Framebuffer 中該像素的已有顏色(上一層 pass 或物體渲染后的結果)

  • 操作由 GPU 的渲染硬件自動進行,不允許你手動讀取或修改,只能通過 blend 參數控制混合方式:

Blend SrcAlpha OneMinusSrcAlpha
💡 你只能控制顏色怎么混,但不能讀它的內容,也不能改它對應哪塊區域。

GrabPass 是“整張屏幕截圖的紋理”

  • 它會在渲染這個物體前,把整個屏幕內容渲染成一張紋理(RT)

  • 然后你可以在 Shader 中任意采樣任意位置的屏幕內容

tex2Dproj(_BGTex, grabPos);
可以采樣的區域不僅限于當前像素點,可以扭曲、擾動、偏移等操作

tex2Dproj(_BGTex, grabPos) 中,使用 proj(投影采樣)而不是常規 tex2D()是因為 GrabPass 返回的是屏幕空間坐標中的一個齊次坐標(Homogeneous Coordinate),也就是一個 clip space / projection space 的值帶有 w 分量,它必須被還原成 2D UV。

函數傳入參數會不會自動除以 .w典型用途
tex2D()float2 uv? 不會普通 UV 貼圖
tex2Dproj()float4 uvwq? 會除以 .w投影紋理 / GrabPass 的屏幕坐標

一小時入門URP:從渲染原理到藝術館制作_嗶哩嗶哩_bilibili

xxxxx

針對網格的shapekey

GrabPass 提供的是屏幕圖像,但這個圖像的采樣坐標來自 裁剪空間(Clip Space) 的輸出 SV_POSITION

o.grabPos = ComputeGrabScreenPos(o.pos); // 背景紋理采樣坐標
的意義非常關鍵:它將頂點的裁剪空間坐標 o.pos 映射成可以用于采樣 GrabPass 背景紋理的坐標,并且保留為 float4,供后續 tex2Dproj() 做透視除法使用。

越不透明,越能折射效果

是合理性的編排

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88450.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ReactNative【實戰系列教程】我的小紅書 8 -- 我(含左側彈窗菜單,右下角圖標等)

最終效果點左上角菜單按鈕&#xff0c;彈出左側菜單后代碼實現app/(tabs)/mine.tsx import icon_add from "/assets/icons/icon_add.png"; import mine_bg from "/assets/images/mine_bg.png"; import Heart from "/components/Heart"; import a…

C++性能優化實戰:從理論到落地的五大核心策略

在當今這個對計算效率要求極高的時代&#xff0c;C作為系統級編程語言的王者&#xff0c;其性能優化能力依然是無可替代的核心競爭力。本文將分享我在大型分布式系統開發中積累的C性能優化實戰經驗&#xff0c;這些經驗幫助我們將關鍵組件的吞吐量提升了300%&#xff0c;延遲降…

字節 Seed 團隊聯合清華大學智能產業研究院開源 MemAgent: 基于多輪對話強化學習記憶代理的長文本大語言模型重構

&#x1f525; 最新動態!!! [2025/07] 我們提供了快速啟動腳本&#xff0c;讓使用MemAgent變得超級簡單&#xff0c;詳情請見下方"快速入門"部分。[2025/06] 我們發布了RL-MemAgent-14B和RL-MemAgent-7B模型&#xff0c;在350萬token上下文任務中實現了近乎無損的性…

【unitrix】 4.20 類型級二進制數減法實現解析(sub.rs)

一、源碼 這段代碼實現了一個用于統計二進制補碼整數位數的系統&#xff0c;支持多種自定義數值類型&#xff08;Z0、P1、N1、B0、B1&#xff09;。 use core::mem::size_of; use crate::number::{Z0, P1, N1, B0, B1, Var};/// 統計二進制位數的 trait pub trait BitLength {f…

手把手教你安全刪除Anaconda虛擬環境(避坑指南)

文章目錄一、刪除前必看清單&#xff08;超級重要&#xff09;二、三種刪除方法對比&#xff08;建議收藏&#xff09;方法1&#xff1a;官方推薦命令&#xff08;最安全&#xff09;方法2&#xff1a;暴力刪除大法&#xff08;快速但需謹慎&#xff09;方法3&#xff1a;核彈級…

Effective Modern C++ 條款7:區分使用 `()` 和 `{}` 創建對象

在 C11 及以后的版本中&#xff0c;初始化對象的方式變得更加靈活&#xff0c;但也帶來了選擇上的困惑。() 和 {} 是兩種常見的初始化語法&#xff0c;它們在語義、行為和適用場景上有顯著差異。本文將通過具體示例&#xff0c;深入解析這兩種初始化方式的區別&#xff0c;并探…

Java基礎-String常用的方法

String常用的三種構造方法 public static void main(String[] args) {//1.使用常量字符串構造String s1 "1.Hello world";System.out.println(s1);//2.使用new關鍵字構造String s2 new String("2.Hello world");System.out.println(s2);//3。使用字符數組…

數學建模:多目標規劃:ε約束法、 理想點法

一、ε約束法定義ε約束法通過將部分目標函數轉化為約束條件&#xff0c;保留一個主要目標進行優化。1、選擇一個主要目標 fk?(x) 進行優化。2、其他目標 fi?(x) 轉化為約束 fi?(x)≤εi?&#xff0c;其中 εi? 是決策者設定的容許閾值。??原理????目標選擇??&…

linux kernel struct regmap_config結構詳解

在 Linux 內核中&#xff0c;struct regmap_config 是 ?Regmap 子系統的核心配置結構體&#xff0c;用于定義如何與底層硬件寄存器進行交互。Regmap&#xff08;Register Map&#xff09;子系統通過抽象不同總線&#xff08;如 I2C、SPI、MMIO 等&#xff09;的寄存器訪問細節…

【Python3教程】Python3高級篇之CGI編程

博主介紹:?全網粉絲23W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

docker安裝Consul筆記

安裝過程 詳細步驟如下&#xff1a; 首先拉取Consul的Docker鏡像&#xff1a; docker pull hashicorp/consul:1.18.1創建Consul的配置文件和數據目錄&#xff1a; mkdir -p /srv/docker/consul/data mkdir -p /srv/docker/consul/config在config目錄下創建一個config.json配置文…

.net數據脫敏

.NET數據脫敏技術&#xff1a;保障數據安全的有效手段 在當今數字化時代&#xff0c;數據安全至關重要。尤其是涉及到用戶的敏感信息&#xff0c;如密碼、手機號碼等&#xff0c;必須采取有效的措施進行保護。數據脫敏就是這樣一種技術&#xff0c;它能夠在不影響數據可用性的…

【openp2p】 學習2:源碼閱讀P2PNetwork和P2PTunnel

【openp2p】 學習1:P2PApp和優秀的go跨平臺項目已經做了初步分析。閱讀原版工程,感覺工程是一個暴露內網服務端口,讓外部可以用的一個實現是一個完整的、跨平臺的可商業化的應用。感謝作者需要學習作者的設計思路工程構建 F:\GolandProjects\openp2p\core\p2pnetwork.go通常…

網安學習NO.14

防火墻基礎實驗 傳統防火墻配置實驗拓撲圖PC&#xff1a; ip 192.168.10.1 255.255.255.0 192.168.10.254 ip dns 114.114.114.114二層交換機 vl 10 ex int e0/0 sw mo ac sw ac vl 10 ex inr e0/1 sw tr en do sw mo tr三層交換機 vl 10 ex int g0/0 sw tr en do sw mo tr ex …

ESP32語音喚醒

兩種喚醒方式AfeWakeWord與EspWakeWord對比 底層技術 AfeWakeWord&#xff1a;基于ESP-IDF的AFE框架&#xff08;esp_afe_sr_iface_t&#xff09;&#xff0c;高性能模式&#xff08;AFE_MODE_HIGH_PERF&#xff09;EspWakeWord&#xff1a;基于WakeNet接口&#xff08;esp_wn_…

借助 Wisdom SSH AI 助手,輕松安裝 CentOS 8 LNMP 環境

打開Wisdom SSH軟件&#xff0c;在AI對話區輸入“在CentOS 8服務器安裝LNMP環境”&#xff0c;AI助手會按以下步驟分析并執行安裝&#xff1a; 安裝Nginx 分析&#xff1a;CentOS 8默認軟件源可能沒有Nginx&#xff0c;所以要先啟用Nginx官方軟件源&#xff0c;然后才能安裝Ngi…

WD0407 40V 7A 超級肖特基二極管,應用于開關汽車工業控制

WD0407 40V 7A 超級肖特基二極管說明? 產品概述? WD0407 是一款性能卓越的超級肖特基二極管&#xff0c;專為滿足現代電子設備對高效、可靠電源管理的需求而設計。它采用先進的半導體制造工藝&#xff0c;在諸多關鍵性能指標上表現出色&#xff0c;能夠為各類電路提供穩定、高…

盧比危機下的金融破局:科倫坡交易所技術升級作戰圖

&#x1f30f; 今日南亞風暴眼 印度雙重上市機制加速落地&#xff1a;印度國家證券國際交易所&#xff08;NSE IX&#xff09;與科倫坡證券交易所&#xff08;CSE&#xff09;達成技術對接協議&#xff0c;斯企可通過印度GIFT City吸引美元資本&#xff0c;交易時段覆蓋全球22小…

upload-labs靶場通關詳解:第20關 /.繞過

一、分析源代碼// 初始化上傳狀態標記&#xff0c;默認為false&#xff0c;即文件未上傳 $is_upload false; // 初始化消息變量&#xff0c;用于存儲錯誤信息 $msg null;// 檢查是否通過POST方式提交了表單&#xff08;點擊上傳按鈕&#xff09; if (isset($_POST[submit])) …

企業用云狀態評估

云部署形態及其策略規劃成熟度 單云部署&#xff1a; 主要業務負載運行在單一公有云或私有云上 多云/混合云部署 —有清晰戰略規劃與實施&#xff1a; 業務負載運行在多個云&#xff08;公有云或混合云&#xff09;上&#xff0c;并且企業擁有清晰的多云/混合云戰略規劃&#x…