2
據我所知,實現延期着色的唯一方法是使用MRT並綁定不同的紋理來將數據存儲到顏色附件中。問題是WebGL specifications定義了單色附件:COLOR_ATTACHMENT0。有這個限制,可以在WebGL中完全實現延期着色嗎?是否可以在WebGL中實現延期着色?
據我所知,實現延期着色的唯一方法是使用MRT並綁定不同的紋理來將數據存儲到顏色附件中。問題是WebGL specifications定義了單色附件:COLOR_ATTACHMENT0。有這個限制,可以在WebGL中完全實現延期着色嗎?是否可以在WebGL中實現延期着色?
您可以通過渲染到紋理來實現延遲着色,但是您需要爲每次傳遞(diffuse,depth,whatnot)重新繪製所有幾何圖形,或者想出一種方法將所需的所有信息存儲到單個RGBA紋理中。然後在着色器中對這些紋理進行採樣以產生最終結果。
您可能想要使用浮動紋理的擴展,但不能保證在任何地方都能正常工作。
正如你可能理解的那樣,延期在WebGL中並不是最優的:)