自由學習記錄(77)

官方模版、、都不用了,記得之前用gitextension 的時候也好像有這種問題,也不知道怎么回事

用自己的就行了

網上說什么都沒用,還是要自己老實寫,配上截圖工具截屏目錄直接轉文字過去,其實字都不要打多少的

一張很深刻的圖、、、,最后的gitignore優雅

?

Implementing a Dissolve Effect with Shaders and Particles in Three.js | Codrops

Tutorial 27 - Billboarding and the Geometry Shader

多個 primitive 并行執行的時序對你不可見

geom(triangle v2g IN[3], inout TriangleStream<g2f> triStream)

“geo 提供了這種額外的分組處理方式,是它唯一的作用嗎?”
—— 是的。它正是用來把一組三角形(這里是 3 個頂點構成的三角形)變成 0 個、1 個或者更多三角形/邊形(通過三角形條帶)。這正是 VS/FS 無法提供的 “幾何生成” 能力

如果完全不構建廣告牌

geo shader 里面只執行這個

for (int j = 0; j < 3; j++)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? g2f o;

? ? ? ? ? ? ? ? ? ? ? ? o.pos = UnityObjectToClipPos(IN[j].objPos);

? ? ? ? ? ? ? ? ? ? ? ? o.uv = TRANSFORM_TEX(IN[j].uv, _MainTex);

? ? ? ? ? ? ? ? ? ? ? ? o.normal = UnityObjectToWorldNormal(IN[j].normal);

? ? ? ? ? ? ? ? ? ? ? ? o.worldPos = float4(mul(unity_ObjectToWorld, IN[j].objPos).xyz, -1);

? ? ? ? ? ? ? ? ? ? ? ? triStream.Append(o);

? ? ? ? ? ? ? ? ? ? }

frag接受的是在頂點的屬性被柵格化后,變成一個一個內部的像素,那這個像素里的屬性值是誰的?

不會是geo傳入的三角形中的任意一個頂點的一套屬性,而是在一切頂點都已經插值完成之后,屬于像素的屬性?

是的! Fragment Shader 接收到的每個像素(fragment)輸入值并不是某個頂點的直接屬性,而是通過 幾何著色器(或頂點著色器)輸出的那三個頂點在三角形內的插值結果。也就是說,像素級的屬性只在三角形內部才具有意義,是 所有頂點貢獻后的“混合值”

像素屬性,是屏幕層面的,光柵化的結果,就是1920x1080這些每一個像素上的插值的后的一套屬性 ,frag shader的目標是對應分辨率下的光柵化處理結果 所以frag shader是因為設備的不同而產生各自光柵化效果的像素個數,的最終部分?----完全yes

假設輸出目標分辨率為 1920?×?1080(邏輯像素或樣本數),那最多會生成約 1920?×?1080 個 fragment(每個未被丟棄的采樣點對應一個片段)。這種情況下,如果有 MSAA(多樣本反鋸齒),Fragment Shader 可能每個像素執行多次。

Fragment Shader執行次數與分辨率(和采樣數)直接相關;

fragment 數量 ≈ Resolution × samples

float dissolve_value = tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r;
float t = clamp(_Weight * 2 - dissolve_value, 0, 1);

與常見的 tex2D() 采樣方式相比,有幾個 本質上的不同點

沒有梯度信息 → 不能交由GPU自動選 mipmap

幾何著色器 (GS) 和頂點著色器 (VS) 并不運行在屏幕空間采樣網格上,即它們不會獲得像素級的梯度信息 (ddx() / ddy()),也無法由硬件計算合理的 mipmap 級別。

tex2Dlod(sampler, float4(u, v, 0, LOD)) 是一個顯式指定采樣 mipmap 級別的函數。

VS 或 GS 中,如果你必須采樣紋理又沒有梯度,就 必須手動傳入 LOD,一般0 表示 base 級別(全分辨率)

