討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
有關於3D Vertex轉2D螢幕座標一問
更改我的閱讀文章字型大小
作者 : alexlyblue(Aber)
[ 貼文 90 | 人氣 0 | 評價 380 | 評價/貼文 4.22 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/1/17 下午 06:37:57
不好意請問各位先進
我使用D3DXVec3Project()來轉換3D中的Vertex,
想請問的是如果今天轉換出來的Vector假設為pVec
而pVec.z > 1.0f
也就是pVec超出Viewport的範圍,
那麼請問要怎麼處理呢?

附帶說明, 會這樣子主要是要將3D線段轉換為2D螢幕座標, 3D線段的某點或兩點, 有可能在Viewport的不可視範圍

我目前的作法是判斷當
if( pVec.z > m_VP->MaxZ )
{
   pVec.x = m_VP->Width * 0.5f - pVec.x * pVec.z;
   pVec.y = m_VP->Height * 0.5f - pVec.y * pVec.z;
}

我知道上面這樣是錯的, 因為畫出來跟原線段不一樣..
所以想請問這邊該怎麼處理

煩勞各位先進了
作者 : akira32(Akira) VC++優秀好手DirectX優秀好手貼文超過2000則人氣指數超過350000點
[ 貼文 2527 | 人氣 384134 | 評價 3430 | 評價/貼文 1.36 | 送出評價 243 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人alexlyblue註記此篇回應為最佳解答 2011/1/24 上午 12:28:27
>不好意請問各位先進
>我使用D3DXVec3Project()來轉換3D中的Vertex,
>想請問的是如果今天轉換出來的Vector假設為pVec
>而pVec.z > 1.0f
你的結果是2D的話,就不用管z值,z值的限制是MVP後的3D座標

>也就是pVec超出Viewport的範圍,
>那麼請問要怎麼處理呢?
>
>附帶說明, 會這樣子主要是要將3D線段轉換為2D螢幕座標, 3D線段的某點或兩點, 有可能在Viewport的不可視範圍
>
>我目前的作法是判斷當
>if( pVec.z > m_VP->MaxZ )
>{
> pVec.x = m_VP->Width * 0.5f - pVec.x * pVec.z;
> pVec.y = m_VP->Height * 0.5f - pVec.y * pVec.z;
>}
>
>我知道上面這樣是錯的, 因為畫出來跟原線段不一樣..
>所以想請問這邊該怎麼處理
>
>煩勞各位先進了

建議你翻一下DirectX9.0 Shader Approach,這個3D轉2D都有人寫好現成的函式
在Viewport外的事,你不用考慮,因為會自動的clip
作者 : alexlyblue(Aber)
[ 貼文 90 | 人氣 0 | 評價 380 | 評價/貼文 4.22 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/1/24 下午 07:33:29
Akira兄感謝, 這個問題我已經處理好了, 我因為某些緣故不能使用Shader..., 還是感謝
 板主 : 白老鼠(Gary)
 > DirectX - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - DirectX - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
DirectX
1 aming 4010 
2 pernghy 1780 
3 白老鼠(Gary) 1120 
4 Akira 1020 
5 冷眼 980 
6 PLAYER 690 
7 阿西德倫 480 
8 andre 450 
9 小弦 430 
10 藍斯洛 410 
DirectX
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625