Nov 07 2025
SmalBox -
【光照】[自發光Emission]以UnityURP為例
【從UnityURP開始探索遊戲渲染】專欄-直達
自發光的基本原理
$Cemissive=Memissive$
自發光是物體表面主動發射光線的現象,在光照模型中通常作為獨立於外部光源的附加項。其核心特點是不受其他光照影響,但可以影響周圍環境。
實現流程
定義發射顏色和強度:確定基礎發光顏色和亮度
紋理採樣 可選:使用紋理控制發射圖案
HDR處理:支持高於1.0的亮度值
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[漫反射diffuse]以UnityURP為例
【從UnityURP開始探索遊戲渲染】專欄-直達
漫反射基本流程
漫反射遵循蘭伯特定律(Lambert's Cosine Law),其核心流程如下:
法線準備:獲取表面法線向量(通常來自頂點法線或法線貼圖)
光源方向計算:確定光源到表面點的單位方向向量
點積運算:計算法線向量與光源方向的點積(N·L)
能量約束:使用saturate函數將結果限制在[0,1]範圍
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[漫反射]UnityURP蘭伯特能量守恆嗎?
【從UnityURP開始探索遊戲渲染】專欄-直達
蘭伯特漫反射的能量守恆性
能量守恆基本原理
在物理正確的渲染中,能量守恆要求:
表面反射的光能總量 ≤ 入射光能
漫反射+高光反射 ≤ 1.0
沒有能量憑空產生或消失
經典蘭伯特模型的能量守恆問題
傳統蘭伯特漫反射公式:
$漫反射 = 表面反照率 × max(0, N·L)$
不守恆的原因:
缺乏歸一化因子:
遊戲開發
收藏
評論
Nov 07 2025
Lin*Mu -
Unity 同一場景不同攝像機 設置不同天空盒背景
如何在Unity中的一個場景進行分屏,並將分屏的兩個攝像機設置不同的天空盒
問題分為兩個:1.分屏,2.設置不同天空盒
1.分屏
在Unity中創建兩個攝像機 或者將主攝像機賦值一份
保持場景的所有攝像機有且僅有一個Audio Listener
修改ViewPortRect 以及depth 參數如圖
其中 x,y為顯示畫面左下角比例位置,x中0為最左,0.5為居中,1為最右側,y
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[漫反射]UnityURP蘭伯特有光照衰減嗎?
【從UnityURP開始探索遊戲渲染】專欄-直達
光照衰減的基本原理
在物理正確的光照模型中,衰減需要遵循兩個基本定律:
平方反比定律:光強與距離平方成反比 (I ∝ 1/r²)
餘弦定律:表面接收的光強與入射角餘弦成正比 (I ∝ cosθ)
經典蘭伯特模型的衰減處理
標準蘭伯特公式
$漫反射 = 表面顏色 * 表面反照率 * max(0, N·L)$
衰減實現分析
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[高光反射specular]以UnityURP為例
【從UnityURP開始探索遊戲渲染】專欄-直達
高光反射的基本流程
經驗光照模型中的高光反射通常遵循以下流程:
入射光計算:確定光源方向和強度
視角向量計算:確定觀察者方向
反射向量計算:根據表面法線計算理想反射方向
高光強度計算:使用特定模型計算高光反射強度
最終合成:將高光反射與漫反射和環境光結合
主要高光反射模型及實現
Phong模型 (1975)
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[環境光ambient]以UnityURP為例
【從UnityURP開始探索遊戲渲染】專欄-直達
環境光的基本處理流程
$Cambient$
環境光采集:獲取場景環境光照信息
環境光遮蔽:計算環境光遮擋關係
環境光反射:根據材質屬性反射環境光
環境光混合:與其他光照成分合成最終顏色
主要環境光模型及實現
恆定環境光(Constant Ambient)
實現原理:
$環境光 = 環境光顏色 ×
遊戲開發
收藏
評論
Nov 07 2025
horeaper -
放棄Unity後,我為什麼選擇了Unigine?
Unity一直在搞事相信大家都知道,特別是unity.cn,之前都還在我的容忍範圍之內,直到上半年他們事實性的宣佈不會支持Unity 6之後,我就決定換引擎了。
至於換哪個引擎着實挑選了一段不短的時間(實際上我“物色”引擎從23年Runtime Fee事件之後就開始了)。首先被排除的是Unreal,這玩意兒我玩不起。之後我在幾個支持C#的引擎裏面挑選,最後鎖定在三個引擎上面:Stride,Flax
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】Unity中的[物理模型]PBR
【從UnityURP開始探索遊戲渲染】專欄-直達
PBR(Physically Based Rendendering)的核心內容與BRDF應用
PBR是一種基於物理光學原理的渲染框架,其核心是通過物理可測量的材質屬性和真實的光照計算規則實現跨環境一致的真實感渲染。
PBR四大核心支柱
模塊
作用
關鍵參數
材質參數系統
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[物理模型]中的[BRDF]是什麼?
【從UnityURP開始探索遊戲渲染】專欄-直達
雙向反射分佈函數 Bidirectional Reflectance Distribution Function 解釋當光線從某個方向照射到一個表面時,有多少光線被反射、反射方向有哪些。BRDF大多使用一個數學公式表示,並提供一些參數來調整材質屬性。
BRDF(雙向反射分佈函數)是計算機圖形學和光學中描述物體表面反射特性的核心數學模型,其定義
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[PBR][漫反射]實現方法對比
【從UnityURP開始探索遊戲渲染】專欄-直達
URP BRDF漫反射方法對比
方法名稱
數學公式
特點
性能消耗
適用場景
Lambert
$L_d = k_d * max(0, N·L)$
經典模型,能量不守恆
★☆☆
移動端低配
Half-Lambert
$L_d =
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[PBR][鏡面反射]實現方法解析
【從UnityURP開始探索遊戲渲染】專欄-直達
微表面理論的核心概念
微表面理論是一種物理渲染模型,它將宏觀表面視為由無數微觀幾何細節(微表面)組成的複雜結構。這一理論是Unity URP中PBR(基於物理的渲染)實現的基礎。
基本假設
微觀結構:
宏觀表面由大量隨機方向的微觀小平面組成
每個微表面都是完美的鏡面反射體
微表面尺度小於單個像素但大於光波長
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[PBR][法線分佈]GGX實現方法對比
【從UnityURP開始探索遊戲渲染】專欄-直達
GGX的全稱與基本概念
GGX的全稱:Ground Glass X (或 Generalized Trowbridge-Reitz Distribution)
首次提出:Walter等人在2007年發表的論文《Microfacet Models for Refraction through Rough Surfaces》中提出
GGX
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[PBR][法線分佈]為何不選Beckmann
【從UnityURP開始探索遊戲渲染】專欄-直達
Beckmann分佈函數原理
Beckmann分佈函數是最早用於微表面模型的法線分佈函數之一,由Paul Beckmann在1963年的光學研究中首次提出。它描述了表面微平面法線分佈的統計規律,是計算機圖形學中最早的物理準確NDF實現。
數學原理
Beckmann分佈函數的標準形式為:
$D_{Beckmann}(h)=\frac1{πm2(
遊戲開發
收藏
評論
Nov 07 2025
SmalBox -
【光照】[PBR][幾何遮蔽]實現方法對比
【從UnityURP開始探索遊戲渲染】專欄-直達
幾何遮蔽的基本流程
幾何遮蔽(G)在BRDF中用於模擬微表面間的自陰影和遮蔽效應,其計算流程通常分為三個步驟:
遮蔽項計算:光線入射方向的遮擋概率
陰影項計算:視線方向的遮擋概率
聯合計算:將兩者結合形成完整的幾何函數
主要幾何遮蔽模型
1. Cook-Torrance模型
原理:
基於V形微槽假設
使用簡單的
遊戲開發
收藏
評論
Nov 07 2025
HONT -
實現C#泛型四則運算等特化操作
有些情況下我們會對字段做泛型封裝,使其支持OnChange、IsDirty等統一的功能擴展,例如:
IObservablefloat hitPoint;
而有些字段有掛載修改器的需求,修改器若使用lambda則對序列化不友好,因此考慮自行封裝四則運算供修改器
給原始數值進行修改,但C#早期沒有四則運算的接口(Interface)。網上的dynamic動態類型做法對多平台也不太好。
(注:使
遊戲開發
收藏
評論
Nov 07 2025
程序員二黑 -
做了三年功能測試,薪資卡在原地?破局之道在這裏
日復一日地根據需求文檔編寫測試用例,執行着幾乎相同的測試步驟,點點點……感覺自己就像一個“鼠標操作員”。技術沒有提升,業務知識也侷限於表面,看不到清晰的職業發展路徑,更別提薪資的突破了。
如果你正身處此境,請不要灰心。這不是你一個人的困境,但這絕對是一個可以打破的僵局。今天,我們就來深入探討一下,三年功能測試工程師的破局之道。
一、 為什麼你的薪資會“卡在原地”?—— 診斷篇
在尋找解藥之前,我
軟件測試
收藏
評論
Nov 07 2025
迪捷軟件 -
Docker賦能SkyEye雲部署:解鎖嵌入式仿真測試新效率,賦能企業研發加
在嵌入式系統研發愈發複雜、協同愈發密集的當下,企業對嵌入式系統仿真測試的需求日益嚴苛——既要保障多架構硬件的兼容適配,又要應對跨團隊協作的環境一致性難題,更需控制資源成本、提升研發迭代速度。如何在有限的算力資源與日益多樣的硬件架構之間取得平衡,已成為眾多企業共同面臨的難題。
當容器化浪潮席捲工業軟件領域,天目全數字實時仿真軟件SkyEye——這一面向嵌入式系統的仿真平台,也迎來了新的變革方向。基
軟件測試
收藏
評論
Nov 07 2025
程序員二黑 -
Selenium元素定位總失敗?這8種定位策略你必須掌握
作為一名自動化測試工程師,我們在使用Selenium進行Web自動化測試時,最常遇到也是最頭疼的問題就是——元素定位失敗。
當你精心編寫的腳本突然無法找到元素,當你的測試用例因為元素定位問題而頻繁失敗,當你面對動態變化的頁面結構無從下手... 這些問題是否讓你感到沮喪?
事實上,絕大多數Selenium自動化測試問題都源於元素定位。今天,我們就來深入探討Selenium中的8種核心元素定位策略,幫
軟件測試
收藏
評論
Nov 07 2025
程序員二黑 -
測試金字塔與測試左移:提升軟件質量的雙翼策略
在快速迭代的現代軟件開發中,如何保證產品質量同時加速交付,成為每個團隊面臨的挑戰。今天,我們將深入探討兩種經典的質量策略:測試金字塔與測試左移,它們如何共同構建起高效的質量保障體系。
軟件測試的基石:測試金字塔模型
測試金字塔概念由Mike Cohn在2009年的著作《Succeeding with Agile》中提出,如今已成為軟件測試的行業標準
這個金字塔形結構分為三個層次:
第一層:單元測試
軟件測試
收藏
評論
Nov 07 2025
迪捷軟件 -
低空經濟的下一程:從動力革新到數字樣機
近兩年,低空經濟迅速成為各地產業佈局的新焦點。伴隨空域管理改革和城市空中交通體系建設的推進,低空飛行器的應用場景正從航拍測繪、農業植保,擴展到應急救援、城市物流、文旅觀光、通勤運輸等領域。無人機、eVTOL、電動固定翼等新型航空裝備不斷涌現,一條全新的低空產業鏈正加速形成。
對於航空產業而言,低空經濟不僅意味着空域下沉,更意味着體系重構。它要求在動力系統、製造工藝、飛控算法、仿真驗證和適航標準等方
軟件測試
收藏
評論
Nov 07 2025
張永清 -
每週讀書與學習->JMeter主要元件詳細介紹(二)函數助手
每週讀書與學習是由清華大學出版社出版的《JMeter核心技術、性能測試與性能分析》一書的作者推出,分享作者多年的IT從業經歷,希望對很多計算機科學技術IT類專業畢業生以及IT從業者有所幫助。
1、函數助手
函數助手是Jmeter提供的一個非常有用的工具,尤其是在性能測試腳本的編寫中,由於經常需要用到一些特有的函數來生成性能測試腳本中需要的數據,函數助手就可以提供這方面的幫助。
函數助手位於Jmet
軟件測試
收藏
評論
Nov 07 2025
程序員二黑 -
測試用例設計的藝術:等價類、邊界值與判定表實戰
在軟件測試領域,測試用例設計是核心技能之一。無論你是手工測試還是自動化測試,編寫高質量的測試用例都是確保軟件質量的關鍵。今天,我們將重温三種最經典的黑盒測試方法:等價類劃分、邊界值分析和判定表,並通過一個常見的登錄功能實例,展示如何將這些方法應用到實際測試工作中。
為什麼測試用例設計如此重要?
在深入討論具體方法前,先思考一個問題:為什麼我們需要系統化的測試用例設計方法?
想象一下,如果測試用例只
軟件測試
收藏
評論