為什么在 Geometry Shader 中必須用 tex2Dlod()?

在你的 geom() 里,你使用了 avgUV 而不是屏幕坐標。

Geometry Shader 不具備自動計算 mipmap 的能力,也沒有片元的梯度輸入——因此正常的 tex2D() 調用本身是非法的

  • 當片元從三角形 rasterizer 階段生成后,它會由三角形頂點插值得出多個屬性值(uv、worldPos、normal 等)。

  • 然而,GPU還需要「知道這個屬性在屏幕上變化有多快」——這就是梯度輸入(partial derivatives),可以決定紋理采樣時該用哪一層 mipmap、是否切換各向異性過濾等。
    這種衍生的差值,不是頂點自帶的,而是在光柵階段根據前后左右 fragment 自動計算出來的。?aclockworkberry.comGame Development Stack Exchange

如何在 Shader 里“訪問”梯度?

在 HLSL/CG 中,你可以用這兩個內建函數:

float ddx(float v); ? // 水平方向一像素變化率
float ddy(float v); ? // 垂直方向一像素變化率
它們分別計算某個變量在 x 或 y 方向的差值,比如 ddx(i.uv.x) 表示當前像素 uv.x 與右邊像素的差值。?
developer.download.nvidia.com

函數結果對一個 float2 或 float3 也可 element-wise 插值。

還可組合成 fwidth(v) = abs(ddx(v)) + abs(ddy(v)),表示該值在屏幕上的“總變化率”。通常用于實現無別名階躍/漸變(step gradient)切割效果。?
aclockworkberry.com

它是如何計算得來的?GPU 結構揭秘

  • GPU 會把渲染目標的像素劃分成 2×2 的像素塊(quad),其中同一組的 4 個片元共享派發一起執行 Fragment Shader;

  • ddx(v) 就是用 quad 中右上角與左上角這兩個 fragment 的 v 值差(vertical 為底與頂)來估算的;

  • 如果 Shader 被分支分流了(如 if (...) ddx(...)),某些 fragment 路徑沒跑時,ddx 的值可能是未定義的(誤差或錯誤)。?aclockworkberry.comGame Development Stack Exchange

  • VS/GS 沒有屏幕空間像素信息,也無 quad 概念,因此 GPU 無法估算一個變量的像素梯度值;

  • 如果你在 VS 或 GS 寫 tex2D(),編譯器也會報錯,因為不知道該如何為 mipmap 選擇級別

  • 而 Fragment Shader 正好在 raster 之后,因此自動擁有這些梯度輸入。

An introduction to shader derivative functions | A Clockwork Berry

float smooth = smoothstep(edge0, edge1, fwidth(i.uv.x));


當 warp(UV扭曲)、偏移、大范圍扭曲時,你可以用 ddx(i.uv) 的結果手動控制 tex2Dlod(),確保 lod 選擇穩定。

在后期紋理 warping、極坐標映射、屏幕空間算法(如線框、網格顯示、高寬比)中,梯度控制幾乎是必需品。

片元的梯度輸入”指的是 Fragment Shader 中 ddx() / ddy() 等函數返回的 屏幕空間插值值變化率 —— GPU 在片元光柵化階段組織片元為 2×2 像素塊后自動計算的差值。它是 mipmap 選擇、程序濾波、抗鋸齒、扭曲貼圖等效果的重要基礎,而頂部的 VS/GS 階段是無法訪問這一信息的。

dissolve 級聯、流動法線、無縫抗鋸齒邊界、極坐標扭曲采樣等,都是與此相關的

float2 flowUV = TRANSFORM_TEX(mul(unity_ObjectToWorld, avgPos).xz, _FlowMap);
float4 flowVector = remapFlowTexture(tex2Dlod(_FlowMap, float4(flowUV, 0, 0)));
float3 pseudoRandomPos = avgPos + _Direction;
pseudoRandomPos += flowVector.xyz * _Exapnd;

