threejs 的texture2DArray渲染流程

創建2d數組紋理
此時並沒有真的去執行gl.createtexture(); 會有一個setValue => DataTexture2DArray
創建材質
此時創建材質的時候 每個uniform 的存入值 都會有想對應的setValue 和構造函數
這些準備完以後,等再次進入webglRender 的時候會依次執行renderObject函數(渲染所有的對象)=>setProgram=>更新材質 =>webglUniforms.upload()=>遍歷uniforms 找到對應的setValue的指向的構造函數,diffuse的texture的指向是setTexture2DArray()=>uploadTexture() 的init函數裏邊處理gl.createTexture();以及gl.activeTexture ,gl.bindTexture();

此時纔是真的去創建紋理,激活紋理綁定紋理單元
webglRender => 處理所有的渲染
webglUniforms =>處理所有的uniforms 在這個階段 去處理每個uniform,
執行到對應的uniform 會去查找生成該值的構造函數的數據處理類型 進而找到對應的函數
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
webglTextures 處理所有的紋理的初始化和更新.
在這裏插入圖片描述
真的生成調用原生gl 代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章