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

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 閱讀(386) 評論(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>
            狠狠色综合一区二区| 久久精品最新地址| 久久久精品网| 久久亚洲欧洲| 久久夜色精品国产| 久热re这里精品视频在线6| 久久成人精品电影| 美女视频黄 久久| 亚洲国产一区二区在线| 日韩亚洲综合在线| 午夜精品久久久久久久99黑人| 性做久久久久久| 欧美高清影院| 国产欧美日韩| 亚洲国产精品热久久| 亚洲无吗在线| 久久人人超碰| 亚洲精品视频在线观看网站| 亚洲综合日韩在线| 久久在精品线影院精品国产| 欧美视频精品在线| 伊人久久噜噜噜躁狠狠躁| 99国产精品99久久久久久| 欧美一区二区三区免费观看视频| 欧美成人四级电影| 亚洲综合精品| 欧美黄色免费| 一区视频在线| 午夜在线视频观看日韩17c| 免费中文日韩| 午夜精品福利视频| 欧美人牲a欧美精品| 国户精品久久久久久久久久久不卡| 亚洲伦理一区| 久久影院午夜论| 亚洲午夜av| 欧美精品大片| 在线成人黄色| 久久av在线看| 亚洲一区3d动漫同人无遮挡| 欧美aa国产视频| 激情视频一区| 久久久久国产一区二区三区| 亚洲无限av看| 国产精品久久久久aaaa樱花| 一本色道久久加勒比88综合| 欧美激情精品久久久久久蜜臀| 欧美中文字幕在线播放| 国产精品亚洲综合| 亚洲欧美国产另类| 一本久道久久综合婷婷鲸鱼| 欧美精品日韩综合在线| 最新国产乱人伦偷精品免费网站| 久久综合色8888| 久久精品视频免费| 国产一区视频网站| 久久九九免费视频| 欧美一区二区日韩| 国产亚洲欧美一区二区三区| 午夜在线电影亚洲一区| 亚洲一级在线观看| 国产精品资源| 欧美在线|欧美| 性做久久久久久免费观看欧美| 国产麻豆综合| 久久九九久精品国产免费直播| 亚洲欧美日韩网| 国产婷婷色一区二区三区| 久久成人羞羞网站| 欧美在线关看| 亚洲国产精品电影在线观看| 亚洲第一毛片| 欧美视频一区二区三区在线观看| 亚洲视频图片小说| 亚洲一区二区三区久久| 国产精品v欧美精品v日韩| 欧美一级久久久| 久久国产精品久久久久久电车 | 欧美激情一区二区三区成人| 亚洲国产高清在线观看视频| 亚洲福利视频二区| 欧美日韩精品免费观看| 一区二区三区福利| 亚洲制服少妇| 一区二区视频免费完整版观看| 欧美1区3d| 欧美精品性视频| 久久久久9999亚洲精品| 免费一级欧美片在线播放| 日韩视频在线观看免费| 亚洲综合国产精品| 亚洲风情在线资源站| 91久久精品www人人做人人爽 | 在线免费观看成人网| 欧美va亚洲va国产综合| 欧美美女喷水视频| 久久aⅴ国产紧身牛仔裤| 你懂的视频一区二区| 性欧美大战久久久久久久免费观看| 久久精品综合| 亚洲免费在线观看| 欧美一区二区免费观在线| 欧美va亚洲va香蕉在线| 午夜天堂精品久久久久| 免费在线国产精品| 久久国产免费| 国产精品国产三级国产aⅴ浪潮| 嫩模写真一区二区三区三州| 国产精品乱人伦一区二区 | 国产婷婷精品| 日韩视频在线播放| 亚洲成人在线视频播放| 这里只有精品电影| 亚洲剧情一区二区| 久久亚洲精品一区| 久久九九热免费视频| 国产精品高潮呻吟| 亚洲美女精品久久| 亚洲成人在线视频播放| 欧美在线地址| 欧美一区二区在线免费播放| 欧美午夜精品久久久久久人妖| 亚洲福利视频网| 亚洲第一页在线| 久久久水蜜桃| 久久久久国产一区二区三区四区| 国产精品高潮粉嫩av| 日韩午夜在线观看视频| 亚洲六月丁香色婷婷综合久久| 男人的天堂亚洲| 亚洲国产成人91精品| 亚洲人成网站777色婷婷| 久久夜色精品国产| 牛牛影视久久网| 亚洲高清在线观看| 浪潮色综合久久天堂| 欧美成年人网站| 亚洲人成在线观看一区二区| 欧美成人精品一区二区| 亚洲国产综合91精品麻豆| 亚洲免费高清| 欧美精品一区三区| 亚洲日本黄色| 在线天堂一区av电影| 欧美日韩亚洲系列| 亚洲视频1区2区| 欧美一区不卡| 黄色成人在线| 欧美成ee人免费视频| 亚洲精品社区| 午夜欧美大片免费观看| 国产一级一区二区| 欧美一区二区精美| 欧美国产一区二区在线观看 | 亚洲电影中文字幕| 99在线精品视频| 国产精品久久久久永久免费观看| 亚洲一区二区在线播放| 久久欧美肥婆一二区| 91久久精品国产91性色tv| 欧美日韩亚洲系列| 欧美一区二区三区另类| 亚洲第一福利视频| 亚洲欧美日韩国产一区二区三区| 国产日韩欧美视频在线| 美女国产一区| 亚洲网站在线观看| 免费观看不卡av| 亚洲五月六月| 在线日韩日本国产亚洲| 欧美视频一区二区三区| 久久久av水蜜桃| 亚洲最黄网站| 两个人的视频www国产精品| 一区二区三区国产在线| 国产一区二区三区在线免费观看| 欧美ed2k| 久久av一区二区三区漫画| 亚洲三级影片| 巨乳诱惑日韩免费av| 亚洲综合第一页| 在线观看日韩国产| 国产精品一区二区久久久久| 可以免费看不卡的av网站| 久久男人av资源网站| 蜜臀久久99精品久久久久久9 | 午夜亚洲性色福利视频| 欧美大片在线观看一区二区| 亚洲在线观看| 亚洲精品看片| 狠狠入ady亚洲精品经典电影| 欧美精品一区二区在线播放| 久久亚洲免费| 久久精品视频免费播放| 亚洲欧美日韩一区在线| 亚洲视频观看| 一区二区三区鲁丝不卡| 亚洲欧洲在线一区| 男人的天堂亚洲在线| 欧美在线视频免费播放|