2013年1月26日 星期六

在IOS上模擬互動水波+折射+反射…

這次的實作幾乎完全使用Pixel Shader,目前為了效能考量,在New Ipad上還是不敢使用太大張的貼圖,之後看能不能在Ipad4上使用更高解析度的貼圖。

 以下是相關影片:

夢想還在持續中…

9 則留言:

  1. 版主您好, Ogre如何做 Detect Mouse Collision的功能, 想用滑鼠按3d物件後觸發動作, 能教我做這功能嗎?

    謝謝版主

    回覆刪除
  2. 卡拉卡拉您好:
    首先你要先把滑鼠的作標換算成視窗大的的百分比(0.0~1.0),然後再利用Camera的getCameraToViewportRay取得射線,之後再用RaySceneQuery來取得碰撞到的物件,但這只能做到AABB層級,如果要更真實的碰撞,就要將OgreMesh的資料Convert成三角形,然後再一個個計算,希望這對你有幫助。
    相關參考資料如下:
    http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Raycasting+to+the+polygon+level&structure=Cookbook
    還有http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Snippets有用的資料很多,你可以來查查,應該對你有幫助。

    回覆刪除
  3. 非常感謝版主的提供相關參考資料, 等下來研究一下

    那兩個3D物件的碰撞,假設A快撞到B , A就會避開B, 這部分問題再請教版主如何做或者有什麼方法和參考資料

    回覆刪除
  4. 版主您好,

    我後來另外找到一篇類似你所說的方法, 但我不知道是不是正確

    http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Get+XZ+coordinates

    回覆刪除
    回覆
    1. 這個方法用處不大,只能處理plane的問題還是乖乖看這篇吧!http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Raycasting+to+the+polygon+level&structure=Cookbook

      刪除
  5. 我有個不懂地方

    Mouse Picking (3D Object Selection) and SceneQuery Masks

    跟 Detect Mouse Collision

    兩種方法差別在哪? 請版主賜教

    謝謝版主

    另外版主有沒有Line 或 FB, 想與你加個好友不知方不方便, 如果ok我們在私下交換

    回覆刪除
    回覆
    1. 版主~~我有在FB上加你好友, chenminyi

      刪除
    2. 你這樣問,感覺上可能對Pick碰撞偵測處理流程的概念不是很清楚。那些名詞只是說法的不同,基本上就是分成滑鼠作標換算成Ray及Ray intersection兩部份,這兩個處理本質上完全沒有關係。
      1.滑鼠作標換算成Ray:目的就是為了求Screen上的一個點,以目前鏡頭為方向所打的一條射線,而Ogre Camera的CgetCameraToViewportRay要求的參數是Screen的比例,所以要將座標換算成比例,代入後就可以求得Ray。
      2.計算Ray與物件是否有交集點:Ogre是提供SceneQuery來先幫你過濾掉Ray是否有Intersect到物件的AABB,有的話會將有hit到的物件清單提供給你,之後就可以這份清單來做更深層的Ray Intersect Triangle來求得相關的交集點資料(Intersect Point、Intersect Normal…等)
      PS:如果你的AABB、Ray intersect…等這些名詞不是很熟悉的話,那真得自己要好好做功課了…網路上有很多相關的文章,自己好好爬文吧!萬丈高樓平地起…
      這邊有一些介紹Ray Scene Query的Wiki:
      http://www.ogre3d.org/tikiwiki/Intermediate+Tutorial+2
      找時間把Ogre Wiki裡Tutorial那邊的文章都看一看吧!那個是基本工。

      刪除