Presentation is loading. Please wait.

Presentation is loading. Please wait.

好孩子的 CG 教室 - 輕輕鬆鬆寫 CG 作業 2-Bump map. 為什麼有這份投影片呢 ? 聽說有人說助教上課講太快 Bump map 都聽不懂 導致大家第二部分的作業都怪怪的.

Similar presentations


Presentation on theme: "好孩子的 CG 教室 - 輕輕鬆鬆寫 CG 作業 2-Bump map. 為什麼有這份投影片呢 ? 聽說有人說助教上課講太快 Bump map 都聽不懂 導致大家第二部分的作業都怪怪的."— Presentation transcript:

1 好孩子的 CG 教室 - 輕輕鬆鬆寫 CG 作業 2-Bump map

2 為什麼有這份投影片呢 ? 聽說有人說助教上課講太快 Bump map 都聽不懂 導致大家第二部分的作業都怪怪的

3 EZ 的 Bump Map 的方法 因為真正的 bump map 非常繁瑣, 所以這 裡提供替代方案教學 請各位看到資料夾中 ◦ fiber_bump.bmp ◦ fiber.bmp 真正要看的其實是 fiber_bump 他代表貼 圖高度 ( 貼圖顏色還是要看 fiber) 所以如果怕麻煩的話也可以把 fiber.bmp 的 (R+G+B)/3 ( 效果是差不多的 )

4 簡單的 Bump Map 的方法 (cont) 但請注意,不管是哪一張貼圖出來的取 出的 rgb 值都不是 normal!!! 請勿直接 assign 那 normal 到底要怎麼算呢?

5 容易的 Bump Map 的方法 (cont) float temp = 1.0/512.0; // 算出每個 tixel 之間的距離 vec2 i = vec2 ( gl_TexCoord[1].x,gl_TexCoord[1].y ); //i 是計算的 pixel 位置 vec2 j = vec2 ( gl_TexCoord[1].x+temp,gl_TexCoord[1].y ); // 是其右方的 pixel 位置 vec2 k = vec2 ( gl_TexCoord[1].x,gl_TexCoord[1].y+temp ); //k 是 i 上方的 pixel 位置 vec4 i_color = texture2D(colorTexture,i);// 根據位置取得顏色 vec4 j_color = texture2D(colorTexture,j); vec4 k_color = texture2D(colorTexture,k); i (x,y) k (x,y-1) j (x-1,y)

6 單純的 Bump Map 的方法 (cont) v = || i - k || 就是垂直方向的高度差 u = || i - j || 就是水平方向的高度差 三維方向的三個軸 x, y 和 z 先將法向量對 z 軸旋轉 v 再將法向量個 z 值 scale u 倍 最後將法向量 normalize 新的 normal 就 產生囉 \^o^/

7 方法好像跟老師教的不同?? 投影片的 Pu, Pv 跟 model 的 texture 參數化 有關;又因為 teapot 是圓柱投影,只跟 Y 軸有關,所以經過簡化後才能用這個 偷吃步的方法。 所以想做正統方法的請私底下來找助教 或自行上網查詢。

8 補交有什麼好處呢? 現在大家的方法幾乎是都錯的,但助教 會酌量給分,但也鼓勵想做的同學 ( 或 想多拿點分數的 ) 可以補交 bump map , 會再額外加分 再助教送成績以前,都可以上傳補交, 請各位好好把握!

9 END


Download ppt "好孩子的 CG 教室 - 輕輕鬆鬆寫 CG 作業 2-Bump map. 為什麼有這份投影片呢 ? 聽說有人說助教上課講太快 Bump map 都聽不懂 導致大家第二部分的作業都怪怪的."

Similar presentations


Ads by Google