(Flow Map) 去給粒子添加“隨風飄散”的局部偏移,即使 mesh 面朝向或形狀不規則,也能讓流散變形看起來自然又有層次感。

Flow Map 是一張二維向量貼圖(通常 R=橫向,G=縱向,歸一化到 [0,1] 區間)
它不是噪聲,而是**精準描繪各片區域想讓粒子“往哪個方向飄”**的矢量數據 (相當于每個像素保存了一個 velocity vector)

靠近某邊緣的三角片 UV 所對應的 flowVector 值可能指向斜下方向,而另一片可能向右上。這種方式比簡單隨機更具有真實感。

// remap 流向值:范圍從 [0,1] 轉換成 [-1,1]
float2 flow = tex2D(_FlowMap, flowUV).xy * 2 - 1;
float3 pseudoRandomPos = avgPos + _Direction + flow * _Exapnd;

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

  • name 是你在 ShaderLab Properties 中聲明的貼圖名,比如 _MainTex

  • Unity 會自動生成一個名為 name##_STfloat4 uniform:(關于默認uv的屬性)

    • .xy 存儲的是 UV 重復(tiling);

    • .zw 存儲的是 UV 偏移(offset)。

IN.uv.xy * _MainTex_ST.xy + _MainTex_ST.zw

先縮放 (tiling),再偏移 (offset) UV。

direction4是控制大方向的一個屬性

tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r;
確實是向 tex2Dlod() 傳入了一個 4 維向量(float4),讓你覺得“多余”,但它其實是 API 設計決定的正確用法。

為什么 tex2Dlod() 必須傳入 float4 而不是 float2

根據 HLSL 文檔,tex2Dlod(sampler2D s, float4 uv) 的簽名明確要求第二個參數是一個完全的四維向量:

  • uv.xy:用于紋理的 UV 坐標

  • uv.z:在 2D 紋理中通常被忽略(可設為 0)

  • uv.w:用于指定 mipmap 級別(LOD),即你想手動控制采樣的分辨率層級 Microsoft Learn

簡而言之:你傳入 (u, v, z, lod),其中只有 uvlod 是有效維度,剩下的 z 只填充占位。

float dissolve_value = tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r;

float t = clamp(_Weight * 2 - dissolve_value, 0, 1);

weight是0到1的限制范圍,懂了

clamp是加保險的,,重點是控制范圍,完全減和完全加的范圍,最終需要是0到1的范圍

才能轉換給圖像邏輯使用

float3 right = UNITY_MATRIX_IT_MV[0].xyz; ?// 攝像機右側方向 → X 軸
float3 up ? ?= UNITY_MATRIX_IT_MV[1].xyz; ?// 攝像機上方向 → Y 軸
// 然后用 radius * right + radius * up 構造四邊形 → 所有 billboards 默認是朝向屏幕面。
?? 結果是所有粒子都會面向屏幕,且它們的「本地平面方向」一致,所以花瓣都是同樣的“扭蛋角度”,缺乏隨機性、美感或辨識度。

float3 right = UNITY_MATRIX_IT_MV[0].xyz;

float3 up = UNITY_MATRIX_IT_MV[1].xyz;

這兩個得到的坐標系是哪個,為什么直接可以當right 和up ,都不用歸一化

UNITY_MATRIX_IT_MVModel×View 矩陣 的 逆轉置矩陣,通常用于將法線從物體空間正確變換到攝像機(視圖)空間,

IT 版本用于轉換法線

float3 right = UNITY_MATRIX_IT_MV[0].xyz;
float3 up = UNITY_MATRIX_IT_MV[1].xyz;
正是取 該矩陣的第 0 行和第?1 行的 .xyz 分量,而根據貼在 Gist 上的 Unity 社區經驗,這兩行分別等效于:

row[0].xyz → 攝像機空間的 Right(右方向向量)

row[1].xyz → 攝像機空間的 Up(上方向向量)

