青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

的筆記

隨時隨地編輯

相機坐標、視景體、變換矩陣

引子
有這樣一個問題,動態顯示當前實體的世界坐標、相機坐標、透視投影坐標,以及當前視圖坐標變換矩陣、透視投影矩陣。

code:
 1/**
 2* This little snippet gets the Transformatio coordinates for a MovableObject
 3*
 4* @param   object   The object to retrieve the coordidnates of.
 5* @param   camera   The active camera
 6* @param   viewPosition   The Vector3 to store the view position in
 7* @param   ProjectionPosition   The Vector3 to store the projection position in
 8*
 9* @return   Returns true if the object is visible and the coordinates were
10*         retrieved, false otherwise.
11*/

12bool getTransformationCoords(Ogre::MovableObject* object, Ogre::Camera* camera, Ogre::Vector3&viewPosition  , Ogre::Vector3&ProjectionPosition)
13{
14
15    if(!object->isInScene())
16        return false;
17
18    const Ogre::AxisAlignedBox &AABB = object->getWorldBoundingBox(true);
19    /**
20    * If you need the point above the object instead of the center point:
21    * This snippet derives the average point between the top-most corners of the bounding box
22    * Ogre::Vector3 point = (AABB.getCorner(AxisAlignedBox::FAR_LEFT_TOP)
23    *    + AABB.getCorner(AxisAlignedBox::FAR_RIGHT_TOP)
24    *    + AABB.getCorner(AxisAlignedBox::NEAR_LEFT_TOP)
25    *    + AABB.getCorner(AxisAlignedBox::NEAR_RIGHT_TOP)) / 4;
26    */

27
28
29    // Get the center point of the object's bounding box
30    const Ogre::Vector3& point = AABB.getCenter();
31
32    // Is the camera facing that point? If not, return false
33    Ogre::Plane cameraPlane = Plane(Vector3(camera->getDerivedOrientation().zAxis()), camera->getDerivedPosition());
34
35    if(cameraPlane.getSide(point) != Plane::NEGATIVE_SIDE)
36        return false;
37
38    // Transform the 3D point into screen space
39    //point = camera->getProjectionMatrix() * (camera->getViewMatrix() * point);
40    viewPosition = camera->getViewMatrix() * point;
41    ProjectionPosition = camera->getProjectionMatrix() * viewPosition;
42
43
44    // Transform from coordinate space [-1, 1] to [0, 1] and update in-value
45    ProjectionPosition.x = (ProjectionPosition.x / 2+ 0.5f;
46    ProjectionPosition.y = 1 - ((ProjectionPosition.y / 2+ 0.5f);
47
48    return true;
49}

示意圖:


分析:
1. view坐標顯示的是鼠標所在實體的中心點在相機坐標系中的坐標。看代碼的line40,視圖矩陣乘以點的世界坐標,得到了這個點的在相機坐標系中的坐標。

2. projection坐標(0.2,0.2,1.0)表示的是屏幕坐標系的坐標。代碼的line41,透視投影矩陣乘以點的相機坐標,得到了這個點的透視變換坐標。這個坐標的范圍是[-1,1],需要變換到[0,1],代碼line45、46完成了這項映射變換。

3.矩陣窗口顯示的是當前視圖變換矩陣和投影變換矩陣。動態運行后可以發現投影矩陣一直不變。視圖矩陣隨著相機的移動、選擇在動態變換。
視圖矩陣變換規律:
相機沿著front方向變化:row3的z項變化,其他項均不變。
相機沿著left方向變化,row0的z項目變化,其他項均不變。
相機沿著top方向變化,row2的z項變化,其他項均不變。
相機yaw?pitch?roll?
任何時候row3都不變:{0 ,0 , 0 , 1}

posted on 2011-06-20 21:51 的筆記 閱讀(1374) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合第一| 亚洲国产精品激情在线观看| 亚洲午夜一区| 精品51国产黑色丝袜高跟鞋| 国产精品日韩欧美大师| 国产精品看片资源| 国产精品午夜av在线| 国产精品日本| 国产日韩在线一区二区三区| 国模精品一区二区三区色天香| 国产一区二区黄色| 亚洲国产cao| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产欧美国产综合一区| 在线日韩av永久免费观看| 亚洲欧美亚洲| 欧美在线视频a| 欧美成人一区二区| 欧美日韩第一页| 国产精品午夜av在线| 在线视频成人| 亚洲日本中文字幕| 亚洲一区二区精品| 蜜臀99久久精品久久久久久软件 | 美日韩丰满少妇在线观看| 欧美国产精品专区| 亚洲视屏在线播放| 久热综合在线亚洲精品| 欧美午夜在线一二页| 国产原创一区二区| 日韩亚洲欧美一区| 麻豆精品网站| 亚洲一区国产精品| 欧美sm极限捆绑bd| 国内精品视频666| 亚洲资源在线观看| 亚洲国产精品久久精品怡红院| 91久久中文| 久久天天躁狠狠躁夜夜av| 国产精品v亚洲精品v日韩精品| 在线观看欧美亚洲| 久久av红桃一区二区小说| 亚洲精选久久| 免费高清在线一区| 国产午夜精品一区二区三区欧美| 欧美午夜精品久久久| 在线日韩av片| 久久久久久亚洲精品中文字幕 | 亚洲欧洲日夜超级视频| 欧美精品一级| 欧美电影免费网站| 在线精品视频一区二区| 小处雏高清一区二区三区| 亚洲麻豆av| 模特精品在线| 伊人久久久大香线蕉综合直播 | 久久综合福利| 狠狠色丁香久久婷婷综合_中| 国产专区欧美精品| 久久久7777| 性色一区二区三区| 国产毛片精品视频| 久久精品亚洲| 久久九九国产精品| 在线观看一区视频| 欧美国产一区二区三区激情无套| 久久先锋资源| 伊人久久成人| 欧美成在线观看| 亚洲精品乱码久久久久久黑人| 男女激情久久| 日韩亚洲一区二区| 亚洲精品在线观看免费| 欧美日韩91| 亚洲综合精品自拍| 亚洲综合精品自拍| 国产一区二区三区四区在线观看 | 亚洲免费观看高清在线观看 | 久久精品国产77777蜜臀| 国产拍揄自揄精品视频麻豆| 欧美专区18| 久久婷婷蜜乳一本欲蜜臀| 亚洲大胆人体视频| 亚洲国产视频一区| 欧美色综合天天久久综合精品| 香蕉成人啪国产精品视频综合网| 亚洲午夜91| 国产综合视频| 亚洲激情成人| 国产精品国产成人国产三级| 午夜一区二区三区在线观看| 欧美一区成人| 亚洲国产高清一区二区三区| 亚洲欧洲一区二区三区在线观看| 欧美日韩大片| 久久精品国产清高在天天线| 久久综合色88| 欧美一区二区三区在线| 老司机凹凸av亚洲导航| 亚洲一区二区三区精品动漫| 欧美亚洲在线观看| 国产精自产拍久久久久久| 国产亚洲综合精品| 亚洲国产成人91精品| 国产精品第一区| 欧美91视频| 国产精品日韩| 最新国产成人在线观看| 国产精品每日更新| 欧美激情中文字幕在线| 国产伦精品一区二区三区四区免费| 亚洲欧美电影院| 欧美精品v日韩精品v国产精品| 欧美影院一区| 欧美日韩人人澡狠狠躁视频| 欧美~级网站不卡| 国产欧美日韩专区发布| 亚洲精品一级| 亚洲激情在线视频| 欧美在线欧美在线| 欧美一区视频| 欧美亚一区二区| 91久久国产精品91久久性色| 国外成人网址| 亚洲已满18点击进入久久| 亚洲日本成人在线观看| 欧美激情国产高清| 精品成人一区二区三区| 亚洲女性裸体视频| 亚洲午夜精品一区二区三区他趣| 久色婷婷小香蕉久久| 久久综合久久综合这里只有精品| 国产精品热久久久久夜色精品三区 | 亚洲精品欧美日韩专区| 亚洲承认在线| 久久久精品一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 国产精品嫩草久久久久| 99国产精品国产精品毛片| aa国产精品| 欧美日韩1区2区| 亚洲精品在线观看视频| 一区二区三区国产精品| 欧美视频中文字幕在线| 亚洲精品一区二区在线| 亚洲精品视频在线播放| 欧美女同视频| 在线视频欧美日韩精品| 欧美一区二区视频在线| 国产字幕视频一区二区| 久久网站免费| 亚洲国产精品第一区二区| 亚洲免费精品| 欧美性猛交xxxx乱大交退制版| 中文精品视频| 欧美在线看片| 亚洲国产专区校园欧美| 欧美日韩成人综合在线一区二区| 一区二区av在线| 久久久不卡网国产精品一区| 亚洲国产成人91精品| 欧美日韩一区二区三区在线观看免 | 欧美日本国产一区| 狂野欧美一区| 亚洲欧美国产一区二区三区| 久久精品视频导航| 亚洲电影网站| 欧美精品激情在线| 亚洲欧美激情一区| 蜜桃久久精品乱码一区二区| 亚洲精品视频一区| 国产精品久久国产三级国电话系列| 欧美一区二区精美| 欧美成人精品激情在线观看| 欧美日韩中文字幕在线| 亚洲一区二区三区777| 欧美成人精品一区二区三区| 国产精品99久久久久久人| 国产精品久久久久久久久免费樱桃 | 久久综合网色—综合色88| 日韩一区二区免费看| 一区二区三区高清在线| 国产精品分类| 狂野欧美激情性xxxx| 亚洲精品之草原avav久久| 欧美色精品在线视频| 久久精品欧洲| 亚洲国产日韩一级| 久久蜜臀精品av| 亚洲日本成人在线观看| 国产主播一区| 欧美一区二区三区另类| 中文av字幕一区| 亚洲精品一区在线| 久久精品电影| 欧美一区视频| 亚洲卡通欧美制服中文| 黄色在线成人| 国产一区清纯| 欧美色播在线播放|