博客 RSS 訂閱

SmalBox - 【光照】Unity中的[光照模型]概念辨析

【從UnityURP開始探索遊戲渲染】專欄-直達 基礎光照模型‌ ‌標準光照模型(Standard Lighting Model)‌ ‌定義‌:傳統光照計算的框架,通常包含漫反射、鏡面反射和環境光三部分。 ‌特點‌:非物理經驗模型,計算簡單但缺乏真實感。 ‌從屬關係‌: 包含 ‌漫反射‌ 和 ‌高光反射‌ 是 ‌Phong模型‌ 和 ‌Blinn-Phong模型‌

遊戲開發

收藏 評論

SmalBox - 【光照】Unity中的[經驗模型]

【從UnityURP開始探索遊戲渲染】專欄-直達 圖形學第一定律:“看起來對就對” URP光照模型發展史 ‌2018年‌:URP首次發佈(原LWRP),繼承傳統前向渲染的Blinn-Phong簡化版 ‌2019年‌:URP 7.x引入Basic Shader的簡化光照模型 ‌2020年‌:URP 10.x整合PBR核心(GGX+Smith) ‌2022年‌:URP 14.x新

遊戲開發

收藏 評論

落幕夜未央 - H5遊戲性能優化系列-----cpu相關優化

cpu優化主要是優化cpu使用率,幀率平穩性(卡幀,長耗時任務),主要從以下幾個方面優化 設置合適的幀率。根據遊戲類型設置合適的幀率,比如slg,回合制這種類型遊戲一般開30幀,mmo等即時戰鬥的或者對流暢度有很高要求的可以開60幀。 幀同步與狀態同步的抉擇。一般來説狀態同步會比幀同步的前後端消息量大,也就説消息同步壓力更大。但是狀態同步前端實現起來比較簡單,只用根據對應消息更新狀態即可。

遊戲開發

收藏 評論

SmalBox - 【光照】[自發光Emission]以UnityURP為例

【從UnityURP開始探索遊戲渲染】專欄-直達 自發光的基本原理 $Cemissive=Memissive$ 自發光是物體表面主動發射光線的現象,在光照模型中通常作為獨立於外部光源的附加項。其核心特點是不受其他光照影響,但可以影響周圍環境。 實現流程 ‌定義發射顏色和強度‌:確定基礎發光顏色和亮度 ‌紋理採樣 可選‌:使用紋理控制發射圖案 ‌HDR處理‌:支持高於1.0的亮度值

遊戲開發

收藏 評論

SmalBox - 【光照】[漫反射diffuse]以UnityURP為例

