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

Code Knight

Programming is so cool
隨筆 - 52, 文章 - 0, 評論 - 14, 引用 - 0
數據加載中……

昏頭!被Intersect折騰了半天!

          D3D中的PICK例程中有這樣的一個檢測函數,檢測拾取,具體原理網上有很多,自己改了一下,卻掉了兩個重要的東西,不過還不是很明白是怎么一回事!修改我射線起始點的坐標有何用呢?
         
  1 BOOL IntersectTest(LPDIRECT3DVERTEXBUFFER9 pVB,
  2                    LPDIRECT3DINDEXBUFFER9 pIB,
  3                    int nStride,
  4                    int dwNumFaces,
  5                    D3DXVECTOR3* vPickRayOrig,
  6                    D3DXVECTOR3* vPickRay,
  7                    D3DXVECTOR3 *pVRet,
  8                    DWORD dwFlag=0// 主要檢測與地形相交 // 此函數相當耗費CPU// 生成地形有13W個面,逐一檢查是否相交
  9 {
 10     WORD*        pIndices;
 11     BYTE*        pVertices;
 12     D3DINDEXBUFFER_DESC IB_Desc;
 13 
 14     FLOAT fBary1, fBary2,fDist=1e+32f;
 15 
 16     FLOAT t_fBary1, t_fBary2,t_fDist;
 17     DWORD dwFace=-1;
 18     DWORD  dwUpperLower;    
 19 
 20     D3DXVECTOR3* pV[3];
 21     ULONG  n;
 22 
 23     pIB->GetDesc(&IB_Desc); 
 24     pIB->Lock( 00, (void**)&pIndices, 0 );
 25     pVB->Lock( 00, (void**)&pVertices,0 );
 26 
 27 
 28     for( DWORD i=0; i<dwNumFaces; i++ )
 29     {
 30         for(int j=0;j<3;j++)
 31         {
 32             if(IB_Desc.Format==D3DFMT_INDEX16)            
 33                 n=(WORD)pIndices[3*i+j];
 34             else if(IB_Desc.Format==D3DFMT_INDEX32)        
 35                 n=*(DWORD*)&pIndices[2*(3*i+j)];
 36             else 
 37                 return FALSE;
 38             pV[j]=(D3DXVECTOR3*)(pVertices+nStride*n); 
 39         }
 40 
 41         dwUpperLower=0;
 42 
 43          if(dwFlag) // 這段是必須要的,具體是怎么做到的?
 44          {
 45              if(dwFlag & INTERSECT_NEGATIVEY) 
 46              {
 47                 for(int j=0;j<3;j++)
 48                 {
 49                     dwUpperLower|=vPickRayOrig->x>pV[j]->x? 0x0010:0x0001
 50                     dwUpperLower|=vPickRayOrig->z>pV[j]->z? 0x1000:0x0100
 51 
 52                 }
 53                 if(dwUpperLower!=0x1111continue;        
 54             }
 55             else if(dwFlag & INTERSECT_HORIZENTAL) 
 56             {
 57                 for(int j=0;j<3;j++)
 58                 {
 59                     dwUpperLower|=(vPickRayOrig->> pV[j]->y)? 0x0010:0x0001;
 60                 }
 61 
 62                 if(dwUpperLower!=0x0011continue;    
 63             }
 64 
 65 
 66         }
 67 
 68 
 69 
 70         // 檢測是否穿過三角形
 71         if( IntersectTriangle( *vPickRayOrig, *vPickRay, *pV[0], *pV[1], *pV[2],
 72             &t_fDist, &t_fBary1, &t_fBary2 ) )
 73         {
 74             if(    t_fDist < fDist )    //是否返回最近的一個點
 75             {
 76                 dwFace = i;
 77                 fBary1 = t_fBary1;
 78                 fBary2 = t_fBary2;
 79                 fDist  = t_fDist;
 80             }
 81         }
 82     }
 83     
 84 
 85     if(dwFace<dwNumFaces && dwFace>=0 )
 86     {
 87 
 88         for(int j=0;j<3;j++)
 89         {
 90             if(IB_Desc.Format==D3DFMT_INDEX16)            
 91                 n=(WORD)pIndices[3*dwFace +j];
 92             else if(IB_Desc.Format==D3DFMT_INDEX32)        
 93                 n=*(DWORD*)&pIndices[2*(3*dwFace+j)];
 94             else 
 95                 return FALSE;
 96             pV[j]=(D3DXVECTOR3*)(pVertices+nStride*n);
 97         }
 98         *pVRet=*pV[0+fBary1*(*pV[1]-*pV[0])+fBary2*(*pV[2]-*pV[0]);  
 99 
100 
101         pVB->Unlock();
102         pIB->Unlock();
103         return 1;
104     }
105 
106 
107     pVB->Unlock();
108     pIB->Unlock();
109 
110 
111 
112     return 0;
113 }
另一個問題,大規模的地形一般如何最大程度的優化避免對所有的面進行檢測?用LOD么?

posted on 2009-02-11 17:41 Code Knight 閱讀(390) 評論(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>
            久久se精品一区二区| 在线一区二区日韩| 久久综合福利| 欧美在线不卡| 久久xxxx精品视频| 久久er精品视频| 久久国产精品99精品国产| 欧美综合国产精品久久丁香| 久久深夜福利免费观看| 欧美成人精品福利| 欧美区一区二区三区| 国产精品美女999| 国内视频一区| 亚洲裸体在线观看| 午夜日韩在线| 免费不卡在线观看av| 亚洲人成毛片在线播放| 欧美激情五月| 亚洲欧美日韩区 | 久久精品国产综合| 欧美精品一区二区久久婷婷| 欧美视频1区| 尤物yw午夜国产精品视频| 亚洲激情第一区| 香蕉av777xxx色综合一区| 欧美69视频| 在线视频一区二区| 久久久亚洲国产天美传媒修理工| 欧美福利一区二区| 国产亚洲成av人在线观看导航| 亚洲国产日韩欧美在线动漫| 午夜亚洲性色视频| 亚洲精品欧美日韩| 久久久久久久91| 国产精品一区二区三区乱码| 亚洲精品欧美| 欧美电影在线播放| 欧美一区二区视频97| 欧美美女bbbb| 亚洲国产精品久久久久秋霞不卡 | 欧美日韩国产一区| 国内一区二区三区| 欧美一区二区性| av成人免费在线| 美女主播视频一区| 国产视频久久久久久久| 亚洲视频欧洲视频| 亚洲欧洲精品一区| 美女脱光内衣内裤视频久久影院 | 久久综合五月天婷婷伊人| 狂野欧美激情性xxxx| 国产精品麻豆成人av电影艾秋| 悠悠资源网久久精品| 久久久999国产| 亚洲一区欧美二区| 欧美人与性禽动交情品| 亚洲精品一区二区三区樱花 | 欧美激情小视频| 韩国av一区二区三区| 久久9热精品视频| 亚洲视频免费在线| 国产精品久久久久9999吃药| 99re热这里只有精品免费视频| 你懂的亚洲视频| 久久精品国产免费看久久精品| 欧美无砖砖区免费| 亚洲午夜精品网| 在线中文字幕不卡| 国产精品高潮呻吟久久av无限| 一本色道久久综合精品竹菊| 亚洲区第一页| 欧美日韩国产经典色站一区二区三区| 最新国产成人av网站网址麻豆| 欧美**人妖| 欧美激情va永久在线播放| 日韩亚洲欧美精品| 一区二区三区高清在线观看| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 欧美不卡在线| 欧美不卡在线| 亚洲在线电影| 久久精品国产欧美激情| 亚洲区欧美区| 亚洲一级黄色| 亚洲电影av| 亚洲精品欧美极品| 国产欧美日韩视频| 亚洲第一福利社区| 欧美私人啪啪vps| 久久久国产精品一区二区中文| 久久网站热最新地址| 一区二区高清在线观看| 午夜久久久久久| 亚洲国产欧美一区二区三区久久| 91久久久国产精品| 国产日韩欧美在线播放不卡| 欧美激情一区在线| 国产精品日韩精品欧美精品| 久久亚洲风情| 欧美体内谢she精2性欧美| 亚洲欧美乱综合| 欧美**人妖| 久久www成人_看片免费不卡| 欧美va天堂| 亚洲一区二区欧美日韩| 久久综合国产精品| 亚洲三级电影全部在线观看高清| 国产精品免费小视频| 欧美黄色影院| 国产亚洲一区二区在线观看| 亚洲成人自拍视频| 国产一区二区三区自拍| 日韩午夜电影在线观看| 一区二区亚洲精品| 亚洲一区二区三区乱码aⅴ| 亚洲国产一区二区三区在线播 | 久久综合一区二区| 久久久蜜桃一区二区人| 久久五月婷婷丁香社区| 亚洲一区二区av电影| 久久资源在线| 久久夜色精品国产亚洲aⅴ | 在线播放不卡| 欧美一区二区三区免费在线看| 一区二区三区国产在线| 免费在线一区二区| 久久免费偷拍视频| 国产日韩欧美精品在线| 亚洲人成欧美中文字幕| 最近看过的日韩成人| 久久久欧美精品sm网站| 久久精品国产久精国产一老狼| 欧美日本国产一区| 亚洲电影免费观看高清| 韩日视频一区| 欧美综合第一页| 久久综合久久久久88| 国产一区999| 久久精品女人| 麻豆成人在线| 在线成人av| 久久视频精品在线| 免播放器亚洲| 亚洲欧洲一区二区在线观看| 久久综合久久美利坚合众国| 免费在线日韩av| 亚洲韩国日本中文字幕| 美女免费视频一区| 亚洲第一精品电影| 亚洲麻豆国产自偷在线| 欧美日本二区| 国产精品99久久久久久久久久久久| 一区二区三区四区在线| 欧美理论电影在线观看| 日韩西西人体444www| 亚洲桃花岛网站| 国产精品午夜国产小视频| 亚洲欧美日韩国产一区二区三区 | 国产一区二区三区久久久久久久久| 午夜视频在线观看一区二区| 久久久久久久一区| 激情久久久久久久| 欧美激情国产日韩精品一区18| 亚洲日本精品国产第一区| 亚洲午夜电影| 国产亚洲免费的视频看| 久久手机免费观看| 在线一区观看| 这里是久久伊人| 亚洲小视频在线观看| 亚洲欧洲一区二区天堂久久| 国产精品99久久久久久久久| 99在线热播精品免费99热| 欧美一区二区精品在线| a4yy欧美一区二区三区| 国产视频一区在线| 久久色中文字幕| 久久综合网色—综合色88| 最新日韩在线| 国产精品伦子伦免费视频| 久久久亚洲综合| 正在播放日韩| 亚洲电影av在线| 欧美一区二区三区四区高清 | 亚洲人体一区| 久久精品亚洲精品| 在线午夜精品自拍| 在线欧美一区| 国产精品永久免费观看| 欧美承认网站| 久久久91精品国产| 在线视频欧美精品| 亚洲福利精品| 欧美~级网站不卡| 久久精品av麻豆的观看方式| 亚洲午夜国产一区99re久久| 亚洲国产精品成人久久综合一区| 国产精品资源| 国产精品免费一区二区三区观看| 欧美国产综合|