可以直接當做標準向量,不用再 normalize(歸一化)?

理論上,inverse-transpose 在僅含旋轉 + 均勻縮放的 ModelView 上不會改變軸向長度正交特性
如果你的 unity_ObjectToWorld 里沒有非均勻縮放(即沒有不同方向 scale ≠ 1、或 shear),那么使用這個習慣于轉換法線的矩陣,其行向量已經是長度接近 1 的正交基。

Bonus:更自然花瓣姿態(不強制朝屏幕)

如果你想讓花瓣朝向“世界垂直/重力方向”,而不是屏幕,可用類似思路構建:

float3 worldUp = float3(0,1,0);
float3 forward = normalize(cross(avgNormal, worldUp)); ?// 花瓣法線與 Up 做 cross → 世界空間方向
float3 right = normalize(cross(forward, avgNormal));
float3 up ? ?= cross(avgNormal, right); ?// 使三軸正交// 然后同樣用 roll angle 隨機旋轉 right/up(繞 avgNormal)

這樣花瓣保持自然“飄散倒地”的朝向(平面法線為 avgNormal),而每片依舊有隨機翻轉。

?fixed4 col = (1, 1, 1, _Opacity);

說這一行有錯誤,可能,,,就是你這里的值初始化了又不用,所以就警告了

雪地路徑 Shader Graph—Unity_嗶哩嗶哩_bilibili

[Unity] 集群行為初探-魚群_嗶哩嗶哩_bilibili

參考:https://github.com/Shinao/Unity-GPU-Boids?tab=readme-ov-file

Unity 魚群(School of Fish / Flocking)

涵蓋 Boids 算法、VFX Graph、Shader Graph 等實現路徑

Cam Ayres 的“Shader Graph + VFX Graph 制作魚群”(即 《Unity 6: Creating a School of Fish…》),核心都依賴 Shader Graph/VFX Graph。而這兩者 只能在 Unity 的 SRP 管線(也即 URP/HDRP)下使用

https://www.youtube.com/watch?v=voegALuuO2I

Shinao/Unity-GPU-Boids: GPU powered boids with multiple implementations

How to achieve boid/flocking effect (e.g. fish school) in VFX Graph without Compute Shader? - #2 by OrsonFavrel - Unity Engine - Unity Discussions

https://github.com/Streamweaver/FishFlocker?utm_source=chatgpt.com

“Colorful?FX” 是一個 很久之前的 Unity 插件,主要用于后處理調色和色彩校正,讓 Unity 場景具有類似 Photoshop 效果的視覺表現。

提供一系列高質量、可自定義的 后期處理效果,包括 PCC、色調轉換、LUT、色彩提煉、動效預設、模糊、飽和度調整等—類似游戲版 Photoshop 調色工具。

?為什么現在較少使用?

  • 隨著 Unity Post-processing Stack 和 URP/HDRP 的普及,Unity 官方已經提供更加現代、集成度高的調色與后期處理解決方案;

  • 很多效果如 Bloom、Tone mapping、Color grading、Vignette 等都內置支持,無需額外插件;

  • Colorful?FX 自 2012 年發布以來幾乎不再更新,目前兼容性有限,尤其對 URP/HDRP 支持不佳。

Colorful?FX 是 Unity 早期為 Built-in 管線提供的高效調色與后處理特效插件,但現在更多被 Unity 官方后期管線所替代。”

https://www.bilibili.com/video/BV1DG4y1n7md/?vd_source=8edbc527019213f5a0f28f3a4b395636

Git 并不跟蹤“文件的差異”,而是將每次 commit 時項目里的所有文件生成一次 全量快照(snapshot),只保存改變過的內容。對于未變化的文件,它會用引用鏈接已有存儲以節省空間

Checkout...回到某個老版本看看當時的代碼

Revert...創建一個“反向的提交”來撤銷它的改動

