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

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>
            国产精品a级| 在线观看欧美精品| 一区二区日韩欧美| 欧美在线免费观看| 91久久在线| 免费视频一区| 亚洲性图久久| 国产精品久99| 性做久久久久久| 小黄鸭精品aⅴ导航网站入口| 一区二区三区四区国产精品| 国产精品视频成人| 久久亚洲私人国产精品va| 日韩午夜在线观看视频| 一区二区三区视频在线| 日韩一区二区福利| 久久久青草婷婷精品综合日韩| 永久91嫩草亚洲精品人人| 艳女tv在线观看国产一区| 欧美aa国产视频| 黑丝一区二区| 亚洲一区视频在线| 国产精品盗摄久久久| 久久免费的精品国产v∧| 欧美国产日本高清在线| 久久精品国产999大香线蕉| 一区二区三区在线视频播放| 亚洲高清影视| 欧美激情影院| 99精品国产福利在线观看免费| 亚洲精品国产精品国自产在线 | 亚洲天堂网在线观看| 午夜国产精品视频免费体验区| 免费看成人av| 在线播放豆国产99亚洲| 久久久久久久综合色一本| 欧美激情偷拍| 亚洲色在线视频| 国产欧美一区二区精品婷婷| 欧美一区国产在线| 中文高清一区| 国产精品推荐精品| 欧美一区二区三区免费在线看| 久久精品国内一区二区三区| 亚洲欧美美女| 亚洲电影观看| 亚洲精品乱码视频| 国产伦精品一区| 欧美一区二区三区在线观看视频| 亚洲丁香婷深爱综合| 一区二区三区精密机械公司| 国产亚洲欧洲997久久综合| 免费黄网站欧美| 欧美亚洲免费| 夜久久久久久| 在线高清一区| 欧美精品久久一区| 国产一区二区视频在线观看| 亚洲人成久久| 日韩一级视频免费观看在线| 欧美日韩免费观看一区| 亚洲一区二区在线看| 亚洲第一区在线观看| 欧美一区国产一区| 亚洲人成人77777线观看| 国产欧美va欧美va香蕉在| 国产精品一区二区a| 蜜桃久久精品一区二区| 亚洲午夜久久久| 一区二区三区 在线观看视频| 亚洲精品一区二区三区四区高清| 鲁鲁狠狠狠7777一区二区| 午夜精品国产精品大乳美女| 依依成人综合视频| 国产亚洲欧洲| 欧美午夜电影在线| 国产精品私房写真福利视频| 欧美大片在线影院| 欧美高清不卡| 亚洲国产成人高清精品| 亚洲黄色有码视频| 亚洲美女中出| 亚洲嫩草精品久久| 国产伦精品一区二区三区视频黑人 | 欧美一级久久| 日韩一级黄色大片| 香蕉成人久久| 亚洲精品视频在线观看网站| 亚洲国产天堂久久综合| 欧美激情精品| 欧美成人亚洲| 国产欧美日韩亚洲一区二区三区| 99av国产精品欲麻豆| 欧美激情1区2区3区| 久久久91精品国产| 亚洲国产精品久久精品怡红院| 亚洲网友自拍| 亚洲黄色免费电影| 性欧美xxxx视频在线观看| 亚洲免费婷婷| 欧美日韩成人一区二区三区| 免费视频一区| 在线成人亚洲| 免费成人美女女| 欧美多人爱爱视频网站| 欲香欲色天天天综合和网| 久久久久久香蕉网| 欧美不卡在线视频| 91久久精品国产91性色| 免播放器亚洲一区| 亚洲国产精品激情在线观看| 一区精品在线| 欧美中文字幕在线| 久久亚洲一区二区| 亚洲国产欧美在线人成| 裸体歌舞表演一区二区 | 亚洲精品小视频在线观看| 久久在线播放| 亚洲欧洲在线一区| 亚洲欧美日本视频在线观看| 国产美女精品视频免费观看| 久久精品国产一区二区三区免费看| 美女视频一区免费观看| av成人黄色| 国产美女精品视频| 久久综合给合| 亚洲深夜激情| 免费美女久久99| 中文国产成人精品久久一| 国产欧美激情| 欧美精品亚洲精品| 午夜综合激情| 亚洲精品免费网站| 久久国产精品99精品国产| 亚洲国产精品精华液2区45| 欧美日韩免费观看一区三区| 欧美一区二区在线看| 亚洲日本欧美在线| 久久久久欧美| 亚洲性视频网站| 亚洲国产精品成人| 国产美女诱惑一区二区| 欧美黄色aaaa| 久久久久国产精品人| 亚洲一区视频在线观看视频| 亚洲高清成人| 久久综合亚州| 欧美在线视频观看免费网站| 日韩一级裸体免费视频| 亚洲成人资源| 国产视频在线观看一区| 欧美日韩精品免费观看视频完整| 久久国产精品一区二区三区四区 | 欧美视频免费在线| 美女脱光内衣内裤视频久久影院 | 美女黄色成人网| 性欧美激情精品| 妖精视频成人观看www| 国产精品免费在线| 欧美激情性爽国产精品17p| 亚洲欧美日韩国产精品| 亚洲三级免费电影| 伊甸园精品99久久久久久| 国产精品亚洲一区二区三区在线| 欧美精品一区二区精品网| 美女精品视频一区| 久久夜色撩人精品| 久久久91精品国产一区二区精品| 欧美一区二区三区四区在线观看地址| 亚洲特色特黄| 亚洲一区二区三区777| 一区二区欧美日韩| 亚洲精品一区二区三区婷婷月| 亚洲国产成人精品女人久久久| 麻豆精品在线视频| 久久躁日日躁aaaaxxxx| 久久久久久综合网天天| 久久精品在线观看| 久久精品国产清高在天天线| 欧美专区日韩专区| 亚洲一区免费看| 亚洲欧美日韩视频一区| 欧美一级久久久| 久久久久久久综合| 久久激情五月激情| 久久综合福利| 亚洲第一搞黄网站| 亚洲国产网站| 亚洲国产欧美日韩另类综合| 亚洲第一黄网| 一道本一区二区| 亚洲欧美日韩一区二区三区在线观看| 亚洲一区二区三区中文字幕| 亚洲影院色在线观看免费| 性亚洲最疯狂xxxx高清| 久久综合中文色婷婷| 欧美精品久久久久久久| 国产精品卡一卡二卡三| 国产手机视频精品| 国产亚洲欧美一区二区|