簡體   English   中英

在openGL中用2D紋理映射3D對象

[英]Texture Mapping a 3D object with a 2D texture in openGL

我有一個由三角形組成的立方體,所以有8個頂點和相應的斜率來創建三角形。 我在為該立方體創建紋理坐標時遇到麻煩。 我嘗試使用以下值:

    float amt = 1.0f;
m_texBuffer.push_back(Texel(0.0f, 0.0f));
m_texBuffer.push_back(Texel(amt, 0.0f));
m_texBuffer.push_back(Texel(amt, amt));
m_texBuffer.push_back(Texel(0.0f, amt));

m_texBuffer.push_back(Texel(0.0f, 0.0f));
m_texBuffer.push_back(Texel(amt, 0.0f));
m_texBuffer.push_back(Texel(amt, amt));
m_texBuffer.push_back(Texel(0.0f, amt));

我看到amt的變化值產生了奇怪的視覺結果。 我了解到,由於圖像可能小於實際對象,因此沒有必要的一對一對應關系,因此我嘗試將amt設置為較小的值,但仍然不可行。

對於常規紋理,每個坐標中的采樣范圍是0到1,與采樣分辨率無關。

不幸的是,您的代碼絕對是不講故事的,可以是任何東西。 我們確實需要查看更多信息,尤其是實際的OpenGL調用。

由於評論而編輯

加載圖像數據必須告訴OpenGL緩沖區中數據的布局。 基本信息是

(glTexImage的參數)

  • 零件數量
  • 組件排列
  • 每個組件的大小

(glPixelStore的參數)

  • 對齊(0表示緊密打包,否則對齊1、2或4個字節)
  • 像素和行的長度(通常為0)

請參閱glTexImageglPixelStore的文檔,並為您的圖像數據進行適當設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM