原创 關於Texture Cache簡單總結

Texture Cache是一個存儲圖片數據的只讀cache 按照正常uv順序讀貼圖tex cache有高命中率 Texture Cache在 shader processor附近,所以它有高吞吐率,並且低延遲 上圖可見有許多 shad

原创 Tiled Based Deferred Shading與Forward+

Tiled Based流程   1.將屏幕分成小塊,每個小塊爲一個視錐體     2,(depth bounds)在每一個視錐體中,根據ZBuffer得到每個Tile的MinZ和MaxZ,用MinZ到MaxZ這片區域對光做交點測試(使

原创 WangTile實現小結

過程 square tiles with just two types of edge, the complete stochastic set consists of 16 tiles,While the number of t

原创 Hierarchical Z-Buffer Visibility (Hi-Z)

可見性算法的目的是丟棄隱藏面, 對於GPU可以節省CPU傳入頂點信息的帶寬&頂點ALU&Fragment ALU的消耗, 對於CPU可以減少DC(物件被剔除了) 有三種方式可以實現可見性算法 1.object-space coherenc

原创 ARM Unity開發者圖形優化指南總結

優化列表 應用層: 1.用 OnBecameVisible() 和OnBecameInvisible() 來開關高cpu消耗的物體,或者該物體的部分高消耗邏輯代碼 2.用 Vector3.sqrMagnitude 來替代 Vector3.

原创 用Projector來優化陰影

以前的項目使用projector做中配的影子,高配角色實時陰影,低配畫一個半透明的黑圓 基本原理就是將畫影子的相機掛到Projector上,用該相機畫指定layer的物體用黑色的shader畫到一張RT上,,再用這個RT作爲Project

原创 Volumetric Cloudscapes(一):理論

billboard雲沒辦法實現雲間的陰影,所以要做一塊 voxel clouds voxel clouds有一些缺點會很耗 • 大量texture讀取 • Ray marches • 嵌套循環 塑形部分 根據高度的不同種類的雲,

原创 開啓stripping遇到的問題

在手機上會遇到Could not produce class with ID***的問題,是因爲Unity strip掉了用到的腳本 如果是非UnityEngine.dll中的類,會報not found的錯,需要new一下改類 參考: h

原创 Planer Reflection

源代碼來自Unity https://github.com/keijiro/AdamPlaneReflection 參考: Forward Mapped Planar Mirror Reflections http://ws.iat.sf

原创 Tiled Based Deferred Rendering與Forward+

Tiled Based流程   1.將屏幕分成小塊,每個小塊爲一個視錐體     2,(depth bounds)在每一個視錐體中,根據ZBuffer得到每個Tile的MinZ和MaxZ,用MinZ到MaxZ這片區域對光做交點測試(使

原创 問題總結-AlphaTest在forward管線生成DepthNormalsTexture的問題

在Forward管線中,如果後期需要用到法線貼圖, 需要將相機depthTextureMode 的Flag設置爲DepthNormals 在相機面板可以確認 這樣的話會把物體走一遍"Hidden/Internal-DepthNorm

原创 Unity 2018 3.0地形優化與新增特性

https://blogs.unity3d.com/cn/2018/10/10/2018-3-terrain-update-getting-started/ 總覽: This update features improved tools 

原创 關於EarlyZ

在前向渲染中,ZTest是在Fragement Shader之後進行的,也就是說,被遮擋的部分也要繪製FS,就產生了Over Draw,其實很費,Early Z Culling就解決了這個問題 Early fragment tests,

原创 延遲渲染與前向渲染

The basic idea behind deferred shading is to perform all visibility testing before performing any lighting computations

原创 問題總結-forward render path surface shader 不寫入深度問題

問題復現:forward render path surface shader刪除fall back之後 不寫入相機的深度貼圖,導致用到深度的後期計算錯誤 解決辦法,#pragma surface 加入 fullforwardshadow