2015-04-20 53 views
1

我在node.js上使用three.js。我使用一個可以生成opengl紋理作爲輸出幀的相機。我想在three.js中使用這個直播紋理流。我已經能夠在相機和three.js之間創建共享上下文,並且我可以確認相機上下文和three.js上下文中都存在該紋理。我不太確定如何讓three.js尊重外部維護的紋理。現有的videotexture對象不是正確的方式,它從瀏覽器dom對象複製framedata,並且我想直接使用相機生成的紋理。如何在three.js中使用外部生成的紋理

由於這與threejs渲染到紋理的支持類似,只有渲染髮生在threejs之外,我試圖修改該代碼以支持外部紋理,但它看起來有點像一個slog。

我目前認爲我應該實現shadermaterial對象的變體,它理解如何使用外部生成的紋理,但想知道是否有更好的路徑。

回答

0

好的我已經想通了。一個需要TOT阿克的步驟

  • 首先,創建您的GL上下文創建threejs渲染器,使用GLFW之前來電或您的目標平臺上的等效
  • 然後,創建一個材料,在threejs映射貼圖作爲你的三維場景創作的一部分。我使用MeshBasicMaterial和一個映射的jpg文件,但無論如何。
  • 現在使用之前創建的gl背景之一作爲參數創建您的webglrenderer
  • 執行一次渲染過程。這將實例化所有webgl紋理和程序並將它們附加到您的材料中。
  • 現在看看你之前創建的材質,map屬性將包含一個webgl紋理索引。您可以將其傳遞給其他上下文中的GL代碼,並將其呈現給此紋理,渲染的結果將顯示在您的threejs材質中。