「我剛刪了不要的腳本,現在 checkout 到后一個節點當前這個節點就會消失嗎?

🧠 答案:

? 不會“消失”,但會暫時 “看不見”

你當前這個節點(刪除了不要的腳本)是一個 提交記錄(commit),它永遠保留在 Git 歷史里,只要有分支指向它,或者你回去引用它,它就不會被 Git 清理。

但??如果你 checkout 到后面節點,而這個節點 沒有分支指向它(如 HEAD 脫離狀態下新提交的),它就會成為孤兒 commit,之后 Git 有可能自動清理它(GC)

detached HEAD 是你離開了“正常歷史線”,回頭看了一眼舊日時刻;
但如果你不小心寫了新東西沒保存分支,那些改動就可能隨風而去。

ref:

手把手教你用git管理unity游戲項目,讓你少掉5根頭發_嗶哩嗶哩_bilibili

Git 是開源的,用在本地,不依賴網絡

github 是云端,可以管控本地的git,(前提是本地的git存在了)

xxxx

假設你有一個 Unity 項目,并且想要 Git 管理它,其中包含 Assets/ProjectSettings/ 等文件:

Git

  1. 在項目根目錄運行 git init,本地初始化 Git 倉庫;

  2. 編輯 .gitignore 忽略 Library/, Temp/ 等緩存文件;

  3. git add Assets ProjectSettings,第一次提交;

  4. 修改腳本或場景后用 git commit 生成更新快照;

  5. 隨時通過 git checkoutgit revert 回退歷史版本。

xxxx?

“Git GUI” 是 Git 軟件自帶,目錄下 右鍵 更多屬性里調出

然后是里面具體的管理-----可以在GUI里做(不用,因為gui里ignore都不能寫,功能太少)

創建.git文件夾在unity總文件夾里之后,這個項目打開腳本時,VScode自動就變了

VS Code 的 Git 功能默認在打開文件夾是自動檢測最近的 .git 倉庫

實際上,這些就是 VS Code 調用了底層 git status 命令,自動顯示每個文件狀態,以簡化你的版本控制流程(無需手動運行命令行)。

.gitignore可以去掉repository里不要管的文件夾

xxx

這里直接在vscode里面git完全管理

直接點分支,create repository,自動對unity項目根目錄下創建git文件夾

CommitCommit Staged 都需要先 Stage,Commit All 則直接提交所有修改

暫存Staging,讓你可以add挑出更改--提交

?只有進行了 commit(提交)之后,Git 才會記錄那些改動,并且之后才會在 UI 或 git status 輸出中顯示那些「改變了的文件」

半天下來,git可能損壞文件,但是是最好的,要注意綁定的關系變化就是,模型被綁定了就不要刪了

https://docs.unity3d.com/Packages/com.unity.visualscripting%401.9/manual/vs-version-control.html

答辯官方文檔,差評(雖然估計是自己哪里沒注意到)

右鍵菜單中的 “Reset current branch to this Commit...” 操作

?

Unity 粒子系統(Particle System)的底層原理和構成模塊,可以從三個核心階段拆解:發射 → 模擬更新 → 渲染

Particle System模擬 / 更新階段(Simulation)

  • 每幀基于時間間隔,更新每個粒子狀態:

    • 位置更新:由速度控制,結合重力、風力、外力模塊(Force over Lifetime)、噪聲模塊等;

    • 生命周期:遞減剩余壽命,壽命結束則銷毀;

    • 屬性變化:大小、顏色、旋轉、透明度可隨生命周期插值變化(Size over Lifetime、Color over Lifetime);

  • 工作流程為:模擬 → lifetime 判斷 → 屬性插值 → 位置更新。

  • 粒子最終以 2D 點精靈 (Point Sprites) 或 billboard 四邊形形式渲染,每個粒子朝向攝像機;

  • 可以通過材質、紋理、混合模式等控制效果;

  • 可進一步定制為使用 Mesh 或 GPU 渲染(或 Visual Effect Graph 模塊支持百萬級粒子)。

