如何確定是否在three.js上的GPU內存上分配了緩衝區?如何知道數據在GPU內存上的分配
我第一次調用renderer.render()時,它會渲染沒有紋理的網格(看起來黑色),這讓我覺得當函數被調用時紋理在GPU內存上還不可用。在5-10次調用之後,紋理出現在屏幕上。
爲什麼這很重要?當視圖需要更新時,我正在觸發渲染功能。如果加載新模型,則渲染函數應等待,直到所有數據都可用於渲染。
如何確保所有數據都準備好在GPU上使用?
僞代碼:
textures = LoadTextures()
material = CreateMaterial(textures)
geometry = loader.load("path/to/file")
if(materialLoaded && geometryLoaded) {
needsUpdate = true
}
if(needsUpdate) {
renderer.render()
needsUpdate = false
}
從技術上講,只要你完成調用加載函數,它應該準備好了,在OpenGL/WebGL中沒有這樣的加載週期。 – Tim
好的,我認爲在DirectX上有類似的查詢。謝謝。 – frank