目前分類:3D圖學 (5)

瀏覽方式: 標題列表 簡短摘要

Radial Blur是一種動態模糊技術,通常用在賽車遊戲與FPS等。在賽車遊戲中能夠給於速度感,就像時感賽車中使用氮氣噴射一樣

ridge-racer-2-20060921112912820.jpg
FPS中通常是在玩家被打中時或是快死亡的畫面表現。

接下來將說明如何做出這樣的效果

首先,當然我們必須先把遊戲物件整個Render一次到Texture(Render Buffer)上,然後再將這張Texture來做後至處理。

SnakeEater 發表在 痞客邦 留言(0) 人氣()

  • 這篇文章限定好友觀看。
    若您是好友,登入後即可閱讀。

normal為什麼必須要乘上world matrix的inverse和transpose之後的矩陣,而不是直接乘上world matrix。其實我以前也搞不懂,為什麼有些Shader上是將World Matrix定義為invtransposeWorldMatrix(大致上是這樣定義)而有些卻是直接定義為WorldMatrix(大致上是這樣定義)。在看了Real-Time Rendering之後了解到真正的用意是什麼,將說明如下

NormalTransform2.jpg 

這張圖的左邊是一個三角形物體,在這個斜邊上的Normal垂直於斜邊。但是在經過non-uniform scale之後就會像右圖一樣因為縮放的關係像上延伸,因此斜邊上的Normal已經沒有跟斜編成垂直的。怎麼樣,很可怕是吧,如果這時候利用這個normal來做各種計算,所得到的結果都將是錯誤的。

那要怎麼避免呢,首先我們來了解一下什麼是non-uniform scale。照字面上的意思就是非相等的縮放,也就是在3D空間中(或是2D),每個軸向的縮放值是不一樣的。相對的uniform scale就是個軸向縮放值相等。所以我們知道,只有在non-uniform的狀況下會有這樣的情形發生,所以通常在很多引擎的設計上,會捨棄non-uniform scale,來統一shader的normal計算方式,或是針對各種不同狀況來決定是要執行的shader。

了解了是什麼造成這樣的局面但是卻還是不了解為何要將World Matrix做invese與transpose。接下來就為大家來個數學證明。

SnakeEater 發表在 痞客邦 留言(1) 人氣()

因為最近專案逐漸進入收尾的階段,

效能便成首要解決的目標,

所以 不管是效率太慢還是佔太多記憶體的壞蛋,

都要一一挑出來解決掉,

本篇介紹藉由壓縮Noral Map來解決記憶體佔用太多的問題。

river086 發表在 痞客邦 留言(1) 人氣()

  • Nov 28 Fri 2008 23:38
  • Z-Pass

最近在開發遊戲上一直碰到效能上的瓶頸。

目前的遊戲高畫質可以算是基本上的需求,傳統的640 x 480的解析度已經不能滿足玩家的眼睛。

1280 x 720以上的高清時代已經來臨。

面對這樣高清的解析度,Pixel Shader的負擔就越重,減少每個Pixel著色的次數將是首要目標。

要怎樣才能減少Pixel Over Draw的現象呢?

SnakeEater 發表在 痞客邦 留言(0) 人氣()