Unity 粒子 特有模塊和高級功能

  • 子發射器(Sub-Emitter):某些粒子出生、死亡或碰撞時觸發再次發射子粒子;

  • 碰撞模塊(Collision):支持粒子與場景 collider 或剛體交互,無需寫代碼;

  • 腳本 API:可通過粒子系統腳本接口控制粒子生命周期事件、自定義行為;

  • Visual Effect Graph(VFX Graph):基于 GPU 的可視化圖形編輯工具,支持大規模 GPU 粒子渲染。

Shader Graph 如何接入 VFX Graph

  • 首先,你需要在 Shader Graph 的設置中啟用 “Support VFX Graph”,并指定正確的渲染管線(HDRP/URP)
    Unity Discussions+9Unity Documentation+9Unity+9

  • 然后在 VFX Graph 的輸出 Context 中選擇該 Shader Graph,即可用自定義 Shader 來定義粒子著色
    Unity Documentation+2Unity Discussions+2

這樣你能完全控制粒子的視覺屬性,比如發光、變色、頂點動畫(如漸變形變、扭曲等)都可由 Shader Graph 處理。

Unity 的 Visual Effect Graph(VFX Graph) 是 Unity 針對高性能 GPU 粒子效果設計的節點式可視化編輯系統

VFX Graph 完全在 GPU 上執行粒子發射、模擬與渲染流程,利用 GPU 并行處理數百萬甚至上億粒子,高性能、低 CPU 占用

VFX Graph 基于 GPU 渲染 時,其核心技術是通過 Compute Shader 將粒子模擬與粒子渲染一并交由 GPU 控制,然后根據 Shader Graph(或 HLSL)定義每個粒子的外觀與行為。

VFX粒子模擬(Update Loop)

  • 每幀由 GPU compute shader 更新粒子狀態(重點,一般用GPU更新邏輯,而這里使用GPU了):位置由速度更新,并應用引力、風力、噪聲等模塊。

  • 生命周期結束的粒子自動銷毀,屬性如顏色、透明度、大小隨著時間變化插值控制

VFX渲染輸出(Rendering)

  • 支持多種渲染類型:點精靈(Point Sprites)、Billboard 四邊形、Mesh、線條(Trail)、條帶(Strip)等。

  • 可結合 Shader Graph 自定義像素與片段著色器,實現紋理動畫(Flipbook)、變形、混合模式、LOD、HDRP/URP 支持等渲染細節

VFX交互與事件控制

  • 事件系統(Events):粒子在生命周期中可觸發子發射器、發送事件到其他系統(如觸發攝像機震動、聲音、碰撞反饋)。

  • 碰撞與環境交互:支持深度緩沖、Signed Distance Fields(SDF)作為碰撞輸入,使粒子與場景幾何體互動Unity。

  • 與 ECS / DOTS 集成:VFX Graph 可與 DOTS 架構結合使用,將實體系統 CPU 數據提供給 GPU 緩沖區,實現模擬與渲染的協同運算Reddit。

性能與優化

  • 使用 GPU 并行計算,不會頻繁切換 CPU?GPU,保持高幀率。

  • 內置可見性剔除(bounding volume culling)、粒子 LOD、粒子遮擋透明度優化機制支持數萬個實例高效渲染

知乎/論壇語錄 & 經驗引用

“Unity DOTS + VFX Graph 超強… 每分鐘發射百萬顆子彈還能保持編輯器 120fps。”
“通過在粒子上添加一個 custom BulletID,將實體與粒子匹配,再把碰撞列表傳給 VFX Graph,使粒子知道自己應該銷毀。”
來自 Reddit 用戶經驗分享,說明 VFX Graph 可接受 CPU→GPU 雙向數據,實時控制粒子行為Unity Documentation+5Reddit+580.lv+5。

