1 / 30

好孩子的 PSP 教室

好孩子的 PSP 教室. 好孩子的 PSP BSP 教室. 2010.05.19. 0. 前言. Q: 為什麼會有這份投影片 ? A: 因為太多人問一樣的問題了 … ex: 而且 , 之前助教好像恍神講錯東西了 …. 正面跟反面怎麼分 ? 會不會有牆壁被切兩次 ? 被切兩次的面又要怎麼表示 ? 兩條線的交點要怎麼算 ? 作業會不會延期 ? PSP 改機要改哪個版本 ??. 1.Q&A. 來解答一下重複的一些問題 已經開始寫的聽完這部分就可以下課了 ~. 1.Q&A. Q: 正面跟反面怎麼分 ?

laksha
Download Presentation

好孩子的 PSP 教室

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 好孩子的PSP 教室

  2. 好孩子的PSPBSP 教室 2010.05.19

  3. 0.前言 • Q: 為什麼會有這份投影片? • A: 因為太多人問一樣的問題了… • ex: • 而且,之前助教好像恍神講錯東西了… • 正面跟反面怎麼分? 會不會有牆壁被切兩次? 被切兩次的面又要怎麼表示? 兩條線的交點要怎麼算? 作業會不會延期? PSP改機要改哪個版本??

  4. 1.Q&A • 來解答一下重複的一些問題 • 已經開始寫的聽完這部分就可以下課了~

  5. 1.Q&A • Q: 正面跟反面怎麼分? • A: 測資中有給定觀察者所在的initial 位置, 以”面向觀察者” 的面當正面(front), 另一面當反面(back). 建Tree的時候正面丟左邊, 反面丟右邊. ex: 牆3 牆1 牆2

  6. 1.Q&A • Q: 會不會有牆壁被切兩次? • A: 助教那麼陰險正直, 當然會啦~ • 大概有2組以上的測資會切n次吧 = = 牆2F 牆2F 牆1 牆2 牆1 牆1 牆2B 牆3 牆2B 牆3 牆3F 牆3B 牆2F 牆1 牆2B 牆3F 牆3BB 牆3BF

  7. 1.Q&A • Q: 那會不會有斜的牆壁? • A: 助教那麼(嗶~~) 當然會啦~ 其實我還沒設計…可能最難的那組測資會有斜的牆壁吧 可能而已啦…

  8. 1.Q&A • Q: BSP Tree建好後, 移動視角的時候需要重新建嗎? • A: 阿哈哈哈 我之前好像說要… 其實是不用的 (認真) BSP Tree建Tree時所分的Front跟Back其實只是為了把空間中其他polygon分成兩個區域, 並沒有真正的”前”跟”後”的關係, 前後關係其實是在畫圖(render)時才會根據觀察者的眼睛判斷(先畫”實際上的後” -> 畫牆壁 -> 畫”實際上的前”). 所以你會發現投影片上的pseudo code(P.25)並不一定先畫左子樹還右子樹, 而是以view的位置決定. 我就說我沒睡飽會講錯話嘛….

  9. 1.Q&A

  10. 1.Q&A • Q: 兩條線的交點要怎麼算? • A: 最笨的辦法, 請算出直線方程式... • 至於聰明一點的…有人想到請教我XD x-y-1=0 <0 >0

  11. 1.Q&A • Q: BSP Tree要怎麼建….? • A: 這問題問得太好了 我們下堂課慢慢討論… • Q: 作業會不會延期? • A: 我想應該不會.

  12. 下課! • 已經可以回去寫code的同學們就回去吧! • 還聽不懂我在講什麼的…

  13. 2. An easy example for creating BSP Tree • 考慮投影片上的測資: 1 100 800 100 500 1.0 1.0 1.0 2 200 500 200 400 1.0 1.0 0.0 3 400 800 100 800 1.0 0.0 1.0 4 400 700 400 800 0.0 1.0 1.0 5 500 700 400 700 1.0 0.0 0.0 6 500 800 500 700 0.0 0.0 1.0 7 800 800 500 800 1.0 1.0 0.0 8 800 500 800 800 1.0 0.0 1.0 (0,0) X

  14. 1 1 2 3 4 5 6 7 8 (0,0) X

  15. 1 1 2 3 4 5 6 7 8 2 (0,0) X

  16. 1 3 1 2 3 4 5 6 7 8 2 (0,0) X

  17. 1 1 2 3 4 5 6 7 8 2 3f 3b (0,0) X

  18. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 (0,0) X

  19. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 5 (0,0) X

  20. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 5 6 (0,0) X

  21. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 5 6 7 (0,0) X

  22. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 8 5 6 7 (0,0) X

  23. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 5 8b 8f 6 7 (0,0) X

  24. 1 1 2 3 4 5 6 7 8 2 3f 3b 4 5 8f 6 7 8b (0,0) X

  25. Result 1 • Preorder: 1 2 3F 4 5 8F 6 7 8B 3B • Inorder: 8F 5 6 8B 7 4 3F 2 3B 1 • Postorder: 8F 8B 7 6 5 4 3F 3B 2 1 2 3f 3b 4 5 8f 6 7 8b

  26. Rendering • 請參閱第七章P25的pseudo code.

  27. 1 2 3f 3b 4 5 8f 6 1 2 3 4 5 6 7 8 7 8b render順序: 1 3b 2 3f 7 8b 6 5 8f 4 6比4早render->6被4蓋住 (0,0) X

  28. 1 2 3f 3b 4 5 8f 6 1 2 3 4 5 6 7 8 7 8b render順序: 1 3b 2 3f 4 6 7 8b 5 8f 4比6早render->4被6蓋住 (0,0) X

  29. 除了這些之外… • 1.助教提供的bsp.cpp裡的inorder跟postorder function 寫錯了 XD 請自己更改(把打錯的preorder(…)改成inorder/postorder) 或是到網頁上下載新版的範例程式. • 2.為了輸出, 請把Tnode裡面的char label改成char* label 這樣label才能隨著切割次數越來越長. (沒改也是可以畫出場景啦, 只是輸出不一樣…) • 3.牆壁如果沒顏色的話請檢查newwall和new Tnode有沒有給予color值(預設我記得是沒有的…) • 4.貼圖有貼有分~ 貼一種15 兩種20

  30. END • 阿 期中考… • 最後一題如果寫opengl code然後寫對的可以來要分數(寫錯的就自己斟酌吧= = )

More Related