【從UnityURP開始探索遊戲渲染】專欄-直達 漫反射基本流程 漫反射遵循蘭伯特定律(Lambert's Cosine Law),其核心流程如下: ‌法線準備‌:獲取表面法線向量(通常來自頂點法線或法線貼圖) ‌光源方向計算‌:確定光源到表面點的單位方向向量 ‌點積運算‌:計算法線向量與光源方向的點積(N·L) ‌能量約束‌:使用saturate函數將結果限制在[0,1]範圍

遊戲開發

收藏 評論

SmalBox - 【光照】[漫反射]UnityURP蘭伯特能量守恆嗎?

【從UnityURP開始探索遊戲渲染】專欄-直達 蘭伯特漫反射的能量守恆性 ‌能量守恆基本原理‌ 在物理正確的渲染中,能量守恆要求: 表面反射的光能總量 ≤ 入射光能 漫反射+高光反射 ≤ 1.0 沒有能量憑空產生或消失 ‌經典蘭伯特模型的能量守恆問題‌ 傳統蘭伯特漫反射公式: $漫反射 = 表面反照率 × max(0, N·L)$ ‌不守恆的原因‌: ‌缺乏歸一化因子‌:

遊戲開發

收藏 評論

Lin*Mu - Unity 同一場景不同攝像機 設置不同天空盒背景

如何在Unity中的一個場景進行分屏,並將分屏的兩個攝像機設置不同的天空盒 問題分為兩個:1.分屏,2.設置不同天空盒 1.分屏 在Unity中創建兩個攝像機 或者將主攝像機賦值一份 保持場景的所有攝像機有且僅有一個Audio Listener 修改ViewPortRect 以及depth 參數如圖 其中 x,y為顯示畫面左下角比例位置,x中0為最左,0.5為居中,1為最右側,y

遊戲開發

收藏 評論

SmalBox - 【光照】[漫反射]UnityURP蘭伯特有光照衰減嗎?

【從UnityURP開始探索遊戲渲染】專欄-直達 光照衰減的基本原理 在物理正確的光照模型中,衰減需要遵循兩個基本定律: ‌平方反比定律‌:光強與距離平方成反比 (I ∝ 1/r²) ‌餘弦定律‌:表面接收的光強與入射角餘弦成正比 (I ∝ cosθ) 經典蘭伯特模型的衰減處理 標準蘭伯特公式 $漫反射 = 表面顏色 * 表面反照率 * max(0, N·L)$ 衰減實現分析 ‌

遊戲開發

收藏 評論

SmalBox - 【光照】[高光反射specular]以UnityURP為例

【從UnityURP開始探索遊戲渲染】專欄-直達 高光反射的基本流程 經驗光照模型中的高光反射通常遵循以下流程: ‌入射光計算‌:確定光源方向和強度 ‌視角向量計算‌:確定觀察者方向 ‌反射向量計算‌:根據表面法線計算理想反射方向 ‌高光強度計算‌:使用特定模型計算高光反射強度 ‌最終合成‌:將高光反射與漫反射和環境光結合 主要高光反射模型及實現 Phong模型 (1975)

遊戲開發

收藏 評論

SmalBox - 【光照】[環境光ambient]以UnityURP為例

【從UnityURP開始探索遊戲渲染】專欄-直達 環境光的基本處理流程 $Cambient$ ‌環境光采集‌:獲取場景環境光照信息 ‌環境光遮蔽‌:計算環境光遮擋關係 ‌環境光反射‌:根據材質屬性反射環境光 ‌環境光混合‌:與其他光照成分合成最終顏色 主要環境光模型及實現 恆定環境光(Constant Ambient) ‌實現原理‌: $環境光 = 環境光顏色 ×

遊戲開發

收藏 評論

horeaper - 放棄Unity後,我為什麼選擇了Unigine?

Unity一直在搞事相信大家都知道,特別是unity.cn,之前都還在我的容忍範圍之內,直到上半年他們事實性的宣佈不會支持Unity 6之後,我就決定換引擎了。 至於換哪個引擎着實挑選了一段不短的時間(實際上我“物色”引擎從23年Runtime Fee事件之後就開始了)。首先被排除的是Unreal,這玩意兒我玩不起。之後我在幾個支持C#的引擎裏面挑選,最後鎖定在三個引擎上面:Stride,Flax

遊戲開發

收藏 評論

horeaper - Unigine整合Myra UI Library全紀錄(1):引言,紋理與平台

太長不看:https://github.com/horeaper/UnigineMyraIntegration 什麼是Myra? 這個是Myra:https://github.com/rds1983/Myra 熟悉WPF/Avalonia/Silverlight/UWP開發的朋友肯定一眼就能看出來這個UI庫用的是什麼佐料了。它當然不是完整的WPF實現,對於遊戲開發而言也沒必要用完整的WPF,太重了

遊戲開發

收藏 評論

SmalBox - 【光照】Unity中的[物理模型]PBR

【從UnityURP開始探索遊戲渲染】專欄-直達 PBR(Physically Based Rendendering)的核心內容與BRDF應用‌ PBR是一種基於物理光學原理的渲染框架,其核心是通過‌物理可測量的材質屬性‌和‌真實的光照計算規則‌實現跨環境一致的真實感渲染。 ‌PBR四大核心支柱‌ 模塊 作用 關鍵參數 ‌材質參數系統

遊戲開發

收藏 評論

SmalBox - 【光照】[物理模型]中的[BRDF]是什麼?

【從UnityURP開始探索遊戲渲染】專欄-直達 雙向反射分佈函數 Bidirectional Reflectance Distribution Function 解釋當光線從某個方向照射到一個表面時,有多少光線被反射、反射方向有哪些。BRDF大多使用一個數學公式表示,並提供一些參數來調整材質屬性。 BRDF(雙向反射分佈函數)是計算機圖形學和光學中描述物體表面反射特性的核心數學模型,其定義

遊戲開發

收藏 評論

SmalBox - 【光照】[PBR][漫反射]實現方法對比

【從UnityURP開始探索遊戲渲染】專欄-直達 URP BRDF漫反射方法對比 方法名稱 數學公式 特點 性能消耗 適用場景 Lambert $L_d = k_d * max(0, N·L)$ 經典模型,能量不守恆 ★☆☆ 移動端低配 Half-Lambert $L_d =

遊戲開發

收藏 評論

SmalBox - 【光照】[PBR][鏡面反射]實現方法解析

【從UnityURP開始探索遊戲渲染】專欄-直達 微表面理論的核心概念 微表面理論是一種物理渲染模型,它將宏觀表面視為由無數微觀幾何細節(微表面)組成的複雜結構。這一理論是Unity URP中PBR(基於物理的渲染)實現的基礎。 基本假設 ‌微觀結構‌: 宏觀表面由大量隨機方向的微觀小平面組成 每個微表面都是完美的鏡面反射體 微表面尺度小於單個像素但大於光波長

遊戲開發

收藏 評論

SmalBox - 【光照】[PBR][法線分佈]GGX實現方法對比

【從UnityURP開始探索遊戲渲染】專欄-直達 GGX的全稱與基本概念 ‌GGX的全稱‌:Ground Glass X (或 Generalized Trowbridge-Reitz Distribution) ‌首次提出‌:Walter等人在2007年發表的論文《Microfacet Models for Refraction through Rough Surfaces》中提出 GGX

遊戲開發

收藏 評論

SmalBox - 【光照】[PBR][法線分佈]為何不選Beckmann

【從UnityURP開始探索遊戲渲染】專欄-直達 Beckmann分佈函數原理 Beckmann分佈函數是最早用於微表面模型的法線分佈函數之一,由Paul Beckmann在1963年的光學研究中首次提出。它描述了表面微平面法線分佈的統計規律,是計算機圖形學中最早的物理準確NDF實現。 數學原理 Beckmann分佈函數的標準形式為: $D_{Beckmann}(h)=\frac1{πm2(

遊戲開發

收藏 評論

SmalBox - 【光照】[PBR][幾何遮蔽]實現方法對比

【從UnityURP開始探索遊戲渲染】專欄-直達 幾何遮蔽的基本流程 幾何遮蔽(G)在BRDF中用於模擬微表面間的自陰影和遮蔽效應,其計算流程通常分為三個步驟: ‌遮蔽項計算‌:光線入射方向的遮擋概率 ‌陰影項計算‌:視線方向的遮擋概率 ‌聯合計算‌:將兩者結合形成完整的幾何函數 主要幾何遮蔽模型 1. Cook-Torrance模型 ‌原理‌: 基於V形微槽假設 使用簡單的

遊戲開發

收藏 評論

HONT - 實現C#泛型四則運算等特化操作

有些情況下我們會對字段做泛型封裝,使其支持OnChange、IsDirty等統一的功能擴展,例如: IObservablefloat hitPoint; 而有些字段有掛載修改器的需求,修改器若使用lambda則對序列化不友好,因此考慮自行封裝四則運算供修改器 給原始數值進行修改,但C#早期沒有四則運算的接口(Interface)。網上的dynamic動態類型做法對多平台也不太好。 (注:使

遊戲開發

收藏 評論

程序員二黑 - 做了三年功能測試,薪資卡在原地?破局之道在這裏

日復一日地根據需求文檔編寫測試用例,執行着幾乎相同的測試步驟,點點點……感覺自己就像一個“鼠標操作員”。技術沒有提升,業務知識也侷限於表面,看不到清晰的職業發展路徑,更別提薪資的突破了。 如果你正身處此境,請不要灰心。這不是你一個人的困境,但這絕對是一個可以打破的僵局。今天,我們就來深入探討一下,三年功能測試工程師的破局之道。 一、 為什麼你的薪資會“卡在原地”?—— 診斷篇 在尋找解藥之前,我

軟件測試

收藏 評論

迪捷軟件 - Docker賦能SkyEye雲部署:解鎖嵌入式仿真測試新效率,賦能企業研發加

​在嵌入式系統研發愈發複雜、協同愈發密集的當下,企業對嵌入式系統仿真測試的需求日益嚴苛——既要保障多架構硬件的兼容適配,又要應對跨團隊協作的環境一致性難題,更需控制資源成本、提升研發迭代速度。如何在有限的算力資源與日益多樣的硬件架構之間取得平衡,已成為眾多企業共同面臨的難題。 當容器化浪潮席捲工業軟件領域,天目全數字實時仿真軟件SkyEye——這一面向嵌入式系統的仿真平台,也迎來了新的變革方向。基

軟件測試

收藏 評論

程序員二黑 - Selenium元素定位總失敗?這8種定位策略你必須掌握

作為一名自動化測試工程師,我們在使用Selenium進行Web自動化測試時,最常遇到也是最頭疼的問題就是——元素定位失敗。 當你精心編寫的腳本突然無法找到元素,當你的測試用例因為元素定位問題而頻繁失敗,當你面對動態變化的頁面結構無從下手... 這些問題是否讓你感到沮喪? 事實上,絕大多數Selenium自動化測試問題都源於元素定位。今天,我們就來深入探討Selenium中的8種核心元素定位策略,幫

軟件測試

收藏 評論

程序員二黑 - 測試金字塔與測試左移:提升軟件質量的雙翼策略

在快速迭代的現代軟件開發中,如何保證產品質量同時加速交付,成為每個團隊面臨的挑戰。今天,我們將深入探討兩種經典的質量策略:測試金字塔與測試左移,它們如何共同構建起高效的質量保障體系。 軟件測試的基石:測試金字塔模型 測試金字塔概念由Mike Cohn在2009年的著作《Succeeding with Agile》中提出,如今已成為軟件測試的行業標準 這個金字塔形結構分為三個層次: 第一層:單元測試

軟件測試

收藏 評論