https://www.reddit.com/r/Unity3D/comments/y29exn/i_love_to_combine_vfx_graph_and_shader_graph_have/?utm_source=chatgpt.com

?

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

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

相關文章

運動想象 (MI) 分類學習系列 (18) : MSVTNet

運動想象分類學習系列:用于基于腦電圖的運動圖像解碼的多尺度視覺轉換器神經網絡 0. 引言 1. 主要貢獻 2. 方法![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/65a03fcd4a9144f6a7324b0969fd9d4e.png#pic_center) 3. 結果 3.1 腦電圖數據預處理 3.2 解碼性能比較 3.3…

Spring 03 Web springMVC

Springboot 常用 Spring MVC 實現 web 服務。 Spring MVC 請求處理流程圖片來自《Spring 實戰第四版》 瀏覽器請求首先被交給 DispatcherServlet 前端控制器。 DispatcherServlet 查詢處理器映射以決定將請求發送給哪個控制器。控制器處理業務邏輯后&#xff0c;向 DispatcherS…

大廠面試題

線程池的狀態?回答:running->shutdown->stop->tidyng->TERMINATED 線程池狀態怎么流轉2. 回答:變成shutdown&#xff0c;執行shutdown()函數變成stop&#xff0c;執行shutdownnow函數 變成tining&#xff0c;所有任務已處理完 變成TERMINATED&#xff0c;線程池調…

達芬奇31-40

快捷鍵C鼠標左鍵拖拽到節點上 A鼠標左鍵拖拽節點 復制到另一個圖層上Raw素材太哦調整為log方便調色磨皮中間調向左磨皮,向右變老找到丟失的高光磨皮后臉部高光消失,或不明顯,此時用亮度吸管工具找到臉部的高光,拉高中灰和亮部的Y值質感紋理增強器Tiny,Fine高頻細節(臉部)增強或…

dify

一、SVG Logo Design ### 任務 我希望你充當圖像生成的提示生成器。 ### 任務描述 你的工作是提供詳細且富有創意的描述&#xff0c;以激發 AI 生成獨特而有趣的圖像。請記住&#xff0c;格式應遵循以下一般模式&#xff1a; <主要主題>, <主要主題的描述>, <背…

Mysql 實戰問題處理速通

文章目錄創建賬號和授權查詢沒有主鍵的表統計每個庫大小前十張大表清理日志表Prepared statement needs to be re-preparedxtrabackup 問題鎖問題處理快速處理查詢事務等待和阻塞情況innodb_trxprocesslistdata_locksdata_lock_waitsmetadata_locksevents_statements_current其…

如何測量滾珠花鍵的旋轉方向間隙?

測量滾珠花鍵的旋轉方向間隙需要使用適當的工具&#xff0c;通常情況下&#xff0c;可以使用游標卡尺或外徑卡尺進行測量。這些工具可以準確地測量間隙的寬度和深度&#xff0c;并且可以輕松地記錄測量結果。手動檢測法&#xff1a;將滾珠花鍵固定在支架上&#xff0c;確保其可…

Android AppSearch 深度解析:現代應用搜索架構與實踐

一、AppSearch 概述1.1 什么是 AppSearchAppSearch 是 Android Jetpack 組件庫中的一個現代化本地搜索框架&#xff0c;于 Android 12 (API level 31) 引入&#xff0c;旨在為 Android 應用提供高效、可靠的本地數據索引和搜索能力。與傳統的 SQLite 搜索方案相比&#xff0c;A…

使用公眾號的消息模板給關注用戶發消息

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

【盤古100Pro+開發板實驗例程】FPGA學習 | 3X3圖像矩陣生成 | 圖像實驗指導手冊

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1. 實驗簡介 實驗目的&#xff1a; 實現 3X3 圖像矩陣對應 9 個像素點圖像數據的讀取。 實驗環境&#xff1a; Wind…

【通用視覺框架】基于OpenCvSharp+WPF+YOLO開發的仿VisionMaster的通用視覺框架軟件,全套源碼,開箱即用

【通用視覺框架】基于OpenCvSharpWPFYOLO開發的仿VisionMaster的通用視覺框架軟件&#xff0c;全套源碼&#xff0c;開箱即用 基于OpenCvSharp、WPF和YOLO的組合&#xff0c;構建一個兼具圖像處理能力、可視化交互和實時檢測的工業級視覺框架。其核心是將底層算法與上層界面無…

微信小程序轉Vue2組件智能提示詞

角色 小程序轉Vue2組件工程師&#xff08;ElementUI專精&#xff09; 核心能力 技術專長&#xff1a;作為世界頂尖前端工程師&#xff0c;專注于將小程序組件&#xff08;.wxml/.wxss/.js/.json&#xff09;精準轉換為Vue2ElementUI組件&#xff0c;轉換邏輯零偏差&#xff0c;…

JVM 學習總結

文章目錄內存結構程序計數器什么是程序計數器&#xff1f;核心作用&#xff1a;為什么需要程序計數器&#xff1f;實現原理主要特點示例&#xff1a;PC 寄存器如何工作總結Java 虛擬機棧什么是 Java 虛擬機棧&#xff1f;棧幀的內部結構主要特點總結線程診斷本地方法棧堆堆內存…

目標檢測檢出率,誤檢率,ap,map等評估python代碼

1.deepseek版本import numpy as np from collections import defaultdictdef calculate_iou(box1, box2):"""計算兩個邊界框的交并比&#xff08;IoU&#xff09;:param box1: [x1, y1, x2, y2]:param box2: [x1, y1, x2, y2]:return: IoU"""# 計…

python的高校班級管理系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 在高校教…

Scrapy 工作流程深度解析:引擎驅動的完美協作

一、Scrapy 核心組件全景圖 #mermaid-svg-KWCKN9n4urijbSws {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KWCKN9n4urijbSws .error-icon{fill:#552222;}#mermaid-svg-KWCKN9n4urijbSws .error-text{fill:#552222;…

PCIe Base Specification解析(七)

文章目錄3.6 Data Integrity Mechansisms3.6.1 Introduction3.6.2 LCRC, Sequence Number, and Retry Management (TLP Transmitter)3.6.2.1 LCRC and Sequence Number Rules (TLP Transmitter)3.6.2.2 Handling of Received DLLPs3.6.3 LCRC and Sequence Number (TLP Receive…

Windows 11 使用Windows Hello使用人臉識別登錄失敗,重新錄入人臉識別輸入PIN后報Windows Hello安裝程序白屏無響應的問題解決

Windows 11 使用Windows Hello使用人臉識別登錄失敗&#xff0c;重新錄入人臉識別輸入PIN后報Windows Hello安裝程序白屏無響應的問題解決&#xff1a;遇到此種情況時&#xff1a;1、在“開始”右鍵——設置——賬號——登錄選項2、需要在PIN這里先進行刪除此登錄選項&#xff…

qq scheme

QQ intent scheme跳轉 1.跳轉指定說說(root) 2.跳轉指定說說(非root) 3. 跳轉聊天框 4. 跳轉用戶主頁 5. 跳轉加群 6. 跳轉指定用戶空間 1.跳轉指定說說(root) 該方法需root權限 app.startActivity({className: "com.qzone.reborn.base.QZoneTransparentShellActivi…

C語言基礎_隨機數、數組、函數、指針

0、隨機數&#xff1a; 要用C語言產生隨機數&#xff0c;首先在預處理程序部分要引入stdlib.h頭文件&#xff0c;然后就可以用rand()在后續程序中生成隨機數了。如果不設置隨機數種子srand()&#xff0c;后面生成的隨機數序列就是以41開頭的一個固定序列&#xff0c